/*****************************************************************************
* 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
*
******************************************************************************
* Generated by Xtext 2.25.0
*****************************************************************************/
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_ActivityStatement_SemicolonKeyword_2_0_1_0_1_or___LeftCurlyBracketKeyword_2_0_1_1_0_RightCurlyBracketKeyword_2_0_1_1_2__;
	protected AbstractElementAlias match_ActivityStatement_SemicolonKeyword_2_1_q;
	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_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_EnumerationTypeDefinitionImpl_SuperKeyword_4_1_q;
	protected AbstractElementAlias match_EnumerationTypeDefinition_SuperKeyword_6_1_q;
	protected AbstractElementAlias match_EnumerationType_SuperKeyword_2_1_q;
	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_InstanceSpecification___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q;
	protected AbstractElementAlias match_InstanceSpecification___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__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_InstanceKeyword_9_3_0_q;
	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_PrototypeKeyword_9_2_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__q_PrototypeKeyword_9_2_0_q__a;
	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_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__q_InstanceKeyword_9_3_0_q__a;
	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_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_ModelOfExecution_ScheduleKeyword_3_6_0_0_or_XscheduleKeyword_3_6_0_1;
	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_ProcedureExecution_ScheduleKeyword_2_0_0_0_or_XscheduleKeyword_2_0_0_1;
	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_InputKeyword_8_0_0_q;
	protected AbstractElementAlias match_Statemachine_MacroKeyword_10_0_0_0_1_or_RoutineKeyword_10_0_0_0_0;
	protected AbstractElementAlias match_Statemachine_ParameterKeyword_7_0_0_q;
	protected AbstractElementAlias match_Statemachine_ProcedureKeyword_10_0_1_0_q;
	protected AbstractElementAlias match_Statemachine_ProtectedKeyword_9_2_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_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_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InputKeyword_8_0_0_q__a;
	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_____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_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__q_ProtectedKeyword_9_2_0_q__a;
	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_____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_moeCompositeStateRoutines_ScheduleKeyword_1_6_0_0_or_XscheduleKeyword_1_6_0_1;
	protected AbstractElementAlias match_moeRoutine___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q;
	
	@Inject
	protected void init(IGrammarAccess access) {
		grammarAccess = (FormalMLGrammarAccess) access;
		match_ActivityStatement_SemicolonKeyword_2_0_1_0_1_or___LeftCurlyBracketKeyword_2_0_1_1_0_RightCurlyBracketKeyword_2_0_1_1_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getActivityStatementAccess().getLeftCurlyBracketKeyword_2_0_1_1_0()), new TokenAlias(false, false, grammarAccess.getActivityStatementAccess().getRightCurlyBracketKeyword_2_0_1_1_2())), new TokenAlias(false, false, grammarAccess.getActivityStatementAccess().getSemicolonKeyword_2_0_1_0_1()));
		match_ActivityStatement_SemicolonKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getActivityStatementAccess().getSemicolonKeyword_2_1());
		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_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_EnumerationTypeDefinitionImpl_SuperKeyword_4_1_q = new TokenAlias(false, true, grammarAccess.getEnumerationTypeDefinitionImplAccess().getSuperKeyword_4_1());
		match_EnumerationTypeDefinition_SuperKeyword_6_1_q = new TokenAlias(false, true, grammarAccess.getEnumerationTypeDefinitionAccess().getSuperKeyword_6_1());
		match_EnumerationType_SuperKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getEnumerationTypeAccess().getSuperKeyword_2_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_InstanceSpecification___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getInstanceSpecificationAccess().getLeftCurlyBracketKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getInstanceSpecificationAccess().getRightCurlyBracketKeyword_3_2()));
		match_InstanceSpecification___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getInstanceSpecificationAccess().getLeftParenthesisKeyword_2_0()), new TokenAlias(false, false, grammarAccess.getInstanceSpecificationAccess().getRightParenthesisKeyword_2_2()));
		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_InstanceKeyword_9_3_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_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_PrototypeKeyword_9_2_0_q = new TokenAlias(false, true, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_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__q_PrototypeKeyword_9_2_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getInstanceKeyword_9_3_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0())), new TokenAlias(false, true, 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_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__q_InstanceKeyword_9_3_0_q__a = new GroupAlias(true, true, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getModelKeyword_9_1_0()), new TokenAlias(false, false, grammarAccess.getMachineBlockAccess().getPrototypeKeyword_9_2_0())), new TokenAlias(false, true, 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_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_ModelOfExecution_ScheduleKeyword_3_6_0_0_or_XscheduleKeyword_3_6_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getModelOfExecutionAccess().getScheduleKeyword_3_6_0_0()), new TokenAlias(false, false, grammarAccess.getModelOfExecutionAccess().getXscheduleKeyword_3_6_0_1()));
		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_ProcedureExecution_ScheduleKeyword_2_0_0_0_or_XscheduleKeyword_2_0_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getProcedureExecutionAccess().getScheduleKeyword_2_0_0_0()), new TokenAlias(false, false, grammarAccess.getProcedureExecutionAccess().getXscheduleKeyword_2_0_0_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_InputKeyword_8_0_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getInputKeyword_8_0_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_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_ProtectedKeyword_9_2_0_q = new TokenAlias(false, true, grammarAccess.getStatemachineAccess().getProtectedKeyword_9_2_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_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_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InputKeyword_8_0_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().getOutputKeyword_8_2_0()), new TokenAlias(false, false, grammarAccess.getStatemachineAccess().getReturnKeyword_8_3_0())), new TokenAlias(false, true, 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_____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_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__q_ProtectedKeyword_9_2_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().getPublicKeyword_9_1_0())), new TokenAlias(false, true, 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_____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_moeCompositeStateRoutines_ScheduleKeyword_1_6_0_0_or_XscheduleKeyword_1_6_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getMoeCompositeStateRoutinesAccess().getScheduleKeyword_1_6_0_0()), new TokenAlias(false, false, grammarAccess.getMoeCompositeStateRoutinesAccess().getXscheduleKeyword_1_6_0_1()));
		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'
	 * 	| 'start'
	 * 	| '#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_ActivityStatement_SemicolonKeyword_2_0_1_0_1_or___LeftCurlyBracketKeyword_2_0_1_1_0_RightCurlyBracketKeyword_2_0_1_1_2__.equals(syntax))
				emit_ActivityStatement_SemicolonKeyword_2_0_1_0_1_or___LeftCurlyBracketKeyword_2_0_1_1_0_RightCurlyBracketKeyword_2_0_1_1_2__(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ActivityStatement_SemicolonKeyword_2_1_q.equals(syntax))
				emit_ActivityStatement_SemicolonKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else 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_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_EnumerationTypeDefinitionImpl_SuperKeyword_4_1_q.equals(syntax))
				emit_EnumerationTypeDefinitionImpl_SuperKeyword_4_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_EnumerationTypeDefinition_SuperKeyword_6_1_q.equals(syntax))
				emit_EnumerationTypeDefinition_SuperKeyword_6_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_EnumerationType_SuperKeyword_2_1_q.equals(syntax))
				emit_EnumerationType_SuperKeyword_2_1_q(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_InstanceSpecification___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q.equals(syntax))
				emit_InstanceSpecification___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_InstanceSpecification___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q.equals(syntax))
				emit_InstanceSpecification___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__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_InstanceKeyword_9_3_0_q.equals(syntax))
				emit_MachineBlock_InstanceKeyword_9_3_0_q(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_PrototypeKeyword_9_2_0_q.equals(syntax))
				emit_MachineBlock_PrototypeKeyword_9_2_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__q_PrototypeKeyword_9_2_0_q__a.equals(syntax))
				emit_MachineBlock_____InstanceKeyword_9_3_0_or_ModelKeyword_9_1_0__q_PrototypeKeyword_9_2_0_q__a(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_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__q_InstanceKeyword_9_3_0_q__a.equals(syntax))
				emit_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__q_InstanceKeyword_9_3_0_q__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__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_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_ModelOfExecution_ScheduleKeyword_3_6_0_0_or_XscheduleKeyword_3_6_0_1.equals(syntax))
				emit_ModelOfExecution_ScheduleKeyword_3_6_0_0_or_XscheduleKeyword_3_6_0_1(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_ProcedureExecution_ScheduleKeyword_2_0_0_0_or_XscheduleKeyword_2_0_0_1.equals(syntax))
				emit_ProcedureExecution_ScheduleKeyword_2_0_0_0_or_XscheduleKeyword_2_0_0_1(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_InputKeyword_8_0_0_q.equals(syntax))
				emit_Statemachine_InputKeyword_8_0_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_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_ProtectedKeyword_9_2_0_q.equals(syntax))
				emit_Statemachine_ProtectedKeyword_9_2_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_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_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InputKeyword_8_0_0_q__a.equals(syntax))
				emit_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InputKeyword_8_0_0_q__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__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_____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_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__q_ProtectedKeyword_9_2_0_q__a.equals(syntax))
				emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__q_ProtectedKeyword_9_2_0_q__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__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_____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_moeCompositeStateRoutines_ScheduleKeyword_1_6_0_0_or_XscheduleKeyword_1_6_0_1.equals(syntax))
				emit_moeCompositeStateRoutines_ScheduleKeyword_1_6_0_0_or_XscheduleKeyword_1_6_0_1(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:
	 *     machine=ValuePureNamedMachineExpression (ambiguity) (rule end)
	 */
	protected void emit_ActivityStatement_SemicolonKeyword_2_0_1_0_1_or___LeftCurlyBracketKeyword_2_0_1_1_0_RightCurlyBracketKeyword_2_0_1_1_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ';'?
	 *
	 * This ambiguous syntax occurs at:
	 *     op=OPERATOR_ACTIVITY (ambiguity) (rule end)
	 */
	protected void emit_ActivityStatement_SemicolonKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * 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) 'new' instance=InstanceSpecification
	 *     (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) 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) 'new' instance=InstanceSpecification
	 *     (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) 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) '('* 'new' instance=InstanceSpecification
	 *     (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) '('* 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:
	 *     '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:
	 *     'super:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     typedef?='enum' '<' (ambiguity) superType=[EnumerationType|ESUfid]
	 */
	protected void emit_EnumerationTypeDefinitionImpl_SuperKeyword_4_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'super:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ESIdentifier 'enum' '<' (ambiguity) superType=[EnumerationType|ESUfid]
	 *     unrestrictedName=UnrestrictedName 'enum' '<' (ambiguity) superType=[EnumerationType|ESUfid]
	 */
	protected void emit_EnumerationTypeDefinition_SuperKeyword_6_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'super:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'enum' '<' (ambiguity) superType=[EnumerationType|ESUfid]
	 */
	protected void emit_EnumerationType_SuperKeyword_2_1_q(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:
	 *     ('{' '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     model=[Machine|ESIdentifier] ('(' ')')? (ambiguity) (rule end)
	 *     slot+=SlotParameter ')' (ambiguity) (rule end)
	 */
	protected void emit_InstanceSpecification___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_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_InstanceSpecification___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__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 ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@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 '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@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 ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (('@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:
	 *     '@instance:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         ('@property:' | '@public:' | '@protected:' | '@private:')* 
	 *         (ambiguity) 
	 *         (('@model:' | '@prototype:')? (ambiguity))* 
	 *         ('@composite:' | '@machine:') 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         ('@property:' | '@public:' | '@protected:' | '@private:')* 
	 *         (ambiguity) 
	 *         (('@model:' | '@prototype:')? (ambiguity))* 
	 *         ('@composite:' | '@machine:') 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@prototype:')? (ambiguity))* main=MoeBehavior
	 */
	protected void emit_MachineBlock_InstanceKeyword_9_3_0_q(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:
	 *     '@prototype:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) (('@model:' | '@instance:')? (ambiguity))* '@instance:' instance+=InstanceMachine
	 */
	protected void emit_MachineBlock_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_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:
	 *     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
	 *     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
	 */
	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) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     buffer+=Buffer (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     buffer+=Buffer (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=Buffer (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     buffer+=Buffer (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     buffer+=Buffer (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer (ambiguity) procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     buffer+=BufferPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPrivate (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPrivate (ambiguity) routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     buffer+=BufferProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferProtected (ambiguity) procedure+=Procedure
	 *     buffer+=BufferProtected (ambiguity) routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     buffer+=BufferPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=BufferPublic (ambiguity) procedure+=Procedure
	 *     buffer+=BufferPublic (ambiguity) routine+=Routine
	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     channel+=Channel (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=Channel (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     channel+=Channel (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel (ambiguity) procedure+=Procedure
	 *     channel+=Channel (ambiguity) routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     channel+=ChannelPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPrivate (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPrivate (ambiguity) routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     channel+=ChannelProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelProtected (ambiguity) procedure+=Procedure
	 *     channel+=ChannelProtected (ambiguity) routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     channel+=ChannelPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=ChannelPublic (ambiguity) procedure+=Procedure
	 *     channel+=ChannelPublic (ambiguity) routine+=Routine
	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     function+=Function (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=Function (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     function+=Function (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function (ambiguity) procedure+=Procedure
	 *     function+=Function (ambiguity) routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     function+=FunctionPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPrivate (ambiguity) procedure+=Procedure
	 *     function+=FunctionPrivate (ambiguity) routine+=Routine
	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     function+=FunctionProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionProtected (ambiguity) procedure+=Procedure
	 *     function+=FunctionProtected (ambiguity) routine+=Routine
	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     function+=FunctionPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=FunctionPublic (ambiguity) procedure+=Procedure
	 *     function+=FunctionPublic (ambiguity) routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     name=ESIdentifier '{' (ambiguity) '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     name=ESIdentifier '{' (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) routine+=Routine
	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     port+=Port (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=Port (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     port+=Port (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port (ambiguity) procedure+=Procedure
	 *     port+=Port (ambiguity) routine+=Routine
	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     port+=PortPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     port+=PortPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPrivate (ambiguity) procedure+=Procedure
	 *     port+=PortPrivate (ambiguity) routine+=Routine
	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     port+=PortProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     port+=PortProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortProtected (ambiguity) procedure+=Procedure
	 *     port+=PortProtected (ambiguity) routine+=Routine
	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     port+=PortPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=PortPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     port+=PortPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=PortPublic (ambiguity) procedure+=Procedure
	 *     port+=PortPublic (ambiguity) routine+=Routine
	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     signal+=Signal (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=Signal (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     signal+=Signal (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal (ambiguity) procedure+=Procedure
	 *     signal+=Signal (ambiguity) routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     signal+=SignalPrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPrivate (ambiguity) procedure+=Procedure
	 *     signal+=SignalPrivate (ambiguity) routine+=Routine
	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     signal+=SignalProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalProtected (ambiguity) procedure+=Procedure
	 *     signal+=SignalProtected (ambiguity) routine+=Routine
	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     signal+=SignalPublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPublic (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=SignalPublic (ambiguity) procedure+=Procedure
	 *     signal+=SignalPublic (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     typedef+=TypeDefinition (ambiguity) '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     typedef+=TypeDefinition (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) routine+=Routine
	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     variable+=Variable (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=Variable (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     variable+=Variable (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable (ambiguity) procedure+=Procedure
	 *     variable+=Variable (ambiguity) routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     variable+=VariablePrivate (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePrivate (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariablePrivate (ambiguity) procedure+=Procedure
	 *     variable+=VariablePrivate (ambiguity) routine+=Routine
	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     variable+=VariableProtected (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     variable+=VariableProtected (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=VariableProtected (ambiguity) procedure+=Procedure
	 *     variable+=VariableProtected (ambiguity) routine+=Routine
	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@behavior:' behavior+=Behavior
	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) '@instance:'? (('@model:' | '@prototype:')? '@instance:'?)* main=MoeBehavior
	 *     variable+=VariablePublic (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=VariablePublic (ambiguity) '@prototype:'? (('@model:' | '@instance:')? '@prototype:'?)* '@instance:' instance+=InstanceMachine
	 *     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:
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (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:' | '@instance:')? '@prototype:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@prototype:'? (ambiguity) '@instance:' instance+=InstanceMachine
	 */
	protected void emit_MachineBlock_____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:
	 *     (('@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:
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (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:
	 *     instance+=InstanceMachine (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) instance+=InstanceMachine
	 *     procedure+=Procedure (ambiguity) instance+=InstanceMachine
	 *     routine+=Routine (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:
	 *     (('@model:' | '@prototype:')? '@instance:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=Buffer ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     buffer+=BufferPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=Channel ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     channel+=ChannelPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=Function ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     function+=FunctionPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=Port ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     port+=PortPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=Signal ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     signal+=SignalPublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     unrestrictedName=UnrestrictedName '{' ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=Variable ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePrivate ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariableProtected ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@behavior:' behavior+=Behavior
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@model:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@prototype:' machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) '@statemachine:' behavior+=Statemachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') instance+=InstanceMachine
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) ('@composite:' | '@machine:') machine+=AnyMachineBlock
	 *     variable+=VariablePublic ('@property:' | '@public:' | '@protected:' | '@private:')* '@instance:'? (ambiguity) main=MoeBehavior
	 */
	protected void emit_MachineBlock_____ModelKeyword_9_1_0_or_PrototypeKeyword_9_2_0__q_InstanceKeyword_9_3_0_q__a(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:' | '@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:
	 *     '@schedule' | '@xschedule'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@moe:' (ambiguity) scheduleRoutine=moeRoutine
	 *     concurrencyRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     createRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     disableRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     enableRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     finalRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     initRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     irunRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     routine+=Routine (ambiguity) scheduleRoutine=moeRoutine
	 *     runRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     scheduleRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 */
	protected void emit_ModelOfExecution_ScheduleKeyword_3_6_0_0_or_XscheduleKeyword_3_6_0_1(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' | '@xschedule') 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:
	 *     '@schedule' | '@xschedule'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) '@moe:'? (ambiguity) scheduleRoutine=moeRoutine
	 *     runRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     scheduleRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 */
	protected void emit_ProcedureExecution_ScheduleKeyword_2_0_0_0_or_XscheduleKeyword_2_0_0_1(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:')* 
	 *         '@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:')* 
	 *         '@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:'?)* 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:'?)* 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:'?)* 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:'?)* 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
	 *     )
	 *     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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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))* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:'?)* 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:')* 
	 *         '@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:'?)* 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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:
	 *     '@input:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         ('@property:' | '@public:' | '@protected:' | '@private:')* 
	 *         '@procedure:' 
	 *         procedure+=Procedure
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         ('@property:' | '@public:' | '@protected:' | '@private:')* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         ('@property:' | '@public:' | '@protected:' | '@private:')* 
	 *         region+=StatemachineNamedRegion
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         ('@property:' | '@public:' | '@protected:' | '@private:')* 
	 *         region+=StatemachineRegionLite
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         (ambiguity) 
	 *         (('@inout:' | '@output:' | '@return:')? (ambiguity))* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     buffer+=Buffer (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     channel+=Channel (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     function+=Function (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     port+=Port (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     signal+=Signal (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     typedef+=TypeDefinition (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     variable+=Variable (ambiguity) (('@inout:' | '@output:' | '@return:')? (ambiguity))* (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 */
	protected void emit_Statemachine_InputKeyword_8_0_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:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (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:')? '@input:'?)* ('@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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@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 '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) routine+=Routine
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (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:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     typedef+=TypeDefinition ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* (ambiguity) routine+=Routine
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@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_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:
	 *     '@parameter:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         (ambiguity) 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         ('@property:' | '@public:' | '@protected:' | '@private:')* 
	 *         ('@routine:' | '@macro:') 
	 *         routine+=Routine
	 *     )
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@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:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' (ambiguity) '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (('@public:' | '@protected:' | '@private:')* '@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:
	 *     '@protected:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         buffer+=Buffer 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         buffer+=Buffer 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         (ambiguity) 
	 *         (('@property:' | '@public:' | '@private:')? (ambiguity))* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' function+=Function
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' port+=Port
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* routine+=Routine
	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic (ambiguity) (('@property:' | '@public:' | '@private:')? (ambiguity))* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_ProtectedKeyword_9_2_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@public:'?
	 *
	 * This ambiguous syntax occurs at:
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* (ambiguity) (('@property:' | '@protected:' | '@private:')? (ambiguity))* '@protected:' variable+=VariableProtected
	 */
	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:
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     buffer+=Buffer '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=Channel '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     function+=Function '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     function+=FunctionProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     port+=Port '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     port+=PortPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     port+=PortProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     port+=PortPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     procedure+=Procedure (ambiguity) '@statemachine:' machine+=Statemachine
	 *     routine+=Routine (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=Signal '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=SignalProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     typedef+=TypeDefinition '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     variable+=Variable '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     variable+=VariableProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (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:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     buffer+=Buffer '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=Buffer '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=Buffer '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     buffer+=BufferPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=BufferPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=BufferPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     buffer+=BufferProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=BufferProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=BufferProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     buffer+=BufferPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     buffer+=BufferPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     buffer+=BufferPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=Channel '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     channel+=Channel '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=Channel '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=ChannelPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     channel+=ChannelPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=ChannelPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=ChannelProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     channel+=ChannelProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=ChannelProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     channel+=ChannelPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     channel+=ChannelPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     channel+=ChannelPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=Function '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     function+=Function '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=Function '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=FunctionPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     function+=FunctionPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=FunctionPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=FunctionProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     function+=FunctionProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=FunctionProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     function+=FunctionPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     function+=FunctionPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     function+=FunctionPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     port+=Port '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     port+=Port '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=Port '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     port+=PortPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     port+=PortPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=PortPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     port+=PortProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     port+=PortProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=PortProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     port+=PortPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     port+=PortPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     port+=PortPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     signal+=Signal '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     signal+=Signal '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=Signal '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     signal+=SignalPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     signal+=SignalPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=SignalPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     signal+=SignalProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     signal+=SignalProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=SignalProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     signal+=SignalPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     signal+=SignalPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     signal+=SignalPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     typedef+=TypeDefinition '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     typedef+=TypeDefinition '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=Variable '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     variable+=Variable '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=Variable '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=VariablePrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     variable+=VariablePrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=VariablePrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=VariableProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     variable+=VariableProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=VariableProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) interaction=ModelOfInteraction
	 *     variable+=VariablePublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) '}' (rule end)
	 *     variable+=VariablePublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) execution=ModelOfExecution
	 *     variable+=VariablePublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (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:
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* procedure+=Procedure
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* routine+=Routine
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' function+=Function
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' port+=Port
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* procedure+=Procedure
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* routine+=Routine
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' function+=Function
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' port+=Port
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* procedure+=Procedure
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* routine+=Routine
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' channel+=Channel
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' function+=Function
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' port+=Port
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' signal+=Signal
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@property:' variable+=Variable
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* procedure+=Procedure
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineRegion
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* routine+=Routine
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn (ambiguity) '@public:'? (('@property:' | '@protected:' | '@private:')? '@public:'?)* '@protected:' variable+=VariableProtected
	 */
	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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) routine+=Routine
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) '@procedure:' procedure+=Procedure
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) procedure+=Procedure
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineNamedRegion
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegion
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) region+=StatemachineRegionLite
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=Buffer '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     machine+=Statemachine (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (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:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=Buffer '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     machine+=Statemachine (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (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:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         instance+=InstanceMachine
	 *     )
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=Buffer '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     buffer+=BufferPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=Channel '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     channel+=ChannelPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=Function '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     function+=FunctionPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     machine+=AnyMachineBlock (ambiguity) instance+=InstanceMachine
	 *     machine+=Statemachine (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=Port '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     port+=PortPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     procedure+=Procedure (ambiguity) instance+=InstanceMachine
	 *     routine+=Routine (ambiguity) instance+=InstanceMachine
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=Signal '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     signal+=SignalPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=Variable '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariableProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) instance+=InstanceMachine
	 *     variable+=VariablePublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (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:
	 *     (('@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:
	 *     (('@inout:' | '@output:' | '@return:')? '@input:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         buffer+=Buffer 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         channel+=Channel 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         port+=Port 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         signal+=Signal 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (ambiguity) 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     buffer+=Buffer '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=Buffer '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=Buffer '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=Buffer '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     buffer+=Buffer '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     buffer+=Buffer '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     buffer+=Buffer '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     buffer+=Buffer '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     buffer+=Buffer '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     buffer+=Buffer '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     buffer+=Buffer '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     channel+=Channel '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=Channel '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=Channel '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=Channel '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     channel+=Channel '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     channel+=Channel '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     channel+=Channel '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     channel+=Channel '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     channel+=Channel '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     channel+=Channel '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     channel+=Channel '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     channel+=Channel '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     channel+=Channel '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     channel+=Channel '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     channel+=Channel '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     channel+=Channel '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     channel+=Channel '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     channel+=Channel '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     function+=Function '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=Function '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=Function '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=Function '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     function+=Function '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     function+=Function '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     function+=Function '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     function+=Function '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     function+=Function '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     function+=Function '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     function+=Function '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     function+=Function '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     function+=Function '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     function+=Function '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     function+=Function '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     function+=Function '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     function+=Function '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     function+=Function '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInout '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInout '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInout '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInput '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     port+=Port '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=Port '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=Port '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=Port '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=Port '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     port+=Port '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     port+=Port '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     port+=Port '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     port+=Port '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     port+=Port '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     port+=Port '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     port+=Port '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     port+=Port '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     port+=Port '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     port+=Port '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     port+=Port '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     port+=Port '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     port+=Port '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     port+=Port '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     signal+=Signal '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=Signal '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=Signal '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=Signal '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     signal+=Signal '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     signal+=Signal '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     signal+=Signal '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     signal+=Signal '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     signal+=Signal '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     signal+=Signal '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     signal+=Signal '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     signal+=Signal '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     signal+=Signal '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     signal+=Signal '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     signal+=Signal '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     signal+=Signal '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     signal+=Signal '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     signal+=Signal '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     typedef+=TypeDefinition '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 *     variable+=Variable '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=Variable '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=Variable '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@input:'? (ambiguity) '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* '@procedure:' procedure+=Procedure
	 *     variable+=Variable '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* ('@routine:' | '@macro:') routine+=Routine
	 *     variable+=Variable '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* procedure+=Procedure
	 *     variable+=Variable '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineNamedRegion
	 *     variable+=Variable '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegion
	 *     variable+=Variable '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* region+=StatemachineRegionLite
	 *     variable+=Variable '@input:'? (ambiguity) ('@property:' | '@public:' | '@protected:' | '@private:')* routine+=Routine
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ buffer+=BufferPublic
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ channel+=ChannelPublic
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ function+=FunctionPublic
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ port+=PortPublic
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ signal+=SignalPublic
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ typedef+=TypeDefinition
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@protected:' | '@private:')* '@public:')+ variable+=VariablePublic
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ buffer+=BufferProtected
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ channel+=ChannelProtected
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ function+=FunctionProtected
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ port+=PortProtected
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ signal+=SignalProtected
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ typedef+=TypeDefinition
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@private:')* '@protected:')+ variable+=VariableProtected
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ buffer+=BufferPrivate
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ channel+=ChannelPrivate
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ function+=FunctionPrivate
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ port+=PortPrivate
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ signal+=SignalPrivate
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ typedef+=TypeDefinition
	 *     variable+=Variable '@input:'? (ambiguity) (('@property:' | '@public:' | '@protected:')* '@private:')+ variable+=VariablePrivate
	 *     variable+=Variable '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ buffer+=Buffer
	 *     variable+=Variable '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ channel+=Channel
	 *     variable+=Variable '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ function+=Function
	 *     variable+=Variable '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ port+=Port
	 *     variable+=Variable '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ signal+=Signal
	 *     variable+=Variable '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ typedef+=TypeDefinition
	 *     variable+=Variable '@input:'? (ambiguity) (('@public:' | '@protected:' | '@private:')* '@property:')+ variable+=Variable
	 */
	protected void emit_Statemachine_____InoutKeyword_8_1_0_or_OutputKeyword_8_2_0_or_ReturnKeyword_8_3_0__q_InputKeyword_8_0_0_q__a(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:
	 *     (('@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:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (('@property:' | '@public:' | '@private:')? '@protected:'?)* 
	 *         (ambiguity) 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=Buffer '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=Channel '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=Function '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     instance+=InstanceMachine (ambiguity) machine+=AnyMachineBlock
	 *     machine+=AnyMachineBlock (ambiguity) machine+=AnyMachineBlock
	 *     machine+=Statemachine (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=Port '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     port+=PortPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     procedure+=Procedure (ambiguity) machine+=AnyMachineBlock
	 *     routine+=Routine (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=Signal '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=Variable '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (ambiguity) machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@protected:'? (('@property:' | '@public:' | '@private:')? '@protected:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePublic
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPublic
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPublic
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPublic
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPublic
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPublic
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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:
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' variable+=VariableProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' buffer+=BufferProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' channel+=ChannelProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' function+=FunctionProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' port+=PortProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' signal+=SignalProtected
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@public:'? (ambiguity) '@protected:' variable+=VariableProtected
	 */
	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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariableProtected
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferProtected
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelProtected
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionProtected
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortProtected
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalProtected
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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:
	 *     (('@property:' | '@public:' | '@private:')? '@protected:'?)*
	 *
	 * This ambiguous syntax occurs at:
	 *     (
	 *         function+=Function 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         name=ESIdentifier 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInout 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterInput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterOutput 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         parameter+=ParameterReturn 
	 *         '}' 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         typedef+=TypeDefinition 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         '}' 
	 *         (rule end)
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         execution=ModelOfExecution
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ 
	 *         interaction=ModelOfInteraction
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ 
	 *         instance+=InstanceMachine
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         unrestrictedName=UnrestrictedName 
	 *         '{' 
	 *         '@parameter:'? 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ 
	 *         machine+=AnyMachineBlock
	 *     )
	 *     (
	 *         variable+=Variable 
	 *         '@input:'? 
	 *         (('@inout:' | '@output:' | '@return:')? '@input:'?)* 
	 *         '@protected:'? 
	 *         (ambiguity) 
	 *         ('@composite:' | '@model:' | '@prototype:' | '@instance:')* 
	 *         '@statemachine:' 
	 *         machine+=Statemachine
	 *     )
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=Buffer '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=Buffer '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=Buffer '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=Buffer '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=Buffer '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=Buffer '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPrivate '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPrivate '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferProtected '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferProtected '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     buffer+=BufferPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     buffer+=BufferPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     buffer+=BufferPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     buffer+=BufferPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     buffer+=BufferPublic '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     buffer+=BufferPublic '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=Channel '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=Channel '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=Channel '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=Channel '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=Channel '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=Channel '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPrivate '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPrivate '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelProtected '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelProtected '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     channel+=ChannelPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     channel+=ChannelPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     channel+=ChannelPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     channel+=ChannelPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     channel+=ChannelPublic '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     channel+=ChannelPublic '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=Function '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=Function '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=Function '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=Function '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=Function '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=Function '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=Function '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=Function '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPrivate '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPrivate '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionProtected '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionProtected '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     function+=FunctionPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     function+=FunctionPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     function+=FunctionPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     function+=FunctionPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     function+=FunctionPublic '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     function+=FunctionPublic '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInout ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterInput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterOutput ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) routine+=Routine
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' buffer+=BufferPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' channel+=ChannelPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' function+=FunctionPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' port+=PortPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' signal+=SignalPrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@private:' variable+=VariablePrivate
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@procedure:' procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' buffer+=Buffer
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' channel+=Channel
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' function+=Function
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' port+=Port
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' signal+=Signal
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@property:' variable+=Variable
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' buffer+=BufferPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' channel+=ChannelPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' function+=FunctionPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' port+=PortPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' signal+=SignalPublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' typedef+=TypeDefinition
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) '@public:' variable+=VariablePublic
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) ('@routine:' | '@macro:') routine+=Routine
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) procedure+=Procedure
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineNamedRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineRegion
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) region+=StatemachineRegionLite
	 *     parameter+=ParameterReturn ('@input:' | '@inout:' | '@output:' | '@return:')* '@protected:'? (ambiguity) routine+=Routine
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=Port '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=Port '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=Port '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=Port '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=Port '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=Port '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=Port '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=Port '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPrivate '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPrivate '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortProtected '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortProtected '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     port+=PortPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     port+=PortPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     port+=PortPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     port+=PortPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     port+=PortPublic '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     port+=PortPublic '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=Signal '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=Signal '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=Signal '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=Signal '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=Signal '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=Signal '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalPrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPrivate '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPrivate '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalProtected '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalProtected '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     signal+=SignalPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     signal+=SignalPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     signal+=SignalPublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     signal+=SignalPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     signal+=SignalPublic '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     signal+=SignalPublic '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     typedef+=TypeDefinition '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     typedef+=TypeDefinition '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     typedef+=TypeDefinition '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     typedef+=TypeDefinition '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     typedef+=TypeDefinition '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     typedef+=TypeDefinition '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=Variable '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=Variable '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=Variable '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=Variable '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=Variable '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=Variable '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariablePrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariablePrivate '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariablePrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePrivate '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePrivate '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariableProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariableProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariableProtected '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariableProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariableProtected '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariableProtected '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')* '@statemachine:' machine+=Statemachine
	 *     variable+=VariablePublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ '}' (rule end)
	 *     variable+=VariablePublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ execution=ModelOfExecution
	 *     variable+=VariablePublic '@protected:'? (ambiguity) ('@composite:' | '@model:' | '@prototype:' | '@instance:')+ interaction=ModelOfInteraction
	 *     variable+=VariablePublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@instance:')* '@prototype:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@protected:'? (ambiguity) (('@composite:' | '@model:' | '@prototype:')* '@instance:')+ instance+=InstanceMachine
	 *     variable+=VariablePublic '@protected:'? (ambiguity) (('@composite:' | '@prototype:' | '@instance:')* '@model:')+ machine+=AnyMachineBlock
	 *     variable+=VariablePublic '@protected:'? (ambiguity) (('@model:' | '@prototype:' | '@instance:')* '@composite:')+ machine+=AnyMachineBlock
	 */
	protected void emit_Statemachine_____PrivateKeyword_9_3_0_or_PropertyKeyword_9_0_0_or_PublicKeyword_9_1_0__q_ProtectedKeyword_9_2_0_q__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
	 *     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+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=Variable
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=Buffer
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=Channel
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=Function
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=Port
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=Signal
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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:
	 *     (('@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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     buffer+=Buffer '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     channel+=Channel '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     function+=Function '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     name=ESIdentifier '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInout '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterInput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterOutput '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     parameter+=ParameterReturn '}' '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     port+=Port '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     signal+=Signal '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     typedef+=TypeDefinition '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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 '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     unrestrictedName=UnrestrictedName '{' '@parameter:'? '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) variable+=VariablePrivate
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) buffer+=BufferPrivate
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) channel+=ChannelPrivate
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) function+=FunctionPrivate
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) port+=PortPrivate
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) signal+=SignalPrivate
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (ambiguity) typedef+=TypeDefinition
	 *     variable+=Variable '@input:'? (('@inout:' | '@output:' | '@return:')? '@input:'?)* (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:
	 *     '@schedule' | '@xschedule'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) scheduleRoutine=moeRoutine
	 *     concurrencyRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     createRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     disableRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     enableRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     finalRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     initRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     irunRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     runRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 *     scheduleRoutine=moeRoutine (ambiguity) scheduleRoutine=moeRoutine
	 */
	protected void emit_moeCompositeStateRoutines_ScheduleKeyword_1_6_0_0_or_XscheduleKeyword_1_6_0_1(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);
	}
	
}
