All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.contextmapper.dsl.serializer.ContextMappingDSLSyntacticSequencer Maven / Gradle / Ivy

/*
 * generated by Xtext 2.20.0
 */
package org.contextmapper.dsl.serializer;

import com.google.inject.Inject;
import java.util.List;
import org.contextmapper.dsl.services.ContextMappingDSLGrammarAccess;
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 ContextMappingDSLSyntacticSequencer extends AbstractSyntacticSequencer {

	protected ContextMappingDSLGrammarAccess grammarAccess;
	protected AbstractElementAlias match_Aggregate_EqualsSignKeyword_4_1_0_0_1_q;
	protected AbstractElementAlias match_Aggregate_EqualsSignKeyword_4_1_1_0_1_q;
	protected AbstractElementAlias match_Aggregate_EqualsSignKeyword_4_1_2_1_q;
	protected AbstractElementAlias match_Aggregate_EqualsSignKeyword_4_1_3_1_q;
	protected AbstractElementAlias match_Aggregate_EqualsSignKeyword_4_1_4_1_q;
	protected AbstractElementAlias match_Aggregate_UseCasesKeyword_4_1_1_0_0_0_or_UserRequirementsKeyword_4_1_1_0_0_1;
	protected AbstractElementAlias match_Aggregate___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_3__q;
	protected AbstractElementAlias match_Attribute_NullableNullableKeyword_4_3_0_0_0;
	protected AbstractElementAlias match_Attribute_SemicolonKeyword_5_q;
	protected AbstractElementAlias match_Attribute___ChangeableKeyword_4_1_1_q___NOTTerminalRuleCall_4_2_1_0_RequiredKeyword_4_2_1_1__q___NOTTerminalRuleCall_4_3_0_1_0_NullableKeyword_4_3_0_1_1__q__p;
	protected AbstractElementAlias match_BasicType_CommercialAtKeyword_3_1_q;
	protected AbstractElementAlias match_BasicType_ImmutableKeyword_4_2_0_1_a;
	protected AbstractElementAlias match_BasicType___LeftCurlyBracketKeyword_4_0_ImmutableKeyword_4_2_0_1_a_RightCurlyBracketKeyword_4_4__q;
	protected AbstractElementAlias match_BoundedContext_EqualsSignKeyword_4_1_0_1_q;
	protected AbstractElementAlias match_BoundedContext_EqualsSignKeyword_4_1_1_1_q;
	protected AbstractElementAlias match_BoundedContext_EqualsSignKeyword_4_1_2_0_1_q;
	protected AbstractElementAlias match_BoundedContext_EqualsSignKeyword_4_1_3_1_q;
	protected AbstractElementAlias match_BoundedContext_EqualsSignKeyword_4_1_4_1_q;
	protected AbstractElementAlias match_BoundedContext___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_4__q;
	protected AbstractElementAlias match_CommandEvent_CommercialAtKeyword_6_1_q;
	protected AbstractElementAlias match_CommandEvent_CommercialAtKeyword_7_2_13_1_0_q;
	protected AbstractElementAlias match_CommandEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q;
	protected AbstractElementAlias match_CommandEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a;
	protected AbstractElementAlias match_Consumer_CommercialAtKeyword_6_1_q;
	protected AbstractElementAlias match_Consumer_QueueNameKeyword_7_0_0_0_or_TopicNameKeyword_7_0_0_1;
	protected AbstractElementAlias match_ContextMap_EqualsSignKeyword_4_0_1_q;
	protected AbstractElementAlias match_ContextMap_EqualsSignKeyword_4_1_1_q;
	protected AbstractElementAlias match_CustomerSupplierRelationship_EqualsSignKeyword_2_1_0_1_q;
	protected AbstractElementAlias match_CustomerSupplierRelationship_EqualsSignKeyword_2_1_1_0_1_q;
	protected AbstractElementAlias match_CustomerSupplierRelationship_EqualsSignKeyword_2_1_2_1_q;
	protected AbstractElementAlias match_CustomerSupplierRelationship___DKeyword_0_0_8_0_CommaKeyword_0_0_8_1__q;
	protected AbstractElementAlias match_CustomerSupplierRelationship___DKeyword_0_1_2_0_CommaKeyword_0_1_2_1__q;
	protected AbstractElementAlias match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_1_0_RightSquareBracketKeyword_0_2_1_2__q;
	protected AbstractElementAlias match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_3_0_RightSquareBracketKeyword_0_2_3_2__q;
	protected AbstractElementAlias match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_1_0_RightSquareBracketKeyword_0_3_1_2__q;
	protected AbstractElementAlias match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_3_0_RightSquareBracketKeyword_0_3_3_2__q;
	protected AbstractElementAlias match_CustomerSupplierRelationship___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q;
	protected AbstractElementAlias match_CustomerSupplierRelationship___UKeyword_0_0_2_0_CommaKeyword_0_0_2_1__q;
	protected AbstractElementAlias match_CustomerSupplierRelationship___UKeyword_0_1_8_0_CommaKeyword_0_1_8_1__q;
	protected AbstractElementAlias match_DataTransferObject___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_4__q;
	protected AbstractElementAlias match_Dependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1;
	protected AbstractElementAlias match_DomainEvent_CommercialAtKeyword_6_1_q;
	protected AbstractElementAlias match_DomainEvent_CommercialAtKeyword_7_2_13_1_0_q;
	protected AbstractElementAlias match_DomainEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q;
	protected AbstractElementAlias match_DomainEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a;
	protected AbstractElementAlias match_DomainObjectOperation_AsteriskKeyword_1_1_or_DefKeyword_1_0;
	protected AbstractElementAlias match_DomainObjectOperation_VoidKeyword_4_1_q;
	protected AbstractElementAlias match_DomainObjectOperation___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_3__q;
	protected AbstractElementAlias match_Domain_EqualsSignKeyword_2_1_0_1_q;
	protected AbstractElementAlias match_Domain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q;
	protected AbstractElementAlias match_DtoAttribute_GreaterThanSignKeyword_4_q;
	protected AbstractElementAlias match_DtoAttribute_NullableNullableKeyword_6_3_0_0_0;
	protected AbstractElementAlias match_DtoAttribute_SemicolonKeyword_7_q;
	protected AbstractElementAlias match_DtoAttribute___ChangeableKeyword_6_1_1_q___NOTTerminalRuleCall_6_2_1_0_RequiredKeyword_6_2_1_1__q___NOTTerminalRuleCall_6_3_0_1_0_NullableKeyword_6_3_0_1_1__q__p;
	protected AbstractElementAlias match_DtoReference_CommercialAtKeyword_4_0_q;
	protected AbstractElementAlias match_DtoReference_GreaterThanSignKeyword_5_q;
	protected AbstractElementAlias match_DtoReference_NullableNullableKeyword_7_3_0_0_0;
	protected AbstractElementAlias match_DtoReference_SemicolonKeyword_8_q;
	protected AbstractElementAlias match_DtoReference___ChangeableKeyword_7_1_1_q___NOTTerminalRuleCall_7_2_1_0_RequiredKeyword_7_2_1_1__q___NOTTerminalRuleCall_7_3_0_1_0_NullableKeyword_7_3_0_1_1__q__p;
	protected AbstractElementAlias match_Entity_CommercialAtKeyword_6_1_q;
	protected AbstractElementAlias match_Entity_CommercialAtKeyword_7_2_14_1_0_q;
	protected AbstractElementAlias match_Entity___LeftCurlyBracketKeyword_7_0_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q;
	protected AbstractElementAlias match_Entity_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p;
	protected AbstractElementAlias match_EnumAttribute_SemicolonKeyword_4_q;
	protected AbstractElementAlias match_Enum_SemicolonKeyword_10_q;
	protected AbstractElementAlias match_Feature___AKeyword_1_0_or_AnKeyword_1_1__q;
	protected AbstractElementAlias match_Partnership_EqualsSignKeyword_2_1_1_q;
	protected AbstractElementAlias match_Partnership___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q;
	protected AbstractElementAlias match_Publish_CommercialAtKeyword_1_0_q;
	protected AbstractElementAlias match_Reference_CommercialAtKeyword_3_0_2_0_q;
	protected AbstractElementAlias match_Reference_CommercialAtKeyword_3_1_0_q;
	protected AbstractElementAlias match_Reference_NullableNullableKeyword_5_3_0_0_0;
	protected AbstractElementAlias match_Reference_SemicolonKeyword_6_q;
	protected AbstractElementAlias match_Reference___ChangeableKeyword_5_1_1_q___NOTTerminalRuleCall_5_2_1_0_RequiredKeyword_5_2_1_1__q___NOTTerminalRuleCall_5_3_0_1_0_NullableKeyword_5_3_0_1_1__q___NOTTerminalRuleCall_5_7_1_0_CacheKeyword_5_7_1_1__q___NOTTerminalRuleCall_5_8_1_0_InverseKeyword_5_8_1_1__q__p;
	protected AbstractElementAlias match_RepositoryOperation_VoidKeyword_2_1_q;
	protected AbstractElementAlias match_RepositoryOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q;
	protected AbstractElementAlias match_Repository___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q;
	protected AbstractElementAlias match_ResourceOperationDelegate_CommercialAtKeyword_1_q;
	protected AbstractElementAlias match_ResourceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q;
	protected AbstractElementAlias match_Resource___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q;
	protected AbstractElementAlias match_SculptorModule___OPENTerminalRuleCall_3_0_CLOSETerminalRuleCall_3_5__q;
	protected AbstractElementAlias match_ServiceDependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1;
	protected AbstractElementAlias match_ServiceOperationDelegate_CommercialAtKeyword_1_q;
	protected AbstractElementAlias match_ServiceOperation_VoidKeyword_2_1_q;
	protected AbstractElementAlias match_ServiceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q;
	protected AbstractElementAlias match_Service___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_4__q;
	protected AbstractElementAlias match_SharedKernel_EqualsSignKeyword_2_1_1_q;
	protected AbstractElementAlias match_SharedKernel___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q;
	protected AbstractElementAlias match_Subdomain_EqualsSignKeyword_2_1_0_1_q;
	protected AbstractElementAlias match_Subdomain_EqualsSignKeyword_2_1_1_1_q;
	protected AbstractElementAlias match_Subdomain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_4__q;
	protected AbstractElementAlias match_Trait___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_0_1_q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_1_0_1_q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_2_1_q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___DKeyword_1_0_0_3_1_0_1_0_CommaKeyword_1_0_0_3_1_0_1_1__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___DKeyword_1_0_1_1_1_0_1_0_CommaKeyword_1_0_1_1_1_0_1_1__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_1_0_0_UKeyword_1_0_0_1_0_1_RightSquareBracketKeyword_1_0_0_1_0_2__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_3_0_0_DKeyword_1_0_0_3_0_1_RightSquareBracketKeyword_1_0_0_3_0_2__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_1_0_0_DKeyword_1_0_1_1_0_1_RightSquareBracketKeyword_1_0_1_1_0_2__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_3_0_0_UKeyword_1_0_1_3_0_1_RightSquareBracketKeyword_1_0_1_3_0_2__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_1_0_RightSquareBracketKeyword_1_0_2_1_2__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_3_0_RightSquareBracketKeyword_1_0_2_3_2__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_1_0_RightSquareBracketKeyword_1_0_3_1_2__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_3_0_RightSquareBracketKeyword_1_0_3_3_2__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___OPENTerminalRuleCall_1_2_0_CLOSETerminalRuleCall_1_2_2__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___UKeyword_1_0_0_1_1_0_1_0_CommaKeyword_1_0_0_1_1_0_1_1__q;
	protected AbstractElementAlias match_UpstreamDownstreamRelationship___UKeyword_1_0_1_3_1_0_1_0_CommaKeyword_1_0_1_3_1_0_1_1__q;
	protected AbstractElementAlias match_UseCase_EqualsSignKeyword_2_1_0_1_q;
	protected AbstractElementAlias match_UseCase_EqualsSignKeyword_2_1_1_1_q;
	protected AbstractElementAlias match_UseCase_EqualsSignKeyword_2_1_2_1_q;
	protected AbstractElementAlias match_UseCase_EqualsSignKeyword_2_1_3_1_q;
	protected AbstractElementAlias match_UseCase___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a_CLOSETerminalRuleCall_2_2__q;
	protected AbstractElementAlias match_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__a;
	protected AbstractElementAlias match_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__p;
	protected AbstractElementAlias match_UseCase___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a;
	protected AbstractElementAlias match_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__a;
	protected AbstractElementAlias match_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__p;
	protected AbstractElementAlias match_UserStory_AsAKeyword_2_1_0_0_0_or_AsAnKeyword_2_1_0_0_1;
	protected AbstractElementAlias match_UserStory_EqualsSignKeyword_2_1_1_1_q;
	protected AbstractElementAlias match_UserStory___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a_CLOSETerminalRuleCall_2_2__q;
	protected AbstractElementAlias match_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__a;
	protected AbstractElementAlias match_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__p;
	protected AbstractElementAlias match_UserStory___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a;
	protected AbstractElementAlias match_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__a;
	protected AbstractElementAlias match_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__p;
	protected AbstractElementAlias match_ValueObject_CommercialAtKeyword_6_1_q;
	protected AbstractElementAlias match_ValueObject_CommercialAtKeyword_7_2_15_1_0_q;
	protected AbstractElementAlias match_ValueObject___LeftCurlyBracketKeyword_7_0_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q;
	protected AbstractElementAlias match_ValueObject_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p;
	
	@Inject
	protected void init(IGrammarAccess access) {
		grammarAccess = (ContextMappingDSLGrammarAccess) access;
		match_Aggregate_EqualsSignKeyword_4_1_0_0_1_q = new TokenAlias(false, true, grammarAccess.getAggregateAccess().getEqualsSignKeyword_4_1_0_0_1());
		match_Aggregate_EqualsSignKeyword_4_1_1_0_1_q = new TokenAlias(false, true, grammarAccess.getAggregateAccess().getEqualsSignKeyword_4_1_1_0_1());
		match_Aggregate_EqualsSignKeyword_4_1_2_1_q = new TokenAlias(false, true, grammarAccess.getAggregateAccess().getEqualsSignKeyword_4_1_2_1());
		match_Aggregate_EqualsSignKeyword_4_1_3_1_q = new TokenAlias(false, true, grammarAccess.getAggregateAccess().getEqualsSignKeyword_4_1_3_1());
		match_Aggregate_EqualsSignKeyword_4_1_4_1_q = new TokenAlias(false, true, grammarAccess.getAggregateAccess().getEqualsSignKeyword_4_1_4_1());
		match_Aggregate_UseCasesKeyword_4_1_1_0_0_0_or_UserRequirementsKeyword_4_1_1_0_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getAggregateAccess().getUseCasesKeyword_4_1_1_0_0_0()), new TokenAlias(false, false, grammarAccess.getAggregateAccess().getUserRequirementsKeyword_4_1_1_0_0_1()));
		match_Aggregate___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getAggregateAccess().getOPENTerminalRuleCall_4_0()), new TokenAlias(false, false, grammarAccess.getAggregateAccess().getCLOSETerminalRuleCall_4_3()));
		match_Attribute_NullableNullableKeyword_4_3_0_0_0 = new TokenAlias(false, false, grammarAccess.getAttributeAccess().getNullableNullableKeyword_4_3_0_0_0());
		match_Attribute_SemicolonKeyword_5_q = new TokenAlias(false, true, grammarAccess.getAttributeAccess().getSemicolonKeyword_5());
		match_Attribute___ChangeableKeyword_4_1_1_q___NOTTerminalRuleCall_4_2_1_0_RequiredKeyword_4_2_1_1__q___NOTTerminalRuleCall_4_3_0_1_0_NullableKeyword_4_3_0_1_1__q__p = new GroupAlias(true, false, new TokenAlias(false, true, grammarAccess.getAttributeAccess().getChangeableKeyword_4_1_1()), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getAttributeAccess().getNOTTerminalRuleCall_4_2_1_0()), new TokenAlias(false, false, grammarAccess.getAttributeAccess().getRequiredKeyword_4_2_1_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getAttributeAccess().getNOTTerminalRuleCall_4_3_0_1_0()), new TokenAlias(false, false, grammarAccess.getAttributeAccess().getNullableKeyword_4_3_0_1_1())));
		match_BasicType_CommercialAtKeyword_3_1_q = new TokenAlias(false, true, grammarAccess.getBasicTypeAccess().getCommercialAtKeyword_3_1());
		match_BasicType_ImmutableKeyword_4_2_0_1_a = new TokenAlias(true, true, grammarAccess.getBasicTypeAccess().getImmutableKeyword_4_2_0_1());
		match_BasicType___LeftCurlyBracketKeyword_4_0_ImmutableKeyword_4_2_0_1_a_RightCurlyBracketKeyword_4_4__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getBasicTypeAccess().getLeftCurlyBracketKeyword_4_0()), new TokenAlias(true, true, grammarAccess.getBasicTypeAccess().getImmutableKeyword_4_2_0_1()), new TokenAlias(false, false, grammarAccess.getBasicTypeAccess().getRightCurlyBracketKeyword_4_4()));
		match_BoundedContext_EqualsSignKeyword_4_1_0_1_q = new TokenAlias(false, true, grammarAccess.getBoundedContextAccess().getEqualsSignKeyword_4_1_0_1());
		match_BoundedContext_EqualsSignKeyword_4_1_1_1_q = new TokenAlias(false, true, grammarAccess.getBoundedContextAccess().getEqualsSignKeyword_4_1_1_1());
		match_BoundedContext_EqualsSignKeyword_4_1_2_0_1_q = new TokenAlias(false, true, grammarAccess.getBoundedContextAccess().getEqualsSignKeyword_4_1_2_0_1());
		match_BoundedContext_EqualsSignKeyword_4_1_3_1_q = new TokenAlias(false, true, grammarAccess.getBoundedContextAccess().getEqualsSignKeyword_4_1_3_1());
		match_BoundedContext_EqualsSignKeyword_4_1_4_1_q = new TokenAlias(false, true, grammarAccess.getBoundedContextAccess().getEqualsSignKeyword_4_1_4_1());
		match_BoundedContext___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_4__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getBoundedContextAccess().getOPENTerminalRuleCall_4_0()), new TokenAlias(false, false, grammarAccess.getBoundedContextAccess().getCLOSETerminalRuleCall_4_4()));
		match_CommandEvent_CommercialAtKeyword_6_1_q = new TokenAlias(false, true, grammarAccess.getCommandEventAccess().getCommercialAtKeyword_6_1());
		match_CommandEvent_CommercialAtKeyword_7_2_13_1_0_q = new TokenAlias(false, true, grammarAccess.getCommandEventAccess().getCommercialAtKeyword_7_2_13_1_0());
		match_CommandEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCommandEventAccess().getLeftCurlyBracketKeyword_7_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getCommandEventAccess().getNOTTerminalRuleCall_7_2_0_1_0()), new TokenAlias(false, false, grammarAccess.getCommandEventAccess().getCacheKeyword_7_2_0_1_1())), new TokenAlias(false, false, grammarAccess.getCommandEventAccess().getRightCurlyBracketKeyword_7_5()));
		match_CommandEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getCommandEventAccess().getNOTTerminalRuleCall_7_2_0_1_0()), new TokenAlias(false, false, grammarAccess.getCommandEventAccess().getCacheKeyword_7_2_0_1_1()));
		match_Consumer_CommercialAtKeyword_6_1_q = new TokenAlias(false, true, grammarAccess.getConsumerAccess().getCommercialAtKeyword_6_1());
		match_Consumer_QueueNameKeyword_7_0_0_0_or_TopicNameKeyword_7_0_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getConsumerAccess().getQueueNameKeyword_7_0_0_0()), new TokenAlias(false, false, grammarAccess.getConsumerAccess().getTopicNameKeyword_7_0_0_1()));
		match_ContextMap_EqualsSignKeyword_4_0_1_q = new TokenAlias(false, true, grammarAccess.getContextMapAccess().getEqualsSignKeyword_4_0_1());
		match_ContextMap_EqualsSignKeyword_4_1_1_q = new TokenAlias(false, true, grammarAccess.getContextMapAccess().getEqualsSignKeyword_4_1_1());
		match_CustomerSupplierRelationship_EqualsSignKeyword_2_1_0_1_q = new TokenAlias(false, true, grammarAccess.getCustomerSupplierRelationshipAccess().getEqualsSignKeyword_2_1_0_1());
		match_CustomerSupplierRelationship_EqualsSignKeyword_2_1_1_0_1_q = new TokenAlias(false, true, grammarAccess.getCustomerSupplierRelationshipAccess().getEqualsSignKeyword_2_1_1_0_1());
		match_CustomerSupplierRelationship_EqualsSignKeyword_2_1_2_1_q = new TokenAlias(false, true, grammarAccess.getCustomerSupplierRelationshipAccess().getEqualsSignKeyword_2_1_2_1());
		match_CustomerSupplierRelationship___DKeyword_0_0_8_0_CommaKeyword_0_0_8_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getDKeyword_0_0_8_0()), new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getCommaKeyword_0_0_8_1()));
		match_CustomerSupplierRelationship___DKeyword_0_1_2_0_CommaKeyword_0_1_2_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getDKeyword_0_1_2_0()), new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getCommaKeyword_0_1_2_1()));
		match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_1_0_RightSquareBracketKeyword_0_2_1_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getLeftSquareBracketKeyword_0_2_1_0()), new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getRightSquareBracketKeyword_0_2_1_2()));
		match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_3_0_RightSquareBracketKeyword_0_2_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getLeftSquareBracketKeyword_0_2_3_0()), new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getRightSquareBracketKeyword_0_2_3_2()));
		match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_1_0_RightSquareBracketKeyword_0_3_1_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getLeftSquareBracketKeyword_0_3_1_0()), new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getRightSquareBracketKeyword_0_3_1_2()));
		match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_3_0_RightSquareBracketKeyword_0_3_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getLeftSquareBracketKeyword_0_3_3_0()), new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getRightSquareBracketKeyword_0_3_3_2()));
		match_CustomerSupplierRelationship___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getOPENTerminalRuleCall_2_0()), new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getCLOSETerminalRuleCall_2_2()));
		match_CustomerSupplierRelationship___UKeyword_0_0_2_0_CommaKeyword_0_0_2_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getUKeyword_0_0_2_0()), new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getCommaKeyword_0_0_2_1()));
		match_CustomerSupplierRelationship___UKeyword_0_1_8_0_CommaKeyword_0_1_8_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getUKeyword_0_1_8_0()), new TokenAlias(false, false, grammarAccess.getCustomerSupplierRelationshipAccess().getCommaKeyword_0_1_8_1()));
		match_DataTransferObject___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_4__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDataTransferObjectAccess().getLeftCurlyBracketKeyword_6_0()), new TokenAlias(false, false, grammarAccess.getDataTransferObjectAccess().getRightCurlyBracketKeyword_6_4()));
		match_Dependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getDependencyAccess().getGreaterThanSignKeyword_0_0()), new TokenAlias(false, false, grammarAccess.getDependencyAccess().getInjectKeyword_0_1()));
		match_DomainEvent_CommercialAtKeyword_6_1_q = new TokenAlias(false, true, grammarAccess.getDomainEventAccess().getCommercialAtKeyword_6_1());
		match_DomainEvent_CommercialAtKeyword_7_2_13_1_0_q = new TokenAlias(false, true, grammarAccess.getDomainEventAccess().getCommercialAtKeyword_7_2_13_1_0());
		match_DomainEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDomainEventAccess().getLeftCurlyBracketKeyword_7_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDomainEventAccess().getNOTTerminalRuleCall_7_2_0_1_0()), new TokenAlias(false, false, grammarAccess.getDomainEventAccess().getCacheKeyword_7_2_0_1_1())), new TokenAlias(false, false, grammarAccess.getDomainEventAccess().getRightCurlyBracketKeyword_7_5()));
		match_DomainEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDomainEventAccess().getNOTTerminalRuleCall_7_2_0_1_0()), new TokenAlias(false, false, grammarAccess.getDomainEventAccess().getCacheKeyword_7_2_0_1_1()));
		match_DomainObjectOperation_AsteriskKeyword_1_1_or_DefKeyword_1_0 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getDomainObjectOperationAccess().getAsteriskKeyword_1_1()), new TokenAlias(false, false, grammarAccess.getDomainObjectOperationAccess().getDefKeyword_1_0()));
		match_DomainObjectOperation_VoidKeyword_4_1_q = new TokenAlias(false, true, grammarAccess.getDomainObjectOperationAccess().getVoidKeyword_4_1());
		match_DomainObjectOperation___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDomainObjectOperationAccess().getLeftParenthesisKeyword_6_0()), new TokenAlias(false, false, grammarAccess.getDomainObjectOperationAccess().getRightParenthesisKeyword_6_3()));
		match_Domain_EqualsSignKeyword_2_1_0_1_q = new TokenAlias(false, true, grammarAccess.getDomainAccess().getEqualsSignKeyword_2_1_0_1());
		match_Domain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDomainAccess().getOPENTerminalRuleCall_2_0()), new TokenAlias(false, false, grammarAccess.getDomainAccess().getCLOSETerminalRuleCall_2_2()));
		match_DtoAttribute_GreaterThanSignKeyword_4_q = new TokenAlias(false, true, grammarAccess.getDtoAttributeAccess().getGreaterThanSignKeyword_4());
		match_DtoAttribute_NullableNullableKeyword_6_3_0_0_0 = new TokenAlias(false, false, grammarAccess.getDtoAttributeAccess().getNullableNullableKeyword_6_3_0_0_0());
		match_DtoAttribute_SemicolonKeyword_7_q = new TokenAlias(false, true, grammarAccess.getDtoAttributeAccess().getSemicolonKeyword_7());
		match_DtoAttribute___ChangeableKeyword_6_1_1_q___NOTTerminalRuleCall_6_2_1_0_RequiredKeyword_6_2_1_1__q___NOTTerminalRuleCall_6_3_0_1_0_NullableKeyword_6_3_0_1_1__q__p = new GroupAlias(true, false, new TokenAlias(false, true, grammarAccess.getDtoAttributeAccess().getChangeableKeyword_6_1_1()), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDtoAttributeAccess().getNOTTerminalRuleCall_6_2_1_0()), new TokenAlias(false, false, grammarAccess.getDtoAttributeAccess().getRequiredKeyword_6_2_1_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDtoAttributeAccess().getNOTTerminalRuleCall_6_3_0_1_0()), new TokenAlias(false, false, grammarAccess.getDtoAttributeAccess().getNullableKeyword_6_3_0_1_1())));
		match_DtoReference_CommercialAtKeyword_4_0_q = new TokenAlias(false, true, grammarAccess.getDtoReferenceAccess().getCommercialAtKeyword_4_0());
		match_DtoReference_GreaterThanSignKeyword_5_q = new TokenAlias(false, true, grammarAccess.getDtoReferenceAccess().getGreaterThanSignKeyword_5());
		match_DtoReference_NullableNullableKeyword_7_3_0_0_0 = new TokenAlias(false, false, grammarAccess.getDtoReferenceAccess().getNullableNullableKeyword_7_3_0_0_0());
		match_DtoReference_SemicolonKeyword_8_q = new TokenAlias(false, true, grammarAccess.getDtoReferenceAccess().getSemicolonKeyword_8());
		match_DtoReference___ChangeableKeyword_7_1_1_q___NOTTerminalRuleCall_7_2_1_0_RequiredKeyword_7_2_1_1__q___NOTTerminalRuleCall_7_3_0_1_0_NullableKeyword_7_3_0_1_1__q__p = new GroupAlias(true, false, new TokenAlias(false, true, grammarAccess.getDtoReferenceAccess().getChangeableKeyword_7_1_1()), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDtoReferenceAccess().getNOTTerminalRuleCall_7_2_1_0()), new TokenAlias(false, false, grammarAccess.getDtoReferenceAccess().getRequiredKeyword_7_2_1_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDtoReferenceAccess().getNOTTerminalRuleCall_7_3_0_1_0()), new TokenAlias(false, false, grammarAccess.getDtoReferenceAccess().getNullableKeyword_7_3_0_1_1())));
		match_Entity_CommercialAtKeyword_6_1_q = new TokenAlias(false, true, grammarAccess.getEntityAccess().getCommercialAtKeyword_6_1());
		match_Entity_CommercialAtKeyword_7_2_14_1_0_q = new TokenAlias(false, true, grammarAccess.getEntityAccess().getCommercialAtKeyword_7_2_14_1_0());
		match_Entity___LeftCurlyBracketKeyword_7_0_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_7_0()), new GroupAlias(true, false, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getEntityAccess().getAuditableKeyword_7_2_1_1()), new TokenAlias(false, false, grammarAccess.getEntityAccess().getOptimisticLockingKeyword_7_2_0_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getEntityAccess().getNOTTerminalRuleCall_7_2_2_1_0()), new TokenAlias(false, false, grammarAccess.getEntityAccess().getCacheKeyword_7_2_2_1_1()))), new TokenAlias(false, false, grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_7_5()));
		match_Entity_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p = new GroupAlias(true, false, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getEntityAccess().getAuditableKeyword_7_2_1_1()), new TokenAlias(false, false, grammarAccess.getEntityAccess().getOptimisticLockingKeyword_7_2_0_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getEntityAccess().getNOTTerminalRuleCall_7_2_2_1_0()), new TokenAlias(false, false, grammarAccess.getEntityAccess().getCacheKeyword_7_2_2_1_1())));
		match_EnumAttribute_SemicolonKeyword_4_q = new TokenAlias(false, true, grammarAccess.getEnumAttributeAccess().getSemicolonKeyword_4());
		match_Enum_SemicolonKeyword_10_q = new TokenAlias(false, true, grammarAccess.getEnumAccess().getSemicolonKeyword_10());
		match_Feature___AKeyword_1_0_or_AnKeyword_1_1__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getFeatureAccess().getAKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getFeatureAccess().getAnKeyword_1_1()));
		match_Partnership_EqualsSignKeyword_2_1_1_q = new TokenAlias(false, true, grammarAccess.getPartnershipAccess().getEqualsSignKeyword_2_1_1());
		match_Partnership___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getPartnershipAccess().getOPENTerminalRuleCall_2_0()), new TokenAlias(false, false, grammarAccess.getPartnershipAccess().getCLOSETerminalRuleCall_2_2()));
		match_Publish_CommercialAtKeyword_1_0_q = new TokenAlias(false, true, grammarAccess.getPublishAccess().getCommercialAtKeyword_1_0());
		match_Reference_CommercialAtKeyword_3_0_2_0_q = new TokenAlias(false, true, grammarAccess.getReferenceAccess().getCommercialAtKeyword_3_0_2_0());
		match_Reference_CommercialAtKeyword_3_1_0_q = new TokenAlias(false, true, grammarAccess.getReferenceAccess().getCommercialAtKeyword_3_1_0());
		match_Reference_NullableNullableKeyword_5_3_0_0_0 = new TokenAlias(false, false, grammarAccess.getReferenceAccess().getNullableNullableKeyword_5_3_0_0_0());
		match_Reference_SemicolonKeyword_6_q = new TokenAlias(false, true, grammarAccess.getReferenceAccess().getSemicolonKeyword_6());
		match_Reference___ChangeableKeyword_5_1_1_q___NOTTerminalRuleCall_5_2_1_0_RequiredKeyword_5_2_1_1__q___NOTTerminalRuleCall_5_3_0_1_0_NullableKeyword_5_3_0_1_1__q___NOTTerminalRuleCall_5_7_1_0_CacheKeyword_5_7_1_1__q___NOTTerminalRuleCall_5_8_1_0_InverseKeyword_5_8_1_1__q__p = new GroupAlias(true, false, new TokenAlias(false, true, grammarAccess.getReferenceAccess().getChangeableKeyword_5_1_1()), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getReferenceAccess().getNOTTerminalRuleCall_5_2_1_0()), new TokenAlias(false, false, grammarAccess.getReferenceAccess().getRequiredKeyword_5_2_1_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getReferenceAccess().getNOTTerminalRuleCall_5_3_0_1_0()), new TokenAlias(false, false, grammarAccess.getReferenceAccess().getNullableKeyword_5_3_0_1_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getReferenceAccess().getNOTTerminalRuleCall_5_7_1_0()), new TokenAlias(false, false, grammarAccess.getReferenceAccess().getCacheKeyword_5_7_1_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getReferenceAccess().getNOTTerminalRuleCall_5_8_1_0()), new TokenAlias(false, false, grammarAccess.getReferenceAccess().getInverseKeyword_5_8_1_1())));
		match_RepositoryOperation_VoidKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getRepositoryOperationAccess().getVoidKeyword_2_1());
		match_RepositoryOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getRepositoryOperationAccess().getLeftParenthesisKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getRepositoryOperationAccess().getRightParenthesisKeyword_4_3()));
		match_Repository___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getRepositoryAccess().getLeftCurlyBracketKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getRepositoryAccess().getRightCurlyBracketKeyword_3_4()));
		match_ResourceOperationDelegate_CommercialAtKeyword_1_q = new TokenAlias(false, true, grammarAccess.getResourceOperationDelegateAccess().getCommercialAtKeyword_1());
		match_ResourceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getResourceOperationAccess().getLeftParenthesisKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getResourceOperationAccess().getRightParenthesisKeyword_4_3()));
		match_Resource___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getResourceAccess().getLeftCurlyBracketKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getResourceAccess().getRightCurlyBracketKeyword_3_4()));
		match_SculptorModule___OPENTerminalRuleCall_3_0_CLOSETerminalRuleCall_3_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getSculptorModuleAccess().getOPENTerminalRuleCall_3_0()), new TokenAlias(false, false, grammarAccess.getSculptorModuleAccess().getCLOSETerminalRuleCall_3_5()));
		match_ServiceDependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getServiceDependencyAccess().getGreaterThanSignKeyword_0_0()), new TokenAlias(false, false, grammarAccess.getServiceDependencyAccess().getInjectKeyword_0_1()));
		match_ServiceOperationDelegate_CommercialAtKeyword_1_q = new TokenAlias(false, true, grammarAccess.getServiceOperationDelegateAccess().getCommercialAtKeyword_1());
		match_ServiceOperation_VoidKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getServiceOperationAccess().getVoidKeyword_2_1());
		match_ServiceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getServiceOperationAccess().getLeftParenthesisKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getServiceOperationAccess().getRightParenthesisKeyword_4_3()));
		match_Service___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_4__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getServiceAccess().getLeftCurlyBracketKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getServiceAccess().getRightCurlyBracketKeyword_4_4()));
		match_SharedKernel_EqualsSignKeyword_2_1_1_q = new TokenAlias(false, true, grammarAccess.getSharedKernelAccess().getEqualsSignKeyword_2_1_1());
		match_SharedKernel___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getSharedKernelAccess().getOPENTerminalRuleCall_2_0()), new TokenAlias(false, false, grammarAccess.getSharedKernelAccess().getCLOSETerminalRuleCall_2_2()));
		match_Subdomain_EqualsSignKeyword_2_1_0_1_q = new TokenAlias(false, true, grammarAccess.getSubdomainAccess().getEqualsSignKeyword_2_1_0_1());
		match_Subdomain_EqualsSignKeyword_2_1_1_1_q = new TokenAlias(false, true, grammarAccess.getSubdomainAccess().getEqualsSignKeyword_2_1_1_1());
		match_Subdomain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_4__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getSubdomainAccess().getOPENTerminalRuleCall_2_0()), new TokenAlias(false, false, grammarAccess.getSubdomainAccess().getCLOSETerminalRuleCall_2_4()));
		match_Trait___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTraitAccess().getLeftCurlyBracketKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getTraitAccess().getRightCurlyBracketKeyword_3_4()));
		match_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_0_1_q = new TokenAlias(false, true, grammarAccess.getUpstreamDownstreamRelationshipAccess().getEqualsSignKeyword_1_2_1_0_1());
		match_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_1_0_1_q = new TokenAlias(false, true, grammarAccess.getUpstreamDownstreamRelationshipAccess().getEqualsSignKeyword_1_2_1_1_0_1());
		match_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_2_1_q = new TokenAlias(false, true, grammarAccess.getUpstreamDownstreamRelationshipAccess().getEqualsSignKeyword_1_2_1_2_1());
		match_UpstreamDownstreamRelationship___DKeyword_1_0_0_3_1_0_1_0_CommaKeyword_1_0_0_3_1_0_1_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getDKeyword_1_0_0_3_1_0_1_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getCommaKeyword_1_0_0_3_1_0_1_1()));
		match_UpstreamDownstreamRelationship___DKeyword_1_0_1_1_1_0_1_0_CommaKeyword_1_0_1_1_1_0_1_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getDKeyword_1_0_1_1_1_0_1_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getCommaKeyword_1_0_1_1_1_0_1_1()));
		match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_1_0_0_UKeyword_1_0_0_1_0_1_RightSquareBracketKeyword_1_0_0_1_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getLeftSquareBracketKeyword_1_0_0_1_0_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getUKeyword_1_0_0_1_0_1()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getRightSquareBracketKeyword_1_0_0_1_0_2()));
		match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_3_0_0_DKeyword_1_0_0_3_0_1_RightSquareBracketKeyword_1_0_0_3_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getLeftSquareBracketKeyword_1_0_0_3_0_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getDKeyword_1_0_0_3_0_1()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getRightSquareBracketKeyword_1_0_0_3_0_2()));
		match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_1_0_0_DKeyword_1_0_1_1_0_1_RightSquareBracketKeyword_1_0_1_1_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getLeftSquareBracketKeyword_1_0_1_1_0_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getDKeyword_1_0_1_1_0_1()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getRightSquareBracketKeyword_1_0_1_1_0_2()));
		match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_3_0_0_UKeyword_1_0_1_3_0_1_RightSquareBracketKeyword_1_0_1_3_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getLeftSquareBracketKeyword_1_0_1_3_0_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getUKeyword_1_0_1_3_0_1()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getRightSquareBracketKeyword_1_0_1_3_0_2()));
		match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_1_0_RightSquareBracketKeyword_1_0_2_1_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getLeftSquareBracketKeyword_1_0_2_1_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getRightSquareBracketKeyword_1_0_2_1_2()));
		match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_3_0_RightSquareBracketKeyword_1_0_2_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getLeftSquareBracketKeyword_1_0_2_3_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getRightSquareBracketKeyword_1_0_2_3_2()));
		match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_1_0_RightSquareBracketKeyword_1_0_3_1_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getLeftSquareBracketKeyword_1_0_3_1_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getRightSquareBracketKeyword_1_0_3_1_2()));
		match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_3_0_RightSquareBracketKeyword_1_0_3_3_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getLeftSquareBracketKeyword_1_0_3_3_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getRightSquareBracketKeyword_1_0_3_3_2()));
		match_UpstreamDownstreamRelationship___OPENTerminalRuleCall_1_2_0_CLOSETerminalRuleCall_1_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getOPENTerminalRuleCall_1_2_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getCLOSETerminalRuleCall_1_2_2()));
		match_UpstreamDownstreamRelationship___UKeyword_1_0_0_1_1_0_1_0_CommaKeyword_1_0_0_1_1_0_1_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getUKeyword_1_0_0_1_1_0_1_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getCommaKeyword_1_0_0_1_1_0_1_1()));
		match_UpstreamDownstreamRelationship___UKeyword_1_0_1_3_1_0_1_0_CommaKeyword_1_0_1_3_1_0_1_1__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getUKeyword_1_0_1_3_1_0_1_0()), new TokenAlias(false, false, grammarAccess.getUpstreamDownstreamRelationshipAccess().getCommaKeyword_1_0_1_3_1_0_1_1()));
		match_UseCase_EqualsSignKeyword_2_1_0_1_q = new TokenAlias(false, true, grammarAccess.getUseCaseAccess().getEqualsSignKeyword_2_1_0_1());
		match_UseCase_EqualsSignKeyword_2_1_1_1_q = new TokenAlias(false, true, grammarAccess.getUseCaseAccess().getEqualsSignKeyword_2_1_1_1());
		match_UseCase_EqualsSignKeyword_2_1_2_1_q = new TokenAlias(false, true, grammarAccess.getUseCaseAccess().getEqualsSignKeyword_2_1_2_1());
		match_UseCase_EqualsSignKeyword_2_1_3_1_q = new TokenAlias(false, true, grammarAccess.getUseCaseAccess().getEqualsSignKeyword_2_1_3_1());
		match_UseCase___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a_CLOSETerminalRuleCall_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getOPENTerminalRuleCall_2_0()), new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getReadsKeyword_2_1_4_0_0()), new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getWritesKeyword_2_1_5_0_0())), new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getCLOSETerminalRuleCall_2_2()));
		match_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__a = new GroupAlias(true, true, new TokenAlias(true, true, grammarAccess.getUseCaseAccess().getReadsKeyword_2_1_4_0_0()), new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getWritesKeyword_2_1_5_0_0()));
		match_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__p = new GroupAlias(true, false, new TokenAlias(true, true, grammarAccess.getUseCaseAccess().getReadsKeyword_2_1_4_0_0()), new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getWritesKeyword_2_1_5_0_0()));
		match_UseCase___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getReadsKeyword_2_1_4_0_0()), new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getWritesKeyword_2_1_5_0_0()));
		match_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__a = new GroupAlias(true, true, new TokenAlias(true, true, grammarAccess.getUseCaseAccess().getWritesKeyword_2_1_5_0_0()), new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getReadsKeyword_2_1_4_0_0()));
		match_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__p = new GroupAlias(true, false, new TokenAlias(true, true, grammarAccess.getUseCaseAccess().getWritesKeyword_2_1_5_0_0()), new TokenAlias(false, false, grammarAccess.getUseCaseAccess().getReadsKeyword_2_1_4_0_0()));
		match_UserStory_AsAKeyword_2_1_0_0_0_or_AsAnKeyword_2_1_0_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getAsAKeyword_2_1_0_0_0()), new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getAsAnKeyword_2_1_0_0_1()));
		match_UserStory_EqualsSignKeyword_2_1_1_1_q = new TokenAlias(false, true, grammarAccess.getUserStoryAccess().getEqualsSignKeyword_2_1_1_1());
		match_UserStory___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a_CLOSETerminalRuleCall_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getOPENTerminalRuleCall_2_0()), new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getReadsKeyword_2_1_2_0_0()), new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getWritesKeyword_2_1_3_0_0())), new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getCLOSETerminalRuleCall_2_2()));
		match_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__a = new GroupAlias(true, true, new TokenAlias(true, true, grammarAccess.getUserStoryAccess().getReadsKeyword_2_1_2_0_0()), new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getWritesKeyword_2_1_3_0_0()));
		match_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__p = new GroupAlias(true, false, new TokenAlias(true, true, grammarAccess.getUserStoryAccess().getReadsKeyword_2_1_2_0_0()), new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getWritesKeyword_2_1_3_0_0()));
		match_UserStory___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a = new AlternativeAlias(true, true, new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getReadsKeyword_2_1_2_0_0()), new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getWritesKeyword_2_1_3_0_0()));
		match_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__a = new GroupAlias(true, true, new TokenAlias(true, true, grammarAccess.getUserStoryAccess().getWritesKeyword_2_1_3_0_0()), new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getReadsKeyword_2_1_2_0_0()));
		match_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__p = new GroupAlias(true, false, new TokenAlias(true, true, grammarAccess.getUserStoryAccess().getWritesKeyword_2_1_3_0_0()), new TokenAlias(false, false, grammarAccess.getUserStoryAccess().getReadsKeyword_2_1_2_0_0()));
		match_ValueObject_CommercialAtKeyword_6_1_q = new TokenAlias(false, true, grammarAccess.getValueObjectAccess().getCommercialAtKeyword_6_1());
		match_ValueObject_CommercialAtKeyword_7_2_15_1_0_q = new TokenAlias(false, true, grammarAccess.getValueObjectAccess().getCommercialAtKeyword_7_2_15_1_0());
		match_ValueObject___LeftCurlyBracketKeyword_7_0_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getLeftCurlyBracketKeyword_7_0()), new GroupAlias(true, false, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getImmutableKeyword_7_2_1_1()), new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getOptimisticLockingKeyword_7_2_0_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getNOTTerminalRuleCall_7_2_2_1_0()), new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getCacheKeyword_7_2_2_1_1()))), new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getRightCurlyBracketKeyword_7_5()));
		match_ValueObject_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p = new GroupAlias(true, false, new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getImmutableKeyword_7_2_1_1()), new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getOptimisticLockingKeyword_7_2_0_1())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getNOTTerminalRuleCall_7_2_2_1_0()), new TokenAlias(false, false, grammarAccess.getValueObjectAccess().getCacheKeyword_7_2_2_1_1())));
	}
	
	@Override
	protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (ruleCall.getRule() == grammarAccess.getCLOSERule())
			return getCLOSEToken(semanticObject, ruleCall, node);
		else if (ruleCall.getRule() == grammarAccess.getDELEGATERule())
			return getDELEGATEToken(semanticObject, ruleCall, node);
		else if (ruleCall.getRule() == grammarAccess.getNOTRule())
			return getNOTToken(semanticObject, ruleCall, node);
		else if (ruleCall.getRule() == grammarAccess.getOPENRule())
			return getOPENToken(semanticObject, ruleCall, node);
		else if (ruleCall.getRule() == grammarAccess.getOPPOSITERule())
			return getOPPOSITEToken(semanticObject, ruleCall, node);
		else if (ruleCall.getRule() == grammarAccess.getREFRule())
			return getREFToken(semanticObject, ruleCall, node);
		return "";
	}
	
	/**
	 * terminal CLOSE: '}';
	 */
	protected String getCLOSEToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "}";
	}
	
	/**
	 * terminal DELEGATE :
	 *   ('=>'|('delegates to'));
	 */
	protected String getDELEGATEToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "=>";
	}
	
	/**
	 * terminal NOT :
	 *   ('!'|'not');
	 */
	protected String getNOTToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "!";
	}
	
	/**
	 * terminal OPEN: '{';
	 */
	protected String getOPENToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "{";
	}
	
	/**
	 * terminal OPPOSITE :
	 *   ('<->'|'opposite');
	 */
	protected String getOPPOSITEToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "<->";
	}
	
	/**
	 * terminal REF :
	 *   ('-'|'reference');
	 */
	protected String getREFToken(EObject semanticObject, RuleCall ruleCall, INode node) {
		if (node != null)
			return getTokenText(node);
		return "-";
	}
	
	@Override
	protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
		if (transition.getAmbiguousSyntaxes().isEmpty()) return;
		List transitionNodes = collectNodes(fromNode, toNode);
		for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
			List syntaxNodes = getNodesFor(transitionNodes, syntax);
			if (match_Aggregate_EqualsSignKeyword_4_1_0_0_1_q.equals(syntax))
				emit_Aggregate_EqualsSignKeyword_4_1_0_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Aggregate_EqualsSignKeyword_4_1_1_0_1_q.equals(syntax))
				emit_Aggregate_EqualsSignKeyword_4_1_1_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Aggregate_EqualsSignKeyword_4_1_2_1_q.equals(syntax))
				emit_Aggregate_EqualsSignKeyword_4_1_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Aggregate_EqualsSignKeyword_4_1_3_1_q.equals(syntax))
				emit_Aggregate_EqualsSignKeyword_4_1_3_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Aggregate_EqualsSignKeyword_4_1_4_1_q.equals(syntax))
				emit_Aggregate_EqualsSignKeyword_4_1_4_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Aggregate_UseCasesKeyword_4_1_1_0_0_0_or_UserRequirementsKeyword_4_1_1_0_0_1.equals(syntax))
				emit_Aggregate_UseCasesKeyword_4_1_1_0_0_0_or_UserRequirementsKeyword_4_1_1_0_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Aggregate___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_3__q.equals(syntax))
				emit_Aggregate___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Attribute_NullableNullableKeyword_4_3_0_0_0.equals(syntax))
				emit_Attribute_NullableNullableKeyword_4_3_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Attribute_SemicolonKeyword_5_q.equals(syntax))
				emit_Attribute_SemicolonKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Attribute___ChangeableKeyword_4_1_1_q___NOTTerminalRuleCall_4_2_1_0_RequiredKeyword_4_2_1_1__q___NOTTerminalRuleCall_4_3_0_1_0_NullableKeyword_4_3_0_1_1__q__p.equals(syntax))
				emit_Attribute___ChangeableKeyword_4_1_1_q___NOTTerminalRuleCall_4_2_1_0_RequiredKeyword_4_2_1_1__q___NOTTerminalRuleCall_4_3_0_1_0_NullableKeyword_4_3_0_1_1__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BasicType_CommercialAtKeyword_3_1_q.equals(syntax))
				emit_BasicType_CommercialAtKeyword_3_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BasicType_ImmutableKeyword_4_2_0_1_a.equals(syntax))
				emit_BasicType_ImmutableKeyword_4_2_0_1_a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BasicType___LeftCurlyBracketKeyword_4_0_ImmutableKeyword_4_2_0_1_a_RightCurlyBracketKeyword_4_4__q.equals(syntax))
				emit_BasicType___LeftCurlyBracketKeyword_4_0_ImmutableKeyword_4_2_0_1_a_RightCurlyBracketKeyword_4_4__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BoundedContext_EqualsSignKeyword_4_1_0_1_q.equals(syntax))
				emit_BoundedContext_EqualsSignKeyword_4_1_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BoundedContext_EqualsSignKeyword_4_1_1_1_q.equals(syntax))
				emit_BoundedContext_EqualsSignKeyword_4_1_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BoundedContext_EqualsSignKeyword_4_1_2_0_1_q.equals(syntax))
				emit_BoundedContext_EqualsSignKeyword_4_1_2_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BoundedContext_EqualsSignKeyword_4_1_3_1_q.equals(syntax))
				emit_BoundedContext_EqualsSignKeyword_4_1_3_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BoundedContext_EqualsSignKeyword_4_1_4_1_q.equals(syntax))
				emit_BoundedContext_EqualsSignKeyword_4_1_4_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_BoundedContext___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_4__q.equals(syntax))
				emit_BoundedContext___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_4__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CommandEvent_CommercialAtKeyword_6_1_q.equals(syntax))
				emit_CommandEvent_CommercialAtKeyword_6_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CommandEvent_CommercialAtKeyword_7_2_13_1_0_q.equals(syntax))
				emit_CommandEvent_CommercialAtKeyword_7_2_13_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CommandEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q.equals(syntax))
				emit_CommandEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CommandEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a.equals(syntax))
				emit_CommandEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Consumer_CommercialAtKeyword_6_1_q.equals(syntax))
				emit_Consumer_CommercialAtKeyword_6_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Consumer_QueueNameKeyword_7_0_0_0_or_TopicNameKeyword_7_0_0_1.equals(syntax))
				emit_Consumer_QueueNameKeyword_7_0_0_0_or_TopicNameKeyword_7_0_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ContextMap_EqualsSignKeyword_4_0_1_q.equals(syntax))
				emit_ContextMap_EqualsSignKeyword_4_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ContextMap_EqualsSignKeyword_4_1_1_q.equals(syntax))
				emit_ContextMap_EqualsSignKeyword_4_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship_EqualsSignKeyword_2_1_0_1_q.equals(syntax))
				emit_CustomerSupplierRelationship_EqualsSignKeyword_2_1_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship_EqualsSignKeyword_2_1_1_0_1_q.equals(syntax))
				emit_CustomerSupplierRelationship_EqualsSignKeyword_2_1_1_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship_EqualsSignKeyword_2_1_2_1_q.equals(syntax))
				emit_CustomerSupplierRelationship_EqualsSignKeyword_2_1_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship___DKeyword_0_0_8_0_CommaKeyword_0_0_8_1__q.equals(syntax))
				emit_CustomerSupplierRelationship___DKeyword_0_0_8_0_CommaKeyword_0_0_8_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship___DKeyword_0_1_2_0_CommaKeyword_0_1_2_1__q.equals(syntax))
				emit_CustomerSupplierRelationship___DKeyword_0_1_2_0_CommaKeyword_0_1_2_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_1_0_RightSquareBracketKeyword_0_2_1_2__q.equals(syntax))
				emit_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_1_0_RightSquareBracketKeyword_0_2_1_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_3_0_RightSquareBracketKeyword_0_2_3_2__q.equals(syntax))
				emit_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_3_0_RightSquareBracketKeyword_0_2_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_1_0_RightSquareBracketKeyword_0_3_1_2__q.equals(syntax))
				emit_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_1_0_RightSquareBracketKeyword_0_3_1_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_3_0_RightSquareBracketKeyword_0_3_3_2__q.equals(syntax))
				emit_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_3_0_RightSquareBracketKeyword_0_3_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q.equals(syntax))
				emit_CustomerSupplierRelationship___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship___UKeyword_0_0_2_0_CommaKeyword_0_0_2_1__q.equals(syntax))
				emit_CustomerSupplierRelationship___UKeyword_0_0_2_0_CommaKeyword_0_0_2_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_CustomerSupplierRelationship___UKeyword_0_1_8_0_CommaKeyword_0_1_8_1__q.equals(syntax))
				emit_CustomerSupplierRelationship___UKeyword_0_1_8_0_CommaKeyword_0_1_8_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DataTransferObject___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_4__q.equals(syntax))
				emit_DataTransferObject___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_4__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Dependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1.equals(syntax))
				emit_Dependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DomainEvent_CommercialAtKeyword_6_1_q.equals(syntax))
				emit_DomainEvent_CommercialAtKeyword_6_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DomainEvent_CommercialAtKeyword_7_2_13_1_0_q.equals(syntax))
				emit_DomainEvent_CommercialAtKeyword_7_2_13_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DomainEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q.equals(syntax))
				emit_DomainEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DomainEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a.equals(syntax))
				emit_DomainEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DomainObjectOperation_AsteriskKeyword_1_1_or_DefKeyword_1_0.equals(syntax))
				emit_DomainObjectOperation_AsteriskKeyword_1_1_or_DefKeyword_1_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DomainObjectOperation_VoidKeyword_4_1_q.equals(syntax))
				emit_DomainObjectOperation_VoidKeyword_4_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DomainObjectOperation___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_3__q.equals(syntax))
				emit_DomainObjectOperation___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Domain_EqualsSignKeyword_2_1_0_1_q.equals(syntax))
				emit_Domain_EqualsSignKeyword_2_1_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Domain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q.equals(syntax))
				emit_Domain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DtoAttribute_GreaterThanSignKeyword_4_q.equals(syntax))
				emit_DtoAttribute_GreaterThanSignKeyword_4_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DtoAttribute_NullableNullableKeyword_6_3_0_0_0.equals(syntax))
				emit_DtoAttribute_NullableNullableKeyword_6_3_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DtoAttribute_SemicolonKeyword_7_q.equals(syntax))
				emit_DtoAttribute_SemicolonKeyword_7_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DtoAttribute___ChangeableKeyword_6_1_1_q___NOTTerminalRuleCall_6_2_1_0_RequiredKeyword_6_2_1_1__q___NOTTerminalRuleCall_6_3_0_1_0_NullableKeyword_6_3_0_1_1__q__p.equals(syntax))
				emit_DtoAttribute___ChangeableKeyword_6_1_1_q___NOTTerminalRuleCall_6_2_1_0_RequiredKeyword_6_2_1_1__q___NOTTerminalRuleCall_6_3_0_1_0_NullableKeyword_6_3_0_1_1__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DtoReference_CommercialAtKeyword_4_0_q.equals(syntax))
				emit_DtoReference_CommercialAtKeyword_4_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DtoReference_GreaterThanSignKeyword_5_q.equals(syntax))
				emit_DtoReference_GreaterThanSignKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DtoReference_NullableNullableKeyword_7_3_0_0_0.equals(syntax))
				emit_DtoReference_NullableNullableKeyword_7_3_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DtoReference_SemicolonKeyword_8_q.equals(syntax))
				emit_DtoReference_SemicolonKeyword_8_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_DtoReference___ChangeableKeyword_7_1_1_q___NOTTerminalRuleCall_7_2_1_0_RequiredKeyword_7_2_1_1__q___NOTTerminalRuleCall_7_3_0_1_0_NullableKeyword_7_3_0_1_1__q__p.equals(syntax))
				emit_DtoReference___ChangeableKeyword_7_1_1_q___NOTTerminalRuleCall_7_2_1_0_RequiredKeyword_7_2_1_1__q___NOTTerminalRuleCall_7_3_0_1_0_NullableKeyword_7_3_0_1_1__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Entity_CommercialAtKeyword_6_1_q.equals(syntax))
				emit_Entity_CommercialAtKeyword_6_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Entity_CommercialAtKeyword_7_2_14_1_0_q.equals(syntax))
				emit_Entity_CommercialAtKeyword_7_2_14_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Entity___LeftCurlyBracketKeyword_7_0_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q.equals(syntax))
				emit_Entity___LeftCurlyBracketKeyword_7_0_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Entity_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p.equals(syntax))
				emit_Entity_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_EnumAttribute_SemicolonKeyword_4_q.equals(syntax))
				emit_EnumAttribute_SemicolonKeyword_4_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Enum_SemicolonKeyword_10_q.equals(syntax))
				emit_Enum_SemicolonKeyword_10_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Feature___AKeyword_1_0_or_AnKeyword_1_1__q.equals(syntax))
				emit_Feature___AKeyword_1_0_or_AnKeyword_1_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Partnership_EqualsSignKeyword_2_1_1_q.equals(syntax))
				emit_Partnership_EqualsSignKeyword_2_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Partnership___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q.equals(syntax))
				emit_Partnership___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Publish_CommercialAtKeyword_1_0_q.equals(syntax))
				emit_Publish_CommercialAtKeyword_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Reference_CommercialAtKeyword_3_0_2_0_q.equals(syntax))
				emit_Reference_CommercialAtKeyword_3_0_2_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Reference_CommercialAtKeyword_3_1_0_q.equals(syntax))
				emit_Reference_CommercialAtKeyword_3_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Reference_NullableNullableKeyword_5_3_0_0_0.equals(syntax))
				emit_Reference_NullableNullableKeyword_5_3_0_0_0(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Reference_SemicolonKeyword_6_q.equals(syntax))
				emit_Reference_SemicolonKeyword_6_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Reference___ChangeableKeyword_5_1_1_q___NOTTerminalRuleCall_5_2_1_0_RequiredKeyword_5_2_1_1__q___NOTTerminalRuleCall_5_3_0_1_0_NullableKeyword_5_3_0_1_1__q___NOTTerminalRuleCall_5_7_1_0_CacheKeyword_5_7_1_1__q___NOTTerminalRuleCall_5_8_1_0_InverseKeyword_5_8_1_1__q__p.equals(syntax))
				emit_Reference___ChangeableKeyword_5_1_1_q___NOTTerminalRuleCall_5_2_1_0_RequiredKeyword_5_2_1_1__q___NOTTerminalRuleCall_5_3_0_1_0_NullableKeyword_5_3_0_1_1__q___NOTTerminalRuleCall_5_7_1_0_CacheKeyword_5_7_1_1__q___NOTTerminalRuleCall_5_8_1_0_InverseKeyword_5_8_1_1__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_RepositoryOperation_VoidKeyword_2_1_q.equals(syntax))
				emit_RepositoryOperation_VoidKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_RepositoryOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q.equals(syntax))
				emit_RepositoryOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Repository___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q.equals(syntax))
				emit_Repository___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ResourceOperationDelegate_CommercialAtKeyword_1_q.equals(syntax))
				emit_ResourceOperationDelegate_CommercialAtKeyword_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ResourceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q.equals(syntax))
				emit_ResourceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Resource___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q.equals(syntax))
				emit_Resource___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_SculptorModule___OPENTerminalRuleCall_3_0_CLOSETerminalRuleCall_3_5__q.equals(syntax))
				emit_SculptorModule___OPENTerminalRuleCall_3_0_CLOSETerminalRuleCall_3_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ServiceDependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1.equals(syntax))
				emit_ServiceDependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ServiceOperationDelegate_CommercialAtKeyword_1_q.equals(syntax))
				emit_ServiceOperationDelegate_CommercialAtKeyword_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ServiceOperation_VoidKeyword_2_1_q.equals(syntax))
				emit_ServiceOperation_VoidKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ServiceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q.equals(syntax))
				emit_ServiceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Service___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_4__q.equals(syntax))
				emit_Service___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_4__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_SharedKernel_EqualsSignKeyword_2_1_1_q.equals(syntax))
				emit_SharedKernel_EqualsSignKeyword_2_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_SharedKernel___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q.equals(syntax))
				emit_SharedKernel___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Subdomain_EqualsSignKeyword_2_1_0_1_q.equals(syntax))
				emit_Subdomain_EqualsSignKeyword_2_1_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Subdomain_EqualsSignKeyword_2_1_1_1_q.equals(syntax))
				emit_Subdomain_EqualsSignKeyword_2_1_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Subdomain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_4__q.equals(syntax))
				emit_Subdomain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_4__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_Trait___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q.equals(syntax))
				emit_Trait___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_0_1_q.equals(syntax))
				emit_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_1_0_1_q.equals(syntax))
				emit_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_1_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_2_1_q.equals(syntax))
				emit_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___DKeyword_1_0_0_3_1_0_1_0_CommaKeyword_1_0_0_3_1_0_1_1__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___DKeyword_1_0_0_3_1_0_1_0_CommaKeyword_1_0_0_3_1_0_1_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___DKeyword_1_0_1_1_1_0_1_0_CommaKeyword_1_0_1_1_1_0_1_1__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___DKeyword_1_0_1_1_1_0_1_0_CommaKeyword_1_0_1_1_1_0_1_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_1_0_0_UKeyword_1_0_0_1_0_1_RightSquareBracketKeyword_1_0_0_1_0_2__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_1_0_0_UKeyword_1_0_0_1_0_1_RightSquareBracketKeyword_1_0_0_1_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_3_0_0_DKeyword_1_0_0_3_0_1_RightSquareBracketKeyword_1_0_0_3_0_2__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_3_0_0_DKeyword_1_0_0_3_0_1_RightSquareBracketKeyword_1_0_0_3_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_1_0_0_DKeyword_1_0_1_1_0_1_RightSquareBracketKeyword_1_0_1_1_0_2__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_1_0_0_DKeyword_1_0_1_1_0_1_RightSquareBracketKeyword_1_0_1_1_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_3_0_0_UKeyword_1_0_1_3_0_1_RightSquareBracketKeyword_1_0_1_3_0_2__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_3_0_0_UKeyword_1_0_1_3_0_1_RightSquareBracketKeyword_1_0_1_3_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_1_0_RightSquareBracketKeyword_1_0_2_1_2__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_1_0_RightSquareBracketKeyword_1_0_2_1_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_3_0_RightSquareBracketKeyword_1_0_2_3_2__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_3_0_RightSquareBracketKeyword_1_0_2_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_1_0_RightSquareBracketKeyword_1_0_3_1_2__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_1_0_RightSquareBracketKeyword_1_0_3_1_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_3_0_RightSquareBracketKeyword_1_0_3_3_2__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_3_0_RightSquareBracketKeyword_1_0_3_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___OPENTerminalRuleCall_1_2_0_CLOSETerminalRuleCall_1_2_2__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___OPENTerminalRuleCall_1_2_0_CLOSETerminalRuleCall_1_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___UKeyword_1_0_0_1_1_0_1_0_CommaKeyword_1_0_0_1_1_0_1_1__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___UKeyword_1_0_0_1_1_0_1_0_CommaKeyword_1_0_0_1_1_0_1_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UpstreamDownstreamRelationship___UKeyword_1_0_1_3_1_0_1_0_CommaKeyword_1_0_1_3_1_0_1_1__q.equals(syntax))
				emit_UpstreamDownstreamRelationship___UKeyword_1_0_1_3_1_0_1_0_CommaKeyword_1_0_1_3_1_0_1_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase_EqualsSignKeyword_2_1_0_1_q.equals(syntax))
				emit_UseCase_EqualsSignKeyword_2_1_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase_EqualsSignKeyword_2_1_1_1_q.equals(syntax))
				emit_UseCase_EqualsSignKeyword_2_1_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase_EqualsSignKeyword_2_1_2_1_q.equals(syntax))
				emit_UseCase_EqualsSignKeyword_2_1_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase_EqualsSignKeyword_2_1_3_1_q.equals(syntax))
				emit_UseCase_EqualsSignKeyword_2_1_3_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a_CLOSETerminalRuleCall_2_2__q.equals(syntax))
				emit_UseCase___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a_CLOSETerminalRuleCall_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__a.equals(syntax))
				emit_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__p.equals(syntax))
				emit_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a.equals(syntax))
				emit_UseCase___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__a.equals(syntax))
				emit_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__p.equals(syntax))
				emit_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UserStory_AsAKeyword_2_1_0_0_0_or_AsAnKeyword_2_1_0_0_1.equals(syntax))
				emit_UserStory_AsAKeyword_2_1_0_0_0_or_AsAnKeyword_2_1_0_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UserStory_EqualsSignKeyword_2_1_1_1_q.equals(syntax))
				emit_UserStory_EqualsSignKeyword_2_1_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UserStory___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a_CLOSETerminalRuleCall_2_2__q.equals(syntax))
				emit_UserStory___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a_CLOSETerminalRuleCall_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__a.equals(syntax))
				emit_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__p.equals(syntax))
				emit_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UserStory___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a.equals(syntax))
				emit_UserStory___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__a.equals(syntax))
				emit_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__p.equals(syntax))
				emit_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ValueObject_CommercialAtKeyword_6_1_q.equals(syntax))
				emit_ValueObject_CommercialAtKeyword_6_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ValueObject_CommercialAtKeyword_7_2_15_1_0_q.equals(syntax))
				emit_ValueObject_CommercialAtKeyword_7_2_15_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ValueObject___LeftCurlyBracketKeyword_7_0_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q.equals(syntax))
				emit_ValueObject___LeftCurlyBracketKeyword_7_0_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
			else if (match_ValueObject_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p.equals(syntax))
				emit_ValueObject_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
			else acceptNodes(getLastNavigableState(), syntaxNodes);
		}
	}

	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     knowledgeLevel=KnowledgeLevel 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     likelihoodForChange=LikelihoodForChange 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     name=ID OPEN 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     owner=[BoundedContext|ID] 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     responsibilities+=STRING 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     userRequirements+=[UserRequirement|ID] 'responsibilities' (ambiguity) responsibilities+=STRING
	 */
	protected void emit_Aggregate_EqualsSignKeyword_4_1_0_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     knowledgeLevel=KnowledgeLevel ('useCases' | 'userRequirements') (ambiguity) userRequirements+=[UserRequirement|ID]
	 *     likelihoodForChange=LikelihoodForChange ('useCases' | 'userRequirements') (ambiguity) userRequirements+=[UserRequirement|ID]
	 *     name=ID OPEN ('useCases' | 'userRequirements') (ambiguity) userRequirements+=[UserRequirement|ID]
	 *     owner=[BoundedContext|ID] ('useCases' | 'userRequirements') (ambiguity) userRequirements+=[UserRequirement|ID]
	 *     responsibilities+=STRING ('useCases' | 'userRequirements') (ambiguity) userRequirements+=[UserRequirement|ID]
	 *     userRequirements+=[UserRequirement|ID] ('useCases' | 'userRequirements') (ambiguity) userRequirements+=[UserRequirement|ID]
	 */
	protected void emit_Aggregate_EqualsSignKeyword_4_1_1_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     knowledgeLevel=KnowledgeLevel 'owner' (ambiguity) owner=[BoundedContext|ID]
	 *     likelihoodForChange=LikelihoodForChange 'owner' (ambiguity) owner=[BoundedContext|ID]
	 *     name=ID OPEN 'owner' (ambiguity) owner=[BoundedContext|ID]
	 *     owner=[BoundedContext|ID] 'owner' (ambiguity) owner=[BoundedContext|ID]
	 *     responsibilities+=STRING 'owner' (ambiguity) owner=[BoundedContext|ID]
	 *     userRequirements+=[UserRequirement|ID] 'owner' (ambiguity) owner=[BoundedContext|ID]
	 */
	protected void emit_Aggregate_EqualsSignKeyword_4_1_2_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     knowledgeLevel=KnowledgeLevel 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     likelihoodForChange=LikelihoodForChange 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     name=ID OPEN 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     owner=[BoundedContext|ID] 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     responsibilities+=STRING 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     userRequirements+=[UserRequirement|ID] 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 */
	protected void emit_Aggregate_EqualsSignKeyword_4_1_3_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     knowledgeLevel=KnowledgeLevel 'likelihoodForChange' (ambiguity) likelihoodForChange=LikelihoodForChange
	 *     likelihoodForChange=LikelihoodForChange 'likelihoodForChange' (ambiguity) likelihoodForChange=LikelihoodForChange
	 *     name=ID OPEN 'likelihoodForChange' (ambiguity) likelihoodForChange=LikelihoodForChange
	 *     owner=[BoundedContext|ID] 'likelihoodForChange' (ambiguity) likelihoodForChange=LikelihoodForChange
	 *     responsibilities+=STRING 'likelihoodForChange' (ambiguity) likelihoodForChange=LikelihoodForChange
	 *     userRequirements+=[UserRequirement|ID] 'likelihoodForChange' (ambiguity) likelihoodForChange=LikelihoodForChange
	 */
	protected void emit_Aggregate_EqualsSignKeyword_4_1_4_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'useCases' | 'userRequirements'
	 *
	 * This ambiguous syntax occurs at:
	 *     knowledgeLevel=KnowledgeLevel (ambiguity) '='? userRequirements+=[UserRequirement|ID]
	 *     likelihoodForChange=LikelihoodForChange (ambiguity) '='? userRequirements+=[UserRequirement|ID]
	 *     name=ID OPEN (ambiguity) '='? userRequirements+=[UserRequirement|ID]
	 *     owner=[BoundedContext|ID] (ambiguity) '='? userRequirements+=[UserRequirement|ID]
	 *     responsibilities+=STRING (ambiguity) '='? userRequirements+=[UserRequirement|ID]
	 *     userRequirements+=[UserRequirement|ID] (ambiguity) '='? userRequirements+=[UserRequirement|ID]
	 */
	protected void emit_Aggregate_UseCasesKeyword_4_1_1_0_0_0_or_UserRequirementsKeyword_4_1_1_0_0_1(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_Aggregate___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_3__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     nullable?='nullable'
	 *
	 * This ambiguous syntax occurs at:
	 *     (ambiguity)
	 */
	protected void emit_Attribute_NullableNullableKeyword_4_3_0_0_0(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ';'?
	 *
	 * This ambiguous syntax occurs at:
	 *     assertFalse?='assertFalse' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     assertFalseMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     assertTrue?='assertTrue' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     assertTrueMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     creditCardNumber?='creditCardNumber' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     creditCardNumberMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     databaseColumn=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     databaseType=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     decimalMax=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     decimalMin=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     digits=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     email?='email' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     emailMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     future?='future' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     futureMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     hint=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     index?='index' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     key?='key' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     length=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     max=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     min=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     name=ID ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notBlank?='notBlank' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notBlankMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notChangeable?=NOT 'changeable' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notEmpty?='notEmpty' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notEmptyMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     nullable?='nullable' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     nullableMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     past?='past' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     pastMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     pattern=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     range=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     required?='required' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     scriptAssert=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     size=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     transient?='transient' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     url=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     validate=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 */
	protected void emit_Attribute_SemicolonKeyword_5_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('changeable'? (NOT 'required')? (NOT 'nullable')?)+
	 *
	 * This ambiguous syntax occurs at:
	 *     assertFalse?='assertFalse' (ambiguity)
	 *     assertFalse?='assertFalse' (ambiguity) ';'? (rule end)
	 *     assertFalse?='assertFalse' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'digits' '=' digits=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'hint' '=' hint=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'length' '=' length=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'max' '=' max=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'min' '=' min=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'pattern' '=' pattern=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'range' '=' range=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'size' '=' size=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'url' '=' url=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'validate' '=' validate=STRING
	 *     assertFalse?='assertFalse' (ambiguity) assertFalse?='assertFalse'
	 *     assertFalse?='assertFalse' (ambiguity) assertTrue?='assertTrue'
	 *     assertFalse?='assertFalse' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     assertFalse?='assertFalse' (ambiguity) email?='email'
	 *     assertFalse?='assertFalse' (ambiguity) future?='future'
	 *     assertFalse?='assertFalse' (ambiguity) index?='index'
	 *     assertFalse?='assertFalse' (ambiguity) key?='key'
	 *     assertFalse?='assertFalse' (ambiguity) notBlank?='notBlank'
	 *     assertFalse?='assertFalse' (ambiguity) notChangeable?=NOT
	 *     assertFalse?='assertFalse' (ambiguity) notEmpty?='notEmpty'
	 *     assertFalse?='assertFalse' (ambiguity) nullable?='nullable'
	 *     assertFalse?='assertFalse' (ambiguity) past?='past'
	 *     assertFalse?='assertFalse' (ambiguity) required?='required'
	 *     assertFalse?='assertFalse' (ambiguity) transient?='transient'
	 *     assertFalseMessage=STRING (ambiguity)
	 *     assertFalseMessage=STRING (ambiguity) ';'? (rule end)
	 *     assertFalseMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     assertFalseMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     assertFalseMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     assertFalseMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     assertFalseMessage=STRING (ambiguity) email?='email'
	 *     assertFalseMessage=STRING (ambiguity) future?='future'
	 *     assertFalseMessage=STRING (ambiguity) index?='index'
	 *     assertFalseMessage=STRING (ambiguity) key?='key'
	 *     assertFalseMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     assertFalseMessage=STRING (ambiguity) notChangeable?=NOT
	 *     assertFalseMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     assertFalseMessage=STRING (ambiguity) nullable?='nullable'
	 *     assertFalseMessage=STRING (ambiguity) past?='past'
	 *     assertFalseMessage=STRING (ambiguity) required?='required'
	 *     assertFalseMessage=STRING (ambiguity) transient?='transient'
	 *     assertTrue?='assertTrue' (ambiguity)
	 *     assertTrue?='assertTrue' (ambiguity) ';'? (rule end)
	 *     assertTrue?='assertTrue' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'digits' '=' digits=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'hint' '=' hint=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'length' '=' length=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'max' '=' max=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'min' '=' min=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'pattern' '=' pattern=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'range' '=' range=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'size' '=' size=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'url' '=' url=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'validate' '=' validate=STRING
	 *     assertTrue?='assertTrue' (ambiguity) assertFalse?='assertFalse'
	 *     assertTrue?='assertTrue' (ambiguity) assertTrue?='assertTrue'
	 *     assertTrue?='assertTrue' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     assertTrue?='assertTrue' (ambiguity) email?='email'
	 *     assertTrue?='assertTrue' (ambiguity) future?='future'
	 *     assertTrue?='assertTrue' (ambiguity) index?='index'
	 *     assertTrue?='assertTrue' (ambiguity) key?='key'
	 *     assertTrue?='assertTrue' (ambiguity) notBlank?='notBlank'
	 *     assertTrue?='assertTrue' (ambiguity) notChangeable?=NOT
	 *     assertTrue?='assertTrue' (ambiguity) notEmpty?='notEmpty'
	 *     assertTrue?='assertTrue' (ambiguity) nullable?='nullable'
	 *     assertTrue?='assertTrue' (ambiguity) past?='past'
	 *     assertTrue?='assertTrue' (ambiguity) required?='required'
	 *     assertTrue?='assertTrue' (ambiguity) transient?='transient'
	 *     assertTrueMessage=STRING (ambiguity)
	 *     assertTrueMessage=STRING (ambiguity) ';'? (rule end)
	 *     assertTrueMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     assertTrueMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     assertTrueMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     assertTrueMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     assertTrueMessage=STRING (ambiguity) email?='email'
	 *     assertTrueMessage=STRING (ambiguity) future?='future'
	 *     assertTrueMessage=STRING (ambiguity) index?='index'
	 *     assertTrueMessage=STRING (ambiguity) key?='key'
	 *     assertTrueMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     assertTrueMessage=STRING (ambiguity) notChangeable?=NOT
	 *     assertTrueMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     assertTrueMessage=STRING (ambiguity) nullable?='nullable'
	 *     assertTrueMessage=STRING (ambiguity) past?='past'
	 *     assertTrueMessage=STRING (ambiguity) required?='required'
	 *     assertTrueMessage=STRING (ambiguity) transient?='transient'
	 *     creditCardNumber?='creditCardNumber' (ambiguity)
	 *     creditCardNumber?='creditCardNumber' (ambiguity) ';'? (rule end)
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'digits' '=' digits=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'hint' '=' hint=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'length' '=' length=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'max' '=' max=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'min' '=' min=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'pattern' '=' pattern=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'range' '=' range=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'size' '=' size=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'url' '=' url=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'validate' '=' validate=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) assertFalse?='assertFalse'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) assertTrue?='assertTrue'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) email?='email'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) future?='future'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) index?='index'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) key?='key'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) notBlank?='notBlank'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) notChangeable?=NOT
	 *     creditCardNumber?='creditCardNumber' (ambiguity) notEmpty?='notEmpty'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) nullable?='nullable'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) past?='past'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) required?='required'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) transient?='transient'
	 *     creditCardNumberMessage=STRING (ambiguity)
	 *     creditCardNumberMessage=STRING (ambiguity) ';'? (rule end)
	 *     creditCardNumberMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     creditCardNumberMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     creditCardNumberMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     creditCardNumberMessage=STRING (ambiguity) email?='email'
	 *     creditCardNumberMessage=STRING (ambiguity) future?='future'
	 *     creditCardNumberMessage=STRING (ambiguity) index?='index'
	 *     creditCardNumberMessage=STRING (ambiguity) key?='key'
	 *     creditCardNumberMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     creditCardNumberMessage=STRING (ambiguity) notChangeable?=NOT
	 *     creditCardNumberMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     creditCardNumberMessage=STRING (ambiguity) nullable?='nullable'
	 *     creditCardNumberMessage=STRING (ambiguity) past?='past'
	 *     creditCardNumberMessage=STRING (ambiguity) required?='required'
	 *     creditCardNumberMessage=STRING (ambiguity) transient?='transient'
	 *     databaseColumn=STRING (ambiguity)
	 *     databaseColumn=STRING (ambiguity) ';'? (rule end)
	 *     databaseColumn=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     databaseColumn=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     databaseColumn=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     databaseColumn=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     databaseColumn=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     databaseColumn=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     databaseColumn=STRING (ambiguity) 'length' '=' length=STRING
	 *     databaseColumn=STRING (ambiguity) 'max' '=' max=STRING
	 *     databaseColumn=STRING (ambiguity) 'min' '=' min=STRING
	 *     databaseColumn=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     databaseColumn=STRING (ambiguity) 'range' '=' range=STRING
	 *     databaseColumn=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     databaseColumn=STRING (ambiguity) 'size' '=' size=STRING
	 *     databaseColumn=STRING (ambiguity) 'url' '=' url=STRING
	 *     databaseColumn=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     databaseColumn=STRING (ambiguity) assertFalse?='assertFalse'
	 *     databaseColumn=STRING (ambiguity) assertTrue?='assertTrue'
	 *     databaseColumn=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     databaseColumn=STRING (ambiguity) email?='email'
	 *     databaseColumn=STRING (ambiguity) future?='future'
	 *     databaseColumn=STRING (ambiguity) index?='index'
	 *     databaseColumn=STRING (ambiguity) key?='key'
	 *     databaseColumn=STRING (ambiguity) notBlank?='notBlank'
	 *     databaseColumn=STRING (ambiguity) notChangeable?=NOT
	 *     databaseColumn=STRING (ambiguity) notEmpty?='notEmpty'
	 *     databaseColumn=STRING (ambiguity) nullable?='nullable'
	 *     databaseColumn=STRING (ambiguity) past?='past'
	 *     databaseColumn=STRING (ambiguity) required?='required'
	 *     databaseColumn=STRING (ambiguity) transient?='transient'
	 *     databaseType=STRING (ambiguity)
	 *     databaseType=STRING (ambiguity) ';'? (rule end)
	 *     databaseType=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     databaseType=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     databaseType=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     databaseType=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     databaseType=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     databaseType=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     databaseType=STRING (ambiguity) 'length' '=' length=STRING
	 *     databaseType=STRING (ambiguity) 'max' '=' max=STRING
	 *     databaseType=STRING (ambiguity) 'min' '=' min=STRING
	 *     databaseType=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     databaseType=STRING (ambiguity) 'range' '=' range=STRING
	 *     databaseType=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     databaseType=STRING (ambiguity) 'size' '=' size=STRING
	 *     databaseType=STRING (ambiguity) 'url' '=' url=STRING
	 *     databaseType=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     databaseType=STRING (ambiguity) assertFalse?='assertFalse'
	 *     databaseType=STRING (ambiguity) assertTrue?='assertTrue'
	 *     databaseType=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     databaseType=STRING (ambiguity) email?='email'
	 *     databaseType=STRING (ambiguity) future?='future'
	 *     databaseType=STRING (ambiguity) index?='index'
	 *     databaseType=STRING (ambiguity) key?='key'
	 *     databaseType=STRING (ambiguity) notBlank?='notBlank'
	 *     databaseType=STRING (ambiguity) notChangeable?=NOT
	 *     databaseType=STRING (ambiguity) notEmpty?='notEmpty'
	 *     databaseType=STRING (ambiguity) nullable?='nullable'
	 *     databaseType=STRING (ambiguity) past?='past'
	 *     databaseType=STRING (ambiguity) required?='required'
	 *     databaseType=STRING (ambiguity) transient?='transient'
	 *     decimalMax=STRING (ambiguity)
	 *     decimalMax=STRING (ambiguity) ';'? (rule end)
	 *     decimalMax=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     decimalMax=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     decimalMax=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     decimalMax=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     decimalMax=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     decimalMax=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     decimalMax=STRING (ambiguity) 'length' '=' length=STRING
	 *     decimalMax=STRING (ambiguity) 'max' '=' max=STRING
	 *     decimalMax=STRING (ambiguity) 'min' '=' min=STRING
	 *     decimalMax=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     decimalMax=STRING (ambiguity) 'range' '=' range=STRING
	 *     decimalMax=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     decimalMax=STRING (ambiguity) 'size' '=' size=STRING
	 *     decimalMax=STRING (ambiguity) 'url' '=' url=STRING
	 *     decimalMax=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     decimalMax=STRING (ambiguity) assertFalse?='assertFalse'
	 *     decimalMax=STRING (ambiguity) assertTrue?='assertTrue'
	 *     decimalMax=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     decimalMax=STRING (ambiguity) email?='email'
	 *     decimalMax=STRING (ambiguity) future?='future'
	 *     decimalMax=STRING (ambiguity) index?='index'
	 *     decimalMax=STRING (ambiguity) key?='key'
	 *     decimalMax=STRING (ambiguity) notBlank?='notBlank'
	 *     decimalMax=STRING (ambiguity) notChangeable?=NOT
	 *     decimalMax=STRING (ambiguity) notEmpty?='notEmpty'
	 *     decimalMax=STRING (ambiguity) nullable?='nullable'
	 *     decimalMax=STRING (ambiguity) past?='past'
	 *     decimalMax=STRING (ambiguity) required?='required'
	 *     decimalMax=STRING (ambiguity) transient?='transient'
	 *     decimalMin=STRING (ambiguity)
	 *     decimalMin=STRING (ambiguity) ';'? (rule end)
	 *     decimalMin=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     decimalMin=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     decimalMin=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     decimalMin=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     decimalMin=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     decimalMin=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     decimalMin=STRING (ambiguity) 'length' '=' length=STRING
	 *     decimalMin=STRING (ambiguity) 'max' '=' max=STRING
	 *     decimalMin=STRING (ambiguity) 'min' '=' min=STRING
	 *     decimalMin=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     decimalMin=STRING (ambiguity) 'range' '=' range=STRING
	 *     decimalMin=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     decimalMin=STRING (ambiguity) 'size' '=' size=STRING
	 *     decimalMin=STRING (ambiguity) 'url' '=' url=STRING
	 *     decimalMin=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     decimalMin=STRING (ambiguity) assertFalse?='assertFalse'
	 *     decimalMin=STRING (ambiguity) assertTrue?='assertTrue'
	 *     decimalMin=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     decimalMin=STRING (ambiguity) email?='email'
	 *     decimalMin=STRING (ambiguity) future?='future'
	 *     decimalMin=STRING (ambiguity) index?='index'
	 *     decimalMin=STRING (ambiguity) key?='key'
	 *     decimalMin=STRING (ambiguity) notBlank?='notBlank'
	 *     decimalMin=STRING (ambiguity) notChangeable?=NOT
	 *     decimalMin=STRING (ambiguity) notEmpty?='notEmpty'
	 *     decimalMin=STRING (ambiguity) nullable?='nullable'
	 *     decimalMin=STRING (ambiguity) past?='past'
	 *     decimalMin=STRING (ambiguity) required?='required'
	 *     decimalMin=STRING (ambiguity) transient?='transient'
	 *     digits=STRING (ambiguity)
	 *     digits=STRING (ambiguity) ';'? (rule end)
	 *     digits=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     digits=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     digits=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     digits=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     digits=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     digits=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     digits=STRING (ambiguity) 'length' '=' length=STRING
	 *     digits=STRING (ambiguity) 'max' '=' max=STRING
	 *     digits=STRING (ambiguity) 'min' '=' min=STRING
	 *     digits=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     digits=STRING (ambiguity) 'range' '=' range=STRING
	 *     digits=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     digits=STRING (ambiguity) 'size' '=' size=STRING
	 *     digits=STRING (ambiguity) 'url' '=' url=STRING
	 *     digits=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     digits=STRING (ambiguity) assertFalse?='assertFalse'
	 *     digits=STRING (ambiguity) assertTrue?='assertTrue'
	 *     digits=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     digits=STRING (ambiguity) email?='email'
	 *     digits=STRING (ambiguity) future?='future'
	 *     digits=STRING (ambiguity) index?='index'
	 *     digits=STRING (ambiguity) key?='key'
	 *     digits=STRING (ambiguity) notBlank?='notBlank'
	 *     digits=STRING (ambiguity) notChangeable?=NOT
	 *     digits=STRING (ambiguity) notEmpty?='notEmpty'
	 *     digits=STRING (ambiguity) nullable?='nullable'
	 *     digits=STRING (ambiguity) past?='past'
	 *     digits=STRING (ambiguity) required?='required'
	 *     digits=STRING (ambiguity) transient?='transient'
	 *     email?='email' (ambiguity)
	 *     email?='email' (ambiguity) ';'? (rule end)
	 *     email?='email' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     email?='email' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     email?='email' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     email?='email' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     email?='email' (ambiguity) 'digits' '=' digits=STRING
	 *     email?='email' (ambiguity) 'hint' '=' hint=STRING
	 *     email?='email' (ambiguity) 'length' '=' length=STRING
	 *     email?='email' (ambiguity) 'max' '=' max=STRING
	 *     email?='email' (ambiguity) 'min' '=' min=STRING
	 *     email?='email' (ambiguity) 'pattern' '=' pattern=STRING
	 *     email?='email' (ambiguity) 'range' '=' range=STRING
	 *     email?='email' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     email?='email' (ambiguity) 'size' '=' size=STRING
	 *     email?='email' (ambiguity) 'url' '=' url=STRING
	 *     email?='email' (ambiguity) 'validate' '=' validate=STRING
	 *     email?='email' (ambiguity) assertFalse?='assertFalse'
	 *     email?='email' (ambiguity) assertTrue?='assertTrue'
	 *     email?='email' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     email?='email' (ambiguity) email?='email'
	 *     email?='email' (ambiguity) future?='future'
	 *     email?='email' (ambiguity) index?='index'
	 *     email?='email' (ambiguity) key?='key'
	 *     email?='email' (ambiguity) notBlank?='notBlank'
	 *     email?='email' (ambiguity) notChangeable?=NOT
	 *     email?='email' (ambiguity) notEmpty?='notEmpty'
	 *     email?='email' (ambiguity) nullable?='nullable'
	 *     email?='email' (ambiguity) past?='past'
	 *     email?='email' (ambiguity) required?='required'
	 *     email?='email' (ambiguity) transient?='transient'
	 *     emailMessage=STRING (ambiguity)
	 *     emailMessage=STRING (ambiguity) ';'? (rule end)
	 *     emailMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     emailMessage=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     emailMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     emailMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     emailMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     emailMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     emailMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     emailMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     emailMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     emailMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     emailMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     emailMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     emailMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     emailMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     emailMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     emailMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     emailMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     emailMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     emailMessage=STRING (ambiguity) email?='email'
	 *     emailMessage=STRING (ambiguity) future?='future'
	 *     emailMessage=STRING (ambiguity) index?='index'
	 *     emailMessage=STRING (ambiguity) key?='key'
	 *     emailMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     emailMessage=STRING (ambiguity) notChangeable?=NOT
	 *     emailMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     emailMessage=STRING (ambiguity) nullable?='nullable'
	 *     emailMessage=STRING (ambiguity) past?='past'
	 *     emailMessage=STRING (ambiguity) required?='required'
	 *     emailMessage=STRING (ambiguity) transient?='transient'
	 *     future?='future' (ambiguity)
	 *     future?='future' (ambiguity) ';'? (rule end)
	 *     future?='future' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     future?='future' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     future?='future' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     future?='future' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     future?='future' (ambiguity) 'digits' '=' digits=STRING
	 *     future?='future' (ambiguity) 'hint' '=' hint=STRING
	 *     future?='future' (ambiguity) 'length' '=' length=STRING
	 *     future?='future' (ambiguity) 'max' '=' max=STRING
	 *     future?='future' (ambiguity) 'min' '=' min=STRING
	 *     future?='future' (ambiguity) 'pattern' '=' pattern=STRING
	 *     future?='future' (ambiguity) 'range' '=' range=STRING
	 *     future?='future' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     future?='future' (ambiguity) 'size' '=' size=STRING
	 *     future?='future' (ambiguity) 'url' '=' url=STRING
	 *     future?='future' (ambiguity) 'validate' '=' validate=STRING
	 *     future?='future' (ambiguity) assertFalse?='assertFalse'
	 *     future?='future' (ambiguity) assertTrue?='assertTrue'
	 *     future?='future' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     future?='future' (ambiguity) email?='email'
	 *     future?='future' (ambiguity) future?='future'
	 *     future?='future' (ambiguity) index?='index'
	 *     future?='future' (ambiguity) key?='key'
	 *     future?='future' (ambiguity) notBlank?='notBlank'
	 *     future?='future' (ambiguity) notChangeable?=NOT
	 *     future?='future' (ambiguity) notEmpty?='notEmpty'
	 *     future?='future' (ambiguity) nullable?='nullable'
	 *     future?='future' (ambiguity) past?='past'
	 *     future?='future' (ambiguity) required?='required'
	 *     future?='future' (ambiguity) transient?='transient'
	 *     futureMessage=STRING (ambiguity)
	 *     futureMessage=STRING (ambiguity) ';'? (rule end)
	 *     futureMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     futureMessage=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     futureMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     futureMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     futureMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     futureMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     futureMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     futureMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     futureMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     futureMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     futureMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     futureMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     futureMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     futureMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     futureMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     futureMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     futureMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     futureMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     futureMessage=STRING (ambiguity) email?='email'
	 *     futureMessage=STRING (ambiguity) future?='future'
	 *     futureMessage=STRING (ambiguity) index?='index'
	 *     futureMessage=STRING (ambiguity) key?='key'
	 *     futureMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     futureMessage=STRING (ambiguity) notChangeable?=NOT
	 *     futureMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     futureMessage=STRING (ambiguity) nullable?='nullable'
	 *     futureMessage=STRING (ambiguity) past?='past'
	 *     futureMessage=STRING (ambiguity) required?='required'
	 *     futureMessage=STRING (ambiguity) transient?='transient'
	 *     hint=STRING (ambiguity)
	 *     hint=STRING (ambiguity) ';'? (rule end)
	 *     hint=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     hint=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     hint=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     hint=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     hint=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     hint=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     hint=STRING (ambiguity) 'length' '=' length=STRING
	 *     hint=STRING (ambiguity) 'max' '=' max=STRING
	 *     hint=STRING (ambiguity) 'min' '=' min=STRING
	 *     hint=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     hint=STRING (ambiguity) 'range' '=' range=STRING
	 *     hint=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     hint=STRING (ambiguity) 'size' '=' size=STRING
	 *     hint=STRING (ambiguity) 'url' '=' url=STRING
	 *     hint=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     hint=STRING (ambiguity) assertFalse?='assertFalse'
	 *     hint=STRING (ambiguity) assertTrue?='assertTrue'
	 *     hint=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     hint=STRING (ambiguity) email?='email'
	 *     hint=STRING (ambiguity) future?='future'
	 *     hint=STRING (ambiguity) index?='index'
	 *     hint=STRING (ambiguity) key?='key'
	 *     hint=STRING (ambiguity) notBlank?='notBlank'
	 *     hint=STRING (ambiguity) notChangeable?=NOT
	 *     hint=STRING (ambiguity) notEmpty?='notEmpty'
	 *     hint=STRING (ambiguity) nullable?='nullable'
	 *     hint=STRING (ambiguity) past?='past'
	 *     hint=STRING (ambiguity) required?='required'
	 *     hint=STRING (ambiguity) transient?='transient'
	 *     index?='index' (ambiguity)
	 *     index?='index' (ambiguity) ';'? (rule end)
	 *     index?='index' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     index?='index' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     index?='index' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     index?='index' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     index?='index' (ambiguity) 'digits' '=' digits=STRING
	 *     index?='index' (ambiguity) 'hint' '=' hint=STRING
	 *     index?='index' (ambiguity) 'length' '=' length=STRING
	 *     index?='index' (ambiguity) 'max' '=' max=STRING
	 *     index?='index' (ambiguity) 'min' '=' min=STRING
	 *     index?='index' (ambiguity) 'pattern' '=' pattern=STRING
	 *     index?='index' (ambiguity) 'range' '=' range=STRING
	 *     index?='index' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     index?='index' (ambiguity) 'size' '=' size=STRING
	 *     index?='index' (ambiguity) 'url' '=' url=STRING
	 *     index?='index' (ambiguity) 'validate' '=' validate=STRING
	 *     index?='index' (ambiguity) assertFalse?='assertFalse'
	 *     index?='index' (ambiguity) assertTrue?='assertTrue'
	 *     index?='index' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     index?='index' (ambiguity) email?='email'
	 *     index?='index' (ambiguity) future?='future'
	 *     index?='index' (ambiguity) index?='index'
	 *     index?='index' (ambiguity) key?='key'
	 *     index?='index' (ambiguity) notBlank?='notBlank'
	 *     index?='index' (ambiguity) notChangeable?=NOT
	 *     index?='index' (ambiguity) notEmpty?='notEmpty'
	 *     index?='index' (ambiguity) nullable?='nullable'
	 *     index?='index' (ambiguity) past?='past'
	 *     index?='index' (ambiguity) required?='required'
	 *     index?='index' (ambiguity) transient?='transient'
	 *     key?='key' (ambiguity)
	 *     key?='key' (ambiguity) ';'? (rule end)
	 *     key?='key' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     key?='key' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     key?='key' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     key?='key' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     key?='key' (ambiguity) 'digits' '=' digits=STRING
	 *     key?='key' (ambiguity) 'hint' '=' hint=STRING
	 *     key?='key' (ambiguity) 'length' '=' length=STRING
	 *     key?='key' (ambiguity) 'max' '=' max=STRING
	 *     key?='key' (ambiguity) 'min' '=' min=STRING
	 *     key?='key' (ambiguity) 'pattern' '=' pattern=STRING
	 *     key?='key' (ambiguity) 'range' '=' range=STRING
	 *     key?='key' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     key?='key' (ambiguity) 'size' '=' size=STRING
	 *     key?='key' (ambiguity) 'url' '=' url=STRING
	 *     key?='key' (ambiguity) 'validate' '=' validate=STRING
	 *     key?='key' (ambiguity) assertFalse?='assertFalse'
	 *     key?='key' (ambiguity) assertTrue?='assertTrue'
	 *     key?='key' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     key?='key' (ambiguity) email?='email'
	 *     key?='key' (ambiguity) future?='future'
	 *     key?='key' (ambiguity) index?='index'
	 *     key?='key' (ambiguity) key?='key'
	 *     key?='key' (ambiguity) notBlank?='notBlank'
	 *     key?='key' (ambiguity) notChangeable?=NOT
	 *     key?='key' (ambiguity) notEmpty?='notEmpty'
	 *     key?='key' (ambiguity) nullable?='nullable'
	 *     key?='key' (ambiguity) past?='past'
	 *     key?='key' (ambiguity) required?='required'
	 *     key?='key' (ambiguity) transient?='transient'
	 *     length=STRING (ambiguity)
	 *     length=STRING (ambiguity) ';'? (rule end)
	 *     length=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     length=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     length=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     length=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     length=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     length=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     length=STRING (ambiguity) 'length' '=' length=STRING
	 *     length=STRING (ambiguity) 'max' '=' max=STRING
	 *     length=STRING (ambiguity) 'min' '=' min=STRING
	 *     length=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     length=STRING (ambiguity) 'range' '=' range=STRING
	 *     length=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     length=STRING (ambiguity) 'size' '=' size=STRING
	 *     length=STRING (ambiguity) 'url' '=' url=STRING
	 *     length=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     length=STRING (ambiguity) assertFalse?='assertFalse'
	 *     length=STRING (ambiguity) assertTrue?='assertTrue'
	 *     length=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     length=STRING (ambiguity) email?='email'
	 *     length=STRING (ambiguity) future?='future'
	 *     length=STRING (ambiguity) index?='index'
	 *     length=STRING (ambiguity) key?='key'
	 *     length=STRING (ambiguity) notBlank?='notBlank'
	 *     length=STRING (ambiguity) notChangeable?=NOT
	 *     length=STRING (ambiguity) notEmpty?='notEmpty'
	 *     length=STRING (ambiguity) nullable?='nullable'
	 *     length=STRING (ambiguity) past?='past'
	 *     length=STRING (ambiguity) required?='required'
	 *     length=STRING (ambiguity) transient?='transient'
	 *     max=STRING (ambiguity)
	 *     max=STRING (ambiguity) ';'? (rule end)
	 *     max=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     max=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     max=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     max=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     max=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     max=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     max=STRING (ambiguity) 'length' '=' length=STRING
	 *     max=STRING (ambiguity) 'max' '=' max=STRING
	 *     max=STRING (ambiguity) 'min' '=' min=STRING
	 *     max=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     max=STRING (ambiguity) 'range' '=' range=STRING
	 *     max=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     max=STRING (ambiguity) 'size' '=' size=STRING
	 *     max=STRING (ambiguity) 'url' '=' url=STRING
	 *     max=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     max=STRING (ambiguity) assertFalse?='assertFalse'
	 *     max=STRING (ambiguity) assertTrue?='assertTrue'
	 *     max=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     max=STRING (ambiguity) email?='email'
	 *     max=STRING (ambiguity) future?='future'
	 *     max=STRING (ambiguity) index?='index'
	 *     max=STRING (ambiguity) key?='key'
	 *     max=STRING (ambiguity) notBlank?='notBlank'
	 *     max=STRING (ambiguity) notChangeable?=NOT
	 *     max=STRING (ambiguity) notEmpty?='notEmpty'
	 *     max=STRING (ambiguity) nullable?='nullable'
	 *     max=STRING (ambiguity) past?='past'
	 *     max=STRING (ambiguity) required?='required'
	 *     max=STRING (ambiguity) transient?='transient'
	 *     min=STRING (ambiguity)
	 *     min=STRING (ambiguity) ';'? (rule end)
	 *     min=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     min=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     min=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     min=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     min=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     min=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     min=STRING (ambiguity) 'length' '=' length=STRING
	 *     min=STRING (ambiguity) 'max' '=' max=STRING
	 *     min=STRING (ambiguity) 'min' '=' min=STRING
	 *     min=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     min=STRING (ambiguity) 'range' '=' range=STRING
	 *     min=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     min=STRING (ambiguity) 'size' '=' size=STRING
	 *     min=STRING (ambiguity) 'url' '=' url=STRING
	 *     min=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     min=STRING (ambiguity) assertFalse?='assertFalse'
	 *     min=STRING (ambiguity) assertTrue?='assertTrue'
	 *     min=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     min=STRING (ambiguity) email?='email'
	 *     min=STRING (ambiguity) future?='future'
	 *     min=STRING (ambiguity) index?='index'
	 *     min=STRING (ambiguity) key?='key'
	 *     min=STRING (ambiguity) notBlank?='notBlank'
	 *     min=STRING (ambiguity) notChangeable?=NOT
	 *     min=STRING (ambiguity) notEmpty?='notEmpty'
	 *     min=STRING (ambiguity) nullable?='nullable'
	 *     min=STRING (ambiguity) past?='past'
	 *     min=STRING (ambiguity) required?='required'
	 *     min=STRING (ambiguity) transient?='transient'
	 *     name=ID (ambiguity)
	 *     name=ID (ambiguity) ';'? (rule end)
	 *     name=ID (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     name=ID (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     name=ID (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     name=ID (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     name=ID (ambiguity) 'digits' '=' digits=STRING
	 *     name=ID (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID (ambiguity) 'length' '=' length=STRING
	 *     name=ID (ambiguity) 'max' '=' max=STRING
	 *     name=ID (ambiguity) 'min' '=' min=STRING
	 *     name=ID (ambiguity) 'pattern' '=' pattern=STRING
	 *     name=ID (ambiguity) 'range' '=' range=STRING
	 *     name=ID (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     name=ID (ambiguity) 'size' '=' size=STRING
	 *     name=ID (ambiguity) 'url' '=' url=STRING
	 *     name=ID (ambiguity) 'validate' '=' validate=STRING
	 *     name=ID (ambiguity) assertFalse?='assertFalse'
	 *     name=ID (ambiguity) assertTrue?='assertTrue'
	 *     name=ID (ambiguity) creditCardNumber?='creditCardNumber'
	 *     name=ID (ambiguity) email?='email'
	 *     name=ID (ambiguity) future?='future'
	 *     name=ID (ambiguity) index?='index'
	 *     name=ID (ambiguity) key?='key'
	 *     name=ID (ambiguity) notBlank?='notBlank'
	 *     name=ID (ambiguity) notChangeable?=NOT
	 *     name=ID (ambiguity) notEmpty?='notEmpty'
	 *     name=ID (ambiguity) nullable?='nullable'
	 *     name=ID (ambiguity) past?='past'
	 *     name=ID (ambiguity) required?='required'
	 *     name=ID (ambiguity) transient?='transient'
	 *     notBlank?='notBlank' (ambiguity)
	 *     notBlank?='notBlank' (ambiguity) ';'? (rule end)
	 *     notBlank?='notBlank' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     notBlank?='notBlank' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     notBlank?='notBlank' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notBlank?='notBlank' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notBlank?='notBlank' (ambiguity) 'digits' '=' digits=STRING
	 *     notBlank?='notBlank' (ambiguity) 'hint' '=' hint=STRING
	 *     notBlank?='notBlank' (ambiguity) 'length' '=' length=STRING
	 *     notBlank?='notBlank' (ambiguity) 'max' '=' max=STRING
	 *     notBlank?='notBlank' (ambiguity) 'min' '=' min=STRING
	 *     notBlank?='notBlank' (ambiguity) 'pattern' '=' pattern=STRING
	 *     notBlank?='notBlank' (ambiguity) 'range' '=' range=STRING
	 *     notBlank?='notBlank' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notBlank?='notBlank' (ambiguity) 'size' '=' size=STRING
	 *     notBlank?='notBlank' (ambiguity) 'url' '=' url=STRING
	 *     notBlank?='notBlank' (ambiguity) 'validate' '=' validate=STRING
	 *     notBlank?='notBlank' (ambiguity) assertFalse?='assertFalse'
	 *     notBlank?='notBlank' (ambiguity) assertTrue?='assertTrue'
	 *     notBlank?='notBlank' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notBlank?='notBlank' (ambiguity) email?='email'
	 *     notBlank?='notBlank' (ambiguity) future?='future'
	 *     notBlank?='notBlank' (ambiguity) index?='index'
	 *     notBlank?='notBlank' (ambiguity) key?='key'
	 *     notBlank?='notBlank' (ambiguity) notBlank?='notBlank'
	 *     notBlank?='notBlank' (ambiguity) notChangeable?=NOT
	 *     notBlank?='notBlank' (ambiguity) notEmpty?='notEmpty'
	 *     notBlank?='notBlank' (ambiguity) nullable?='nullable'
	 *     notBlank?='notBlank' (ambiguity) past?='past'
	 *     notBlank?='notBlank' (ambiguity) required?='required'
	 *     notBlank?='notBlank' (ambiguity) transient?='transient'
	 *     notBlankMessage=STRING (ambiguity)
	 *     notBlankMessage=STRING (ambiguity) ';'? (rule end)
	 *     notBlankMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     notBlankMessage=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     notBlankMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notBlankMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notBlankMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     notBlankMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     notBlankMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     notBlankMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     notBlankMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     notBlankMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     notBlankMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     notBlankMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notBlankMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     notBlankMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     notBlankMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     notBlankMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     notBlankMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     notBlankMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notBlankMessage=STRING (ambiguity) email?='email'
	 *     notBlankMessage=STRING (ambiguity) future?='future'
	 *     notBlankMessage=STRING (ambiguity) index?='index'
	 *     notBlankMessage=STRING (ambiguity) key?='key'
	 *     notBlankMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     notBlankMessage=STRING (ambiguity) notChangeable?=NOT
	 *     notBlankMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     notBlankMessage=STRING (ambiguity) nullable?='nullable'
	 *     notBlankMessage=STRING (ambiguity) past?='past'
	 *     notBlankMessage=STRING (ambiguity) required?='required'
	 *     notBlankMessage=STRING (ambiguity) transient?='transient'
	 *     notChangeable?=NOT 'changeable' (ambiguity)
	 *     notChangeable?=NOT 'changeable' (ambiguity) ';'? (rule end)
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'digits' '=' digits=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'hint' '=' hint=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'length' '=' length=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'max' '=' max=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'min' '=' min=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'pattern' '=' pattern=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'range' '=' range=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'size' '=' size=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'url' '=' url=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'validate' '=' validate=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) assertFalse?='assertFalse'
	 *     notChangeable?=NOT 'changeable' (ambiguity) assertTrue?='assertTrue'
	 *     notChangeable?=NOT 'changeable' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notChangeable?=NOT 'changeable' (ambiguity) email?='email'
	 *     notChangeable?=NOT 'changeable' (ambiguity) future?='future'
	 *     notChangeable?=NOT 'changeable' (ambiguity) index?='index'
	 *     notChangeable?=NOT 'changeable' (ambiguity) key?='key'
	 *     notChangeable?=NOT 'changeable' (ambiguity) notBlank?='notBlank'
	 *     notChangeable?=NOT 'changeable' (ambiguity) notChangeable?=NOT
	 *     notChangeable?=NOT 'changeable' (ambiguity) notEmpty?='notEmpty'
	 *     notChangeable?=NOT 'changeable' (ambiguity) nullable?='nullable'
	 *     notChangeable?=NOT 'changeable' (ambiguity) past?='past'
	 *     notChangeable?=NOT 'changeable' (ambiguity) required?='required'
	 *     notChangeable?=NOT 'changeable' (ambiguity) transient?='transient'
	 *     notEmpty?='notEmpty' (ambiguity)
	 *     notEmpty?='notEmpty' (ambiguity) ';'? (rule end)
	 *     notEmpty?='notEmpty' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'digits' '=' digits=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'hint' '=' hint=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'length' '=' length=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'max' '=' max=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'min' '=' min=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'pattern' '=' pattern=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'range' '=' range=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'size' '=' size=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'url' '=' url=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'validate' '=' validate=STRING
	 *     notEmpty?='notEmpty' (ambiguity) assertFalse?='assertFalse'
	 *     notEmpty?='notEmpty' (ambiguity) assertTrue?='assertTrue'
	 *     notEmpty?='notEmpty' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notEmpty?='notEmpty' (ambiguity) email?='email'
	 *     notEmpty?='notEmpty' (ambiguity) future?='future'
	 *     notEmpty?='notEmpty' (ambiguity) index?='index'
	 *     notEmpty?='notEmpty' (ambiguity) key?='key'
	 *     notEmpty?='notEmpty' (ambiguity) notBlank?='notBlank'
	 *     notEmpty?='notEmpty' (ambiguity) notChangeable?=NOT
	 *     notEmpty?='notEmpty' (ambiguity) notEmpty?='notEmpty'
	 *     notEmpty?='notEmpty' (ambiguity) nullable?='nullable'
	 *     notEmpty?='notEmpty' (ambiguity) past?='past'
	 *     notEmpty?='notEmpty' (ambiguity) required?='required'
	 *     notEmpty?='notEmpty' (ambiguity) transient?='transient'
	 *     notEmptyMessage=STRING (ambiguity)
	 *     notEmptyMessage=STRING (ambiguity) ';'? (rule end)
	 *     notEmptyMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     notEmptyMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     notEmptyMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     notEmptyMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notEmptyMessage=STRING (ambiguity) email?='email'
	 *     notEmptyMessage=STRING (ambiguity) future?='future'
	 *     notEmptyMessage=STRING (ambiguity) index?='index'
	 *     notEmptyMessage=STRING (ambiguity) key?='key'
	 *     notEmptyMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     notEmptyMessage=STRING (ambiguity) notChangeable?=NOT
	 *     notEmptyMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     notEmptyMessage=STRING (ambiguity) nullable?='nullable'
	 *     notEmptyMessage=STRING (ambiguity) past?='past'
	 *     notEmptyMessage=STRING (ambiguity) required?='required'
	 *     notEmptyMessage=STRING (ambiguity) transient?='transient'
	 *     nullable?='nullable' (ambiguity) ';'? (rule end)
	 *     nullable?='nullable' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     nullable?='nullable' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     nullable?='nullable' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     nullable?='nullable' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     nullable?='nullable' (ambiguity) 'digits' '=' digits=STRING
	 *     nullable?='nullable' (ambiguity) 'hint' '=' hint=STRING
	 *     nullable?='nullable' (ambiguity) 'length' '=' length=STRING
	 *     nullable?='nullable' (ambiguity) 'max' '=' max=STRING
	 *     nullable?='nullable' (ambiguity) 'min' '=' min=STRING
	 *     nullable?='nullable' (ambiguity) 'pattern' '=' pattern=STRING
	 *     nullable?='nullable' (ambiguity) 'range' '=' range=STRING
	 *     nullable?='nullable' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     nullable?='nullable' (ambiguity) 'size' '=' size=STRING
	 *     nullable?='nullable' (ambiguity) 'url' '=' url=STRING
	 *     nullable?='nullable' (ambiguity) 'validate' '=' validate=STRING
	 *     nullable?='nullable' (ambiguity) assertFalse?='assertFalse'
	 *     nullable?='nullable' (ambiguity) assertTrue?='assertTrue'
	 *     nullable?='nullable' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     nullable?='nullable' (ambiguity) email?='email'
	 *     nullable?='nullable' (ambiguity) future?='future'
	 *     nullable?='nullable' (ambiguity) index?='index'
	 *     nullable?='nullable' (ambiguity) key?='key'
	 *     nullable?='nullable' (ambiguity) notBlank?='notBlank'
	 *     nullable?='nullable' (ambiguity) notChangeable?=NOT
	 *     nullable?='nullable' (ambiguity) notEmpty?='notEmpty'
	 *     nullable?='nullable' (ambiguity) nullable?='nullable'
	 *     nullable?='nullable' (ambiguity) past?='past'
	 *     nullable?='nullable' (ambiguity) required?='required'
	 *     nullable?='nullable' (ambiguity) transient?='transient'
	 *     nullableMessage=STRING (ambiguity)
	 *     nullableMessage=STRING (ambiguity) ';'? (rule end)
	 *     nullableMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     nullableMessage=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     nullableMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     nullableMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     nullableMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     nullableMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     nullableMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     nullableMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     nullableMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     nullableMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     nullableMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     nullableMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     nullableMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     nullableMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     nullableMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     nullableMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     nullableMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     nullableMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     nullableMessage=STRING (ambiguity) email?='email'
	 *     nullableMessage=STRING (ambiguity) future?='future'
	 *     nullableMessage=STRING (ambiguity) index?='index'
	 *     nullableMessage=STRING (ambiguity) key?='key'
	 *     nullableMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     nullableMessage=STRING (ambiguity) notChangeable?=NOT
	 *     nullableMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     nullableMessage=STRING (ambiguity) nullable?='nullable'
	 *     nullableMessage=STRING (ambiguity) past?='past'
	 *     nullableMessage=STRING (ambiguity) required?='required'
	 *     nullableMessage=STRING (ambiguity) transient?='transient'
	 *     past?='past' (ambiguity)
	 *     past?='past' (ambiguity) ';'? (rule end)
	 *     past?='past' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     past?='past' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     past?='past' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     past?='past' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     past?='past' (ambiguity) 'digits' '=' digits=STRING
	 *     past?='past' (ambiguity) 'hint' '=' hint=STRING
	 *     past?='past' (ambiguity) 'length' '=' length=STRING
	 *     past?='past' (ambiguity) 'max' '=' max=STRING
	 *     past?='past' (ambiguity) 'min' '=' min=STRING
	 *     past?='past' (ambiguity) 'pattern' '=' pattern=STRING
	 *     past?='past' (ambiguity) 'range' '=' range=STRING
	 *     past?='past' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     past?='past' (ambiguity) 'size' '=' size=STRING
	 *     past?='past' (ambiguity) 'url' '=' url=STRING
	 *     past?='past' (ambiguity) 'validate' '=' validate=STRING
	 *     past?='past' (ambiguity) assertFalse?='assertFalse'
	 *     past?='past' (ambiguity) assertTrue?='assertTrue'
	 *     past?='past' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     past?='past' (ambiguity) email?='email'
	 *     past?='past' (ambiguity) future?='future'
	 *     past?='past' (ambiguity) index?='index'
	 *     past?='past' (ambiguity) key?='key'
	 *     past?='past' (ambiguity) notBlank?='notBlank'
	 *     past?='past' (ambiguity) notChangeable?=NOT
	 *     past?='past' (ambiguity) notEmpty?='notEmpty'
	 *     past?='past' (ambiguity) nullable?='nullable'
	 *     past?='past' (ambiguity) past?='past'
	 *     past?='past' (ambiguity) required?='required'
	 *     past?='past' (ambiguity) transient?='transient'
	 *     pastMessage=STRING (ambiguity)
	 *     pastMessage=STRING (ambiguity) ';'? (rule end)
	 *     pastMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     pastMessage=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     pastMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     pastMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     pastMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     pastMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     pastMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     pastMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     pastMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     pastMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     pastMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     pastMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     pastMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     pastMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     pastMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     pastMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     pastMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     pastMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     pastMessage=STRING (ambiguity) email?='email'
	 *     pastMessage=STRING (ambiguity) future?='future'
	 *     pastMessage=STRING (ambiguity) index?='index'
	 *     pastMessage=STRING (ambiguity) key?='key'
	 *     pastMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     pastMessage=STRING (ambiguity) notChangeable?=NOT
	 *     pastMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     pastMessage=STRING (ambiguity) nullable?='nullable'
	 *     pastMessage=STRING (ambiguity) past?='past'
	 *     pastMessage=STRING (ambiguity) required?='required'
	 *     pastMessage=STRING (ambiguity) transient?='transient'
	 *     pattern=STRING (ambiguity)
	 *     pattern=STRING (ambiguity) ';'? (rule end)
	 *     pattern=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     pattern=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     pattern=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     pattern=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     pattern=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     pattern=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     pattern=STRING (ambiguity) 'length' '=' length=STRING
	 *     pattern=STRING (ambiguity) 'max' '=' max=STRING
	 *     pattern=STRING (ambiguity) 'min' '=' min=STRING
	 *     pattern=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     pattern=STRING (ambiguity) 'range' '=' range=STRING
	 *     pattern=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     pattern=STRING (ambiguity) 'size' '=' size=STRING
	 *     pattern=STRING (ambiguity) 'url' '=' url=STRING
	 *     pattern=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     pattern=STRING (ambiguity) assertFalse?='assertFalse'
	 *     pattern=STRING (ambiguity) assertTrue?='assertTrue'
	 *     pattern=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     pattern=STRING (ambiguity) email?='email'
	 *     pattern=STRING (ambiguity) future?='future'
	 *     pattern=STRING (ambiguity) index?='index'
	 *     pattern=STRING (ambiguity) key?='key'
	 *     pattern=STRING (ambiguity) notBlank?='notBlank'
	 *     pattern=STRING (ambiguity) notChangeable?=NOT
	 *     pattern=STRING (ambiguity) notEmpty?='notEmpty'
	 *     pattern=STRING (ambiguity) nullable?='nullable'
	 *     pattern=STRING (ambiguity) past?='past'
	 *     pattern=STRING (ambiguity) required?='required'
	 *     pattern=STRING (ambiguity) transient?='transient'
	 *     range=STRING (ambiguity)
	 *     range=STRING (ambiguity) ';'? (rule end)
	 *     range=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     range=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     range=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     range=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     range=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     range=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     range=STRING (ambiguity) 'length' '=' length=STRING
	 *     range=STRING (ambiguity) 'max' '=' max=STRING
	 *     range=STRING (ambiguity) 'min' '=' min=STRING
	 *     range=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     range=STRING (ambiguity) 'range' '=' range=STRING
	 *     range=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     range=STRING (ambiguity) 'size' '=' size=STRING
	 *     range=STRING (ambiguity) 'url' '=' url=STRING
	 *     range=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     range=STRING (ambiguity) assertFalse?='assertFalse'
	 *     range=STRING (ambiguity) assertTrue?='assertTrue'
	 *     range=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     range=STRING (ambiguity) email?='email'
	 *     range=STRING (ambiguity) future?='future'
	 *     range=STRING (ambiguity) index?='index'
	 *     range=STRING (ambiguity) key?='key'
	 *     range=STRING (ambiguity) notBlank?='notBlank'
	 *     range=STRING (ambiguity) notChangeable?=NOT
	 *     range=STRING (ambiguity) notEmpty?='notEmpty'
	 *     range=STRING (ambiguity) nullable?='nullable'
	 *     range=STRING (ambiguity) past?='past'
	 *     range=STRING (ambiguity) required?='required'
	 *     range=STRING (ambiguity) transient?='transient'
	 *     required?='required' (ambiguity)
	 *     required?='required' (ambiguity) ';'? (rule end)
	 *     required?='required' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     required?='required' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     required?='required' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     required?='required' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     required?='required' (ambiguity) 'digits' '=' digits=STRING
	 *     required?='required' (ambiguity) 'hint' '=' hint=STRING
	 *     required?='required' (ambiguity) 'length' '=' length=STRING
	 *     required?='required' (ambiguity) 'max' '=' max=STRING
	 *     required?='required' (ambiguity) 'min' '=' min=STRING
	 *     required?='required' (ambiguity) 'pattern' '=' pattern=STRING
	 *     required?='required' (ambiguity) 'range' '=' range=STRING
	 *     required?='required' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     required?='required' (ambiguity) 'size' '=' size=STRING
	 *     required?='required' (ambiguity) 'url' '=' url=STRING
	 *     required?='required' (ambiguity) 'validate' '=' validate=STRING
	 *     required?='required' (ambiguity) assertFalse?='assertFalse'
	 *     required?='required' (ambiguity) assertTrue?='assertTrue'
	 *     required?='required' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     required?='required' (ambiguity) email?='email'
	 *     required?='required' (ambiguity) future?='future'
	 *     required?='required' (ambiguity) index?='index'
	 *     required?='required' (ambiguity) key?='key'
	 *     required?='required' (ambiguity) notBlank?='notBlank'
	 *     required?='required' (ambiguity) notChangeable?=NOT
	 *     required?='required' (ambiguity) notEmpty?='notEmpty'
	 *     required?='required' (ambiguity) nullable?='nullable'
	 *     required?='required' (ambiguity) past?='past'
	 *     required?='required' (ambiguity) required?='required'
	 *     required?='required' (ambiguity) transient?='transient'
	 *     scriptAssert=STRING (ambiguity)
	 *     scriptAssert=STRING (ambiguity) ';'? (rule end)
	 *     scriptAssert=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     scriptAssert=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     scriptAssert=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     scriptAssert=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     scriptAssert=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     scriptAssert=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     scriptAssert=STRING (ambiguity) 'length' '=' length=STRING
	 *     scriptAssert=STRING (ambiguity) 'max' '=' max=STRING
	 *     scriptAssert=STRING (ambiguity) 'min' '=' min=STRING
	 *     scriptAssert=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     scriptAssert=STRING (ambiguity) 'range' '=' range=STRING
	 *     scriptAssert=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     scriptAssert=STRING (ambiguity) 'size' '=' size=STRING
	 *     scriptAssert=STRING (ambiguity) 'url' '=' url=STRING
	 *     scriptAssert=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     scriptAssert=STRING (ambiguity) assertFalse?='assertFalse'
	 *     scriptAssert=STRING (ambiguity) assertTrue?='assertTrue'
	 *     scriptAssert=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     scriptAssert=STRING (ambiguity) email?='email'
	 *     scriptAssert=STRING (ambiguity) future?='future'
	 *     scriptAssert=STRING (ambiguity) index?='index'
	 *     scriptAssert=STRING (ambiguity) key?='key'
	 *     scriptAssert=STRING (ambiguity) notBlank?='notBlank'
	 *     scriptAssert=STRING (ambiguity) notChangeable?=NOT
	 *     scriptAssert=STRING (ambiguity) notEmpty?='notEmpty'
	 *     scriptAssert=STRING (ambiguity) nullable?='nullable'
	 *     scriptAssert=STRING (ambiguity) past?='past'
	 *     scriptAssert=STRING (ambiguity) required?='required'
	 *     scriptAssert=STRING (ambiguity) transient?='transient'
	 *     size=STRING (ambiguity)
	 *     size=STRING (ambiguity) ';'? (rule end)
	 *     size=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     size=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     size=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     size=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     size=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     size=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     size=STRING (ambiguity) 'length' '=' length=STRING
	 *     size=STRING (ambiguity) 'max' '=' max=STRING
	 *     size=STRING (ambiguity) 'min' '=' min=STRING
	 *     size=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     size=STRING (ambiguity) 'range' '=' range=STRING
	 *     size=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     size=STRING (ambiguity) 'size' '=' size=STRING
	 *     size=STRING (ambiguity) 'url' '=' url=STRING
	 *     size=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     size=STRING (ambiguity) assertFalse?='assertFalse'
	 *     size=STRING (ambiguity) assertTrue?='assertTrue'
	 *     size=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     size=STRING (ambiguity) email?='email'
	 *     size=STRING (ambiguity) future?='future'
	 *     size=STRING (ambiguity) index?='index'
	 *     size=STRING (ambiguity) key?='key'
	 *     size=STRING (ambiguity) notBlank?='notBlank'
	 *     size=STRING (ambiguity) notChangeable?=NOT
	 *     size=STRING (ambiguity) notEmpty?='notEmpty'
	 *     size=STRING (ambiguity) nullable?='nullable'
	 *     size=STRING (ambiguity) past?='past'
	 *     size=STRING (ambiguity) required?='required'
	 *     size=STRING (ambiguity) transient?='transient'
	 *     transient?='transient' (ambiguity)
	 *     transient?='transient' (ambiguity) ';'? (rule end)
	 *     transient?='transient' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     transient?='transient' (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     transient?='transient' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     transient?='transient' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     transient?='transient' (ambiguity) 'digits' '=' digits=STRING
	 *     transient?='transient' (ambiguity) 'hint' '=' hint=STRING
	 *     transient?='transient' (ambiguity) 'length' '=' length=STRING
	 *     transient?='transient' (ambiguity) 'max' '=' max=STRING
	 *     transient?='transient' (ambiguity) 'min' '=' min=STRING
	 *     transient?='transient' (ambiguity) 'pattern' '=' pattern=STRING
	 *     transient?='transient' (ambiguity) 'range' '=' range=STRING
	 *     transient?='transient' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     transient?='transient' (ambiguity) 'size' '=' size=STRING
	 *     transient?='transient' (ambiguity) 'url' '=' url=STRING
	 *     transient?='transient' (ambiguity) 'validate' '=' validate=STRING
	 *     transient?='transient' (ambiguity) assertFalse?='assertFalse'
	 *     transient?='transient' (ambiguity) assertTrue?='assertTrue'
	 *     transient?='transient' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     transient?='transient' (ambiguity) email?='email'
	 *     transient?='transient' (ambiguity) future?='future'
	 *     transient?='transient' (ambiguity) index?='index'
	 *     transient?='transient' (ambiguity) key?='key'
	 *     transient?='transient' (ambiguity) notBlank?='notBlank'
	 *     transient?='transient' (ambiguity) notChangeable?=NOT
	 *     transient?='transient' (ambiguity) notEmpty?='notEmpty'
	 *     transient?='transient' (ambiguity) nullable?='nullable'
	 *     transient?='transient' (ambiguity) past?='past'
	 *     transient?='transient' (ambiguity) required?='required'
	 *     transient?='transient' (ambiguity) transient?='transient'
	 *     url=STRING (ambiguity)
	 *     url=STRING (ambiguity) ';'? (rule end)
	 *     url=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     url=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     url=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     url=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     url=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     url=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     url=STRING (ambiguity) 'length' '=' length=STRING
	 *     url=STRING (ambiguity) 'max' '=' max=STRING
	 *     url=STRING (ambiguity) 'min' '=' min=STRING
	 *     url=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     url=STRING (ambiguity) 'range' '=' range=STRING
	 *     url=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     url=STRING (ambiguity) 'size' '=' size=STRING
	 *     url=STRING (ambiguity) 'url' '=' url=STRING
	 *     url=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     url=STRING (ambiguity) assertFalse?='assertFalse'
	 *     url=STRING (ambiguity) assertTrue?='assertTrue'
	 *     url=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     url=STRING (ambiguity) email?='email'
	 *     url=STRING (ambiguity) future?='future'
	 *     url=STRING (ambiguity) index?='index'
	 *     url=STRING (ambiguity) key?='key'
	 *     url=STRING (ambiguity) notBlank?='notBlank'
	 *     url=STRING (ambiguity) notChangeable?=NOT
	 *     url=STRING (ambiguity) notEmpty?='notEmpty'
	 *     url=STRING (ambiguity) nullable?='nullable'
	 *     url=STRING (ambiguity) past?='past'
	 *     url=STRING (ambiguity) required?='required'
	 *     url=STRING (ambiguity) transient?='transient'
	 *     validate=STRING (ambiguity)
	 *     validate=STRING (ambiguity) ';'? (rule end)
	 *     validate=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     validate=STRING (ambiguity) 'databaseType' '=' databaseType=STRING
	 *     validate=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     validate=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     validate=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     validate=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validate=STRING (ambiguity) 'length' '=' length=STRING
	 *     validate=STRING (ambiguity) 'max' '=' max=STRING
	 *     validate=STRING (ambiguity) 'min' '=' min=STRING
	 *     validate=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     validate=STRING (ambiguity) 'range' '=' range=STRING
	 *     validate=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     validate=STRING (ambiguity) 'size' '=' size=STRING
	 *     validate=STRING (ambiguity) 'url' '=' url=STRING
	 *     validate=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validate=STRING (ambiguity) assertFalse?='assertFalse'
	 *     validate=STRING (ambiguity) assertTrue?='assertTrue'
	 *     validate=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     validate=STRING (ambiguity) email?='email'
	 *     validate=STRING (ambiguity) future?='future'
	 *     validate=STRING (ambiguity) index?='index'
	 *     validate=STRING (ambiguity) key?='key'
	 *     validate=STRING (ambiguity) notBlank?='notBlank'
	 *     validate=STRING (ambiguity) notChangeable?=NOT
	 *     validate=STRING (ambiguity) notEmpty?='notEmpty'
	 *     validate=STRING (ambiguity) nullable?='nullable'
	 *     validate=STRING (ambiguity) past?='past'
	 *     validate=STRING (ambiguity) required?='required'
	 *     validate=STRING (ambiguity) transient?='transient'
	 */
	protected void emit_Attribute___ChangeableKeyword_4_1_1_q___NOTTerminalRuleCall_4_2_1_0_RequiredKeyword_4_2_1_1__q___NOTTerminalRuleCall_4_3_0_1_0_NullableKeyword_4_3_0_1_1__q__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID 'with' (ambiguity) traits+=[Trait|ID]
	 *     traits+=[Trait|ID] 'with' (ambiguity) traits+=[Trait|ID]
	 */
	protected void emit_BasicType_CommercialAtKeyword_3_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'immutable'*
	 *
	 * This ambiguous syntax occurs at:
	 *     gapClass?='gap' (ambiguity) 'hint' '=' hint=STRING
	 *     gapClass?='gap' (ambiguity) '}' (rule end)
	 *     gapClass?='gap' (ambiguity) attributes+=Attribute
	 *     gapClass?='gap' (ambiguity) gapClass?='gap'
	 *     gapClass?='gap' (ambiguity) noGapClass?='nogap'
	 *     gapClass?='gap' (ambiguity) notImmutable?=NOT
	 *     gapClass?='gap' (ambiguity) operations+=DomainObjectOperation
	 *     gapClass?='gap' (ambiguity) references+=Reference
	 *     hint=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     hint=STRING (ambiguity) '}' (rule end)
	 *     hint=STRING (ambiguity) attributes+=Attribute
	 *     hint=STRING (ambiguity) gapClass?='gap'
	 *     hint=STRING (ambiguity) noGapClass?='nogap'
	 *     hint=STRING (ambiguity) notImmutable?=NOT
	 *     hint=STRING (ambiguity) operations+=DomainObjectOperation
	 *     hint=STRING (ambiguity) references+=Reference
	 *     name=ID '{' (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID '{' (ambiguity) attributes+=Attribute
	 *     name=ID '{' (ambiguity) gapClass?='gap'
	 *     name=ID '{' (ambiguity) noGapClass?='nogap'
	 *     name=ID '{' (ambiguity) notImmutable?=NOT
	 *     name=ID '{' (ambiguity) operations+=DomainObjectOperation
	 *     name=ID '{' (ambiguity) references+=Reference
	 *     noGapClass?='nogap' (ambiguity) 'hint' '=' hint=STRING
	 *     noGapClass?='nogap' (ambiguity) '}' (rule end)
	 *     noGapClass?='nogap' (ambiguity) attributes+=Attribute
	 *     noGapClass?='nogap' (ambiguity) gapClass?='gap'
	 *     noGapClass?='nogap' (ambiguity) noGapClass?='nogap'
	 *     noGapClass?='nogap' (ambiguity) notImmutable?=NOT
	 *     noGapClass?='nogap' (ambiguity) operations+=DomainObjectOperation
	 *     noGapClass?='nogap' (ambiguity) references+=Reference
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'hint' '=' hint=STRING
	 *     notImmutable?=NOT 'immutable' (ambiguity) '}' (rule end)
	 *     notImmutable?=NOT 'immutable' (ambiguity) attributes+=Attribute
	 *     notImmutable?=NOT 'immutable' (ambiguity) gapClass?='gap'
	 *     notImmutable?=NOT 'immutable' (ambiguity) noGapClass?='nogap'
	 *     notImmutable?=NOT 'immutable' (ambiguity) notImmutable?=NOT
	 *     notImmutable?=NOT 'immutable' (ambiguity) operations+=DomainObjectOperation
	 *     notImmutable?=NOT 'immutable' (ambiguity) references+=Reference
	 *     package=JavaIdentifier (ambiguity) 'hint' '=' hint=STRING
	 *     package=JavaIdentifier (ambiguity) '}' (rule end)
	 *     package=JavaIdentifier (ambiguity) attributes+=Attribute
	 *     package=JavaIdentifier (ambiguity) gapClass?='gap'
	 *     package=JavaIdentifier (ambiguity) noGapClass?='nogap'
	 *     package=JavaIdentifier (ambiguity) notImmutable?=NOT
	 *     package=JavaIdentifier (ambiguity) operations+=DomainObjectOperation
	 *     package=JavaIdentifier (ambiguity) references+=Reference
	 *     traits+=[Trait|ID] '{' (ambiguity) 'hint' '=' hint=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) attributes+=Attribute
	 *     traits+=[Trait|ID] '{' (ambiguity) gapClass?='gap'
	 *     traits+=[Trait|ID] '{' (ambiguity) noGapClass?='nogap'
	 *     traits+=[Trait|ID] '{' (ambiguity) notImmutable?=NOT
	 *     traits+=[Trait|ID] '{' (ambiguity) operations+=DomainObjectOperation
	 *     traits+=[Trait|ID] '{' (ambiguity) references+=Reference
	 */
	protected void emit_BasicType_ImmutableKeyword_4_2_0_1_a(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' 'immutable'* '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 *     traits+=[Trait|ID] (ambiguity) (rule end)
	 */
	protected void emit_BasicType___LeftCurlyBracketKeyword_4_0_ImmutableKeyword_4_2_0_1_a_RightCurlyBracketKeyword_4_4__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     domainVisionStatement=STRING 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     implementationTechnology=STRING 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     implementedDomainParts+=[DomainPart|ID] OPEN 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     knowledgeLevel=KnowledgeLevel 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     name=ID OPEN 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     realizedBoundedContexts+=[BoundedContext|ID] OPEN 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     refinedBoundedContext=[BoundedContext|ID] OPEN 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     responsibilities+=STRING 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     type=BoundedContextType 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 */
	protected void emit_BoundedContext_EqualsSignKeyword_4_1_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     domainVisionStatement=STRING 'type' (ambiguity) type=BoundedContextType
	 *     implementationTechnology=STRING 'type' (ambiguity) type=BoundedContextType
	 *     implementedDomainParts+=[DomainPart|ID] OPEN 'type' (ambiguity) type=BoundedContextType
	 *     knowledgeLevel=KnowledgeLevel 'type' (ambiguity) type=BoundedContextType
	 *     name=ID OPEN 'type' (ambiguity) type=BoundedContextType
	 *     realizedBoundedContexts+=[BoundedContext|ID] OPEN 'type' (ambiguity) type=BoundedContextType
	 *     refinedBoundedContext=[BoundedContext|ID] OPEN 'type' (ambiguity) type=BoundedContextType
	 *     responsibilities+=STRING 'type' (ambiguity) type=BoundedContextType
	 *     type=BoundedContextType 'type' (ambiguity) type=BoundedContextType
	 */
	protected void emit_BoundedContext_EqualsSignKeyword_4_1_1_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     domainVisionStatement=STRING 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     implementationTechnology=STRING 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     implementedDomainParts+=[DomainPart|ID] OPEN 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     knowledgeLevel=KnowledgeLevel 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     name=ID OPEN 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     realizedBoundedContexts+=[BoundedContext|ID] OPEN 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     refinedBoundedContext=[BoundedContext|ID] OPEN 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     responsibilities+=STRING 'responsibilities' (ambiguity) responsibilities+=STRING
	 *     type=BoundedContextType 'responsibilities' (ambiguity) responsibilities+=STRING
	 */
	protected void emit_BoundedContext_EqualsSignKeyword_4_1_2_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     domainVisionStatement=STRING 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     implementationTechnology=STRING 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     implementedDomainParts+=[DomainPart|ID] OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     knowledgeLevel=KnowledgeLevel 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     name=ID OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     realizedBoundedContexts+=[BoundedContext|ID] OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     refinedBoundedContext=[BoundedContext|ID] OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     responsibilities+=STRING 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     type=BoundedContextType 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 */
	protected void emit_BoundedContext_EqualsSignKeyword_4_1_3_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     domainVisionStatement=STRING 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     implementationTechnology=STRING 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     implementedDomainParts+=[DomainPart|ID] OPEN 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     knowledgeLevel=KnowledgeLevel 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     name=ID OPEN 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     realizedBoundedContexts+=[BoundedContext|ID] OPEN 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     refinedBoundedContext=[BoundedContext|ID] OPEN 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     responsibilities+=STRING 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 *     type=BoundedContextType 'knowledgeLevel' (ambiguity) knowledgeLevel=KnowledgeLevel
	 */
	protected void emit_BoundedContext_EqualsSignKeyword_4_1_4_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     implementedDomainParts+=[DomainPart|ID] (ambiguity) (rule end)
	 *     name=ID (ambiguity) (rule end)
	 *     realizedBoundedContexts+=[BoundedContext|ID] (ambiguity) (rule end)
	 *     refinedBoundedContext=[BoundedContext|ID] (ambiguity) (rule end)
	 */
	protected void emit_BoundedContext___OPENTerminalRuleCall_4_0_CLOSETerminalRuleCall_4_4__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     extends=[CommandEvent|ID] 'with' (ambiguity) traits+=[Trait|ID]
	 *     extendsName=JavaIdentifier 'with' (ambiguity) traits+=[Trait|ID]
	 *     name=ID 'with' (ambiguity) traits+=[Trait|ID]
	 *     traits+=[Trait|ID] 'with' (ambiguity) traits+=[Trait|ID]
	 */
	protected void emit_CommandEvent_CommercialAtKeyword_6_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     aggregateRoot?='aggregateRoot' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     belongsTo=[DomainObject|ID] (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     cache?='cache' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     databaseTable=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorColumn=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorLength=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorType=DiscriminatorType (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorValue=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     extends=[CommandEvent|ID] '{' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     extendsName=JavaIdentifier '{' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     gapClass?='gap' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     hint=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     inheritanceType=InheritanceType (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     name=ID '{' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     noGapClass?='nogap' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     package=JavaIdentifier (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     persistent?='persistent' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     scaffold?='scaffold' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     traits+=[Trait|ID] '{' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     validate=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 */
	protected void emit_CommandEvent_CommercialAtKeyword_7_2_13_1_0_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' (NOT 'cache')* '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     extends=[CommandEvent|ID] (ambiguity) (rule end)
	 *     extendsName=JavaIdentifier (ambiguity) (rule end)
	 *     name=ID (ambiguity) (rule end)
	 *     traits+=[Trait|ID] (ambiguity) (rule end)
	 */
	protected void emit_CommandEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (NOT 'cache')*
	 *
	 * This ambiguous syntax occurs at:
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'hint' '=' hint=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'validate' '=' validate=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) '}' (rule end)
	 *     aggregateRoot?='aggregateRoot' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) attributes+=Attribute
	 *     aggregateRoot?='aggregateRoot' (ambiguity) cache?='cache'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) gapClass?='gap'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) noGapClass?='nogap'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) operations+=DomainObjectOperation
	 *     aggregateRoot?='aggregateRoot' (ambiguity) persistent?='persistent'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) references+=Reference
	 *     aggregateRoot?='aggregateRoot' (ambiguity) repository=Repository
	 *     aggregateRoot?='aggregateRoot' (ambiguity) scaffold?='scaffold'
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'hint' '=' hint=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'validate' '=' validate=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) '}' (rule end)
	 *     belongsTo=[DomainObject|ID] (ambiguity) aggregateRoot?='aggregateRoot'
	 *     belongsTo=[DomainObject|ID] (ambiguity) attributes+=Attribute
	 *     belongsTo=[DomainObject|ID] (ambiguity) cache?='cache'
	 *     belongsTo=[DomainObject|ID] (ambiguity) gapClass?='gap'
	 *     belongsTo=[DomainObject|ID] (ambiguity) noGapClass?='nogap'
	 *     belongsTo=[DomainObject|ID] (ambiguity) operations+=DomainObjectOperation
	 *     belongsTo=[DomainObject|ID] (ambiguity) persistent?='persistent'
	 *     belongsTo=[DomainObject|ID] (ambiguity) references+=Reference
	 *     belongsTo=[DomainObject|ID] (ambiguity) repository=Repository
	 *     belongsTo=[DomainObject|ID] (ambiguity) scaffold?='scaffold'
	 *     cache?='cache' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     cache?='cache' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     cache?='cache' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     cache?='cache' (ambiguity) 'hint' '=' hint=STRING
	 *     cache?='cache' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     cache?='cache' (ambiguity) 'validate' '=' validate=STRING
	 *     cache?='cache' (ambiguity) '}' (rule end)
	 *     cache?='cache' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     cache?='cache' (ambiguity) attributes+=Attribute
	 *     cache?='cache' (ambiguity) cache?='cache'
	 *     cache?='cache' (ambiguity) gapClass?='gap'
	 *     cache?='cache' (ambiguity) noGapClass?='nogap'
	 *     cache?='cache' (ambiguity) operations+=DomainObjectOperation
	 *     cache?='cache' (ambiguity) persistent?='persistent'
	 *     cache?='cache' (ambiguity) references+=Reference
	 *     cache?='cache' (ambiguity) repository=Repository
	 *     cache?='cache' (ambiguity) scaffold?='scaffold'
	 *     databaseTable=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     databaseTable=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     databaseTable=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     databaseTable=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     databaseTable=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     databaseTable=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     databaseTable=STRING (ambiguity) '}' (rule end)
	 *     databaseTable=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     databaseTable=STRING (ambiguity) attributes+=Attribute
	 *     databaseTable=STRING (ambiguity) cache?='cache'
	 *     databaseTable=STRING (ambiguity) gapClass?='gap'
	 *     databaseTable=STRING (ambiguity) noGapClass?='nogap'
	 *     databaseTable=STRING (ambiguity) operations+=DomainObjectOperation
	 *     databaseTable=STRING (ambiguity) persistent?='persistent'
	 *     databaseTable=STRING (ambiguity) references+=Reference
	 *     databaseTable=STRING (ambiguity) repository=Repository
	 *     databaseTable=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorColumn=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorColumn=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorColumn=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorColumn=STRING (ambiguity) '}' (rule end)
	 *     discriminatorColumn=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorColumn=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorColumn=STRING (ambiguity) cache?='cache'
	 *     discriminatorColumn=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorColumn=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorColumn=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorColumn=STRING (ambiguity) persistent?='persistent'
	 *     discriminatorColumn=STRING (ambiguity) references+=Reference
	 *     discriminatorColumn=STRING (ambiguity) repository=Repository
	 *     discriminatorColumn=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorLength=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorLength=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorLength=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorLength=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorLength=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorLength=STRING (ambiguity) '}' (rule end)
	 *     discriminatorLength=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorLength=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorLength=STRING (ambiguity) cache?='cache'
	 *     discriminatorLength=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorLength=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorLength=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorLength=STRING (ambiguity) persistent?='persistent'
	 *     discriminatorLength=STRING (ambiguity) references+=Reference
	 *     discriminatorLength=STRING (ambiguity) repository=Repository
	 *     discriminatorLength=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorType=DiscriminatorType (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorType=DiscriminatorType (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorType=DiscriminatorType (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) '}' (rule end)
	 *     discriminatorType=DiscriminatorType (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorType=DiscriminatorType (ambiguity) attributes+=Attribute
	 *     discriminatorType=DiscriminatorType (ambiguity) cache?='cache'
	 *     discriminatorType=DiscriminatorType (ambiguity) gapClass?='gap'
	 *     discriminatorType=DiscriminatorType (ambiguity) noGapClass?='nogap'
	 *     discriminatorType=DiscriminatorType (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorType=DiscriminatorType (ambiguity) persistent?='persistent'
	 *     discriminatorType=DiscriminatorType (ambiguity) references+=Reference
	 *     discriminatorType=DiscriminatorType (ambiguity) repository=Repository
	 *     discriminatorType=DiscriminatorType (ambiguity) scaffold?='scaffold'
	 *     discriminatorValue=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorValue=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorValue=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorValue=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorValue=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorValue=STRING (ambiguity) '}' (rule end)
	 *     discriminatorValue=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorValue=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorValue=STRING (ambiguity) cache?='cache'
	 *     discriminatorValue=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorValue=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorValue=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorValue=STRING (ambiguity) persistent?='persistent'
	 *     discriminatorValue=STRING (ambiguity) references+=Reference
	 *     discriminatorValue=STRING (ambiguity) repository=Repository
	 *     discriminatorValue=STRING (ambiguity) scaffold?='scaffold'
	 *     extends=[CommandEvent|ID] '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     extends=[CommandEvent|ID] '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     extends=[CommandEvent|ID] '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     extends=[CommandEvent|ID] '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     extends=[CommandEvent|ID] '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     extends=[CommandEvent|ID] '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     extends=[CommandEvent|ID] '{' (ambiguity) 'hint' '=' hint=STRING
	 *     extends=[CommandEvent|ID] '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     extends=[CommandEvent|ID] '{' (ambiguity) 'validate' '=' validate=STRING
	 *     extends=[CommandEvent|ID] '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     extends=[CommandEvent|ID] '{' (ambiguity) attributes+=Attribute
	 *     extends=[CommandEvent|ID] '{' (ambiguity) cache?='cache'
	 *     extends=[CommandEvent|ID] '{' (ambiguity) gapClass?='gap'
	 *     extends=[CommandEvent|ID] '{' (ambiguity) noGapClass?='nogap'
	 *     extends=[CommandEvent|ID] '{' (ambiguity) operations+=DomainObjectOperation
	 *     extends=[CommandEvent|ID] '{' (ambiguity) persistent?='persistent'
	 *     extends=[CommandEvent|ID] '{' (ambiguity) references+=Reference
	 *     extends=[CommandEvent|ID] '{' (ambiguity) repository=Repository
	 *     extends=[CommandEvent|ID] '{' (ambiguity) scaffold?='scaffold'
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'hint' '=' hint=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'validate' '=' validate=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     extendsName=JavaIdentifier '{' (ambiguity) attributes+=Attribute
	 *     extendsName=JavaIdentifier '{' (ambiguity) cache?='cache'
	 *     extendsName=JavaIdentifier '{' (ambiguity) gapClass?='gap'
	 *     extendsName=JavaIdentifier '{' (ambiguity) noGapClass?='nogap'
	 *     extendsName=JavaIdentifier '{' (ambiguity) operations+=DomainObjectOperation
	 *     extendsName=JavaIdentifier '{' (ambiguity) persistent?='persistent'
	 *     extendsName=JavaIdentifier '{' (ambiguity) references+=Reference
	 *     extendsName=JavaIdentifier '{' (ambiguity) repository=Repository
	 *     extendsName=JavaIdentifier '{' (ambiguity) scaffold?='scaffold'
	 *     gapClass?='gap' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     gapClass?='gap' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     gapClass?='gap' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     gapClass?='gap' (ambiguity) 'hint' '=' hint=STRING
	 *     gapClass?='gap' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     gapClass?='gap' (ambiguity) 'validate' '=' validate=STRING
	 *     gapClass?='gap' (ambiguity) '}' (rule end)
	 *     gapClass?='gap' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     gapClass?='gap' (ambiguity) attributes+=Attribute
	 *     gapClass?='gap' (ambiguity) cache?='cache'
	 *     gapClass?='gap' (ambiguity) gapClass?='gap'
	 *     gapClass?='gap' (ambiguity) noGapClass?='nogap'
	 *     gapClass?='gap' (ambiguity) operations+=DomainObjectOperation
	 *     gapClass?='gap' (ambiguity) persistent?='persistent'
	 *     gapClass?='gap' (ambiguity) references+=Reference
	 *     gapClass?='gap' (ambiguity) repository=Repository
	 *     gapClass?='gap' (ambiguity) scaffold?='scaffold'
	 *     hint=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     hint=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     hint=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     hint=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     hint=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     hint=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     hint=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     hint=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     hint=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     hint=STRING (ambiguity) '}' (rule end)
	 *     hint=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     hint=STRING (ambiguity) attributes+=Attribute
	 *     hint=STRING (ambiguity) cache?='cache'
	 *     hint=STRING (ambiguity) gapClass?='gap'
	 *     hint=STRING (ambiguity) noGapClass?='nogap'
	 *     hint=STRING (ambiguity) operations+=DomainObjectOperation
	 *     hint=STRING (ambiguity) persistent?='persistent'
	 *     hint=STRING (ambiguity) references+=Reference
	 *     hint=STRING (ambiguity) repository=Repository
	 *     hint=STRING (ambiguity) scaffold?='scaffold'
	 *     inheritanceType=InheritanceType (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     inheritanceType=InheritanceType (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'hint' '=' hint=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     inheritanceType=InheritanceType (ambiguity) 'validate' '=' validate=STRING
	 *     inheritanceType=InheritanceType (ambiguity) '}' (rule end)
	 *     inheritanceType=InheritanceType (ambiguity) aggregateRoot?='aggregateRoot'
	 *     inheritanceType=InheritanceType (ambiguity) attributes+=Attribute
	 *     inheritanceType=InheritanceType (ambiguity) cache?='cache'
	 *     inheritanceType=InheritanceType (ambiguity) gapClass?='gap'
	 *     inheritanceType=InheritanceType (ambiguity) noGapClass?='nogap'
	 *     inheritanceType=InheritanceType (ambiguity) operations+=DomainObjectOperation
	 *     inheritanceType=InheritanceType (ambiguity) persistent?='persistent'
	 *     inheritanceType=InheritanceType (ambiguity) references+=Reference
	 *     inheritanceType=InheritanceType (ambiguity) repository=Repository
	 *     inheritanceType=InheritanceType (ambiguity) scaffold?='scaffold'
	 *     name=ID '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     name=ID '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     name=ID '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     name=ID '{' (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     name=ID '{' (ambiguity) 'validate' '=' validate=STRING
	 *     name=ID '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     name=ID '{' (ambiguity) attributes+=Attribute
	 *     name=ID '{' (ambiguity) cache?='cache'
	 *     name=ID '{' (ambiguity) gapClass?='gap'
	 *     name=ID '{' (ambiguity) noGapClass?='nogap'
	 *     name=ID '{' (ambiguity) operations+=DomainObjectOperation
	 *     name=ID '{' (ambiguity) persistent?='persistent'
	 *     name=ID '{' (ambiguity) references+=Reference
	 *     name=ID '{' (ambiguity) repository=Repository
	 *     name=ID '{' (ambiguity) scaffold?='scaffold'
	 *     noGapClass?='nogap' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     noGapClass?='nogap' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     noGapClass?='nogap' (ambiguity) 'hint' '=' hint=STRING
	 *     noGapClass?='nogap' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     noGapClass?='nogap' (ambiguity) 'validate' '=' validate=STRING
	 *     noGapClass?='nogap' (ambiguity) '}' (rule end)
	 *     noGapClass?='nogap' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     noGapClass?='nogap' (ambiguity) attributes+=Attribute
	 *     noGapClass?='nogap' (ambiguity) cache?='cache'
	 *     noGapClass?='nogap' (ambiguity) gapClass?='gap'
	 *     noGapClass?='nogap' (ambiguity) noGapClass?='nogap'
	 *     noGapClass?='nogap' (ambiguity) operations+=DomainObjectOperation
	 *     noGapClass?='nogap' (ambiguity) persistent?='persistent'
	 *     noGapClass?='nogap' (ambiguity) references+=Reference
	 *     noGapClass?='nogap' (ambiguity) repository=Repository
	 *     noGapClass?='nogap' (ambiguity) scaffold?='scaffold'
	 *     package=JavaIdentifier (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     package=JavaIdentifier (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     package=JavaIdentifier (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     package=JavaIdentifier (ambiguity) 'hint' '=' hint=STRING
	 *     package=JavaIdentifier (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     package=JavaIdentifier (ambiguity) 'validate' '=' validate=STRING
	 *     package=JavaIdentifier (ambiguity) '}' (rule end)
	 *     package=JavaIdentifier (ambiguity) aggregateRoot?='aggregateRoot'
	 *     package=JavaIdentifier (ambiguity) attributes+=Attribute
	 *     package=JavaIdentifier (ambiguity) cache?='cache'
	 *     package=JavaIdentifier (ambiguity) gapClass?='gap'
	 *     package=JavaIdentifier (ambiguity) noGapClass?='nogap'
	 *     package=JavaIdentifier (ambiguity) operations+=DomainObjectOperation
	 *     package=JavaIdentifier (ambiguity) persistent?='persistent'
	 *     package=JavaIdentifier (ambiguity) references+=Reference
	 *     package=JavaIdentifier (ambiguity) repository=Repository
	 *     package=JavaIdentifier (ambiguity) scaffold?='scaffold'
	 *     persistent?='persistent' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     persistent?='persistent' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     persistent?='persistent' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     persistent?='persistent' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     persistent?='persistent' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     persistent?='persistent' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     persistent?='persistent' (ambiguity) 'hint' '=' hint=STRING
	 *     persistent?='persistent' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     persistent?='persistent' (ambiguity) 'validate' '=' validate=STRING
	 *     persistent?='persistent' (ambiguity) '}' (rule end)
	 *     persistent?='persistent' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     persistent?='persistent' (ambiguity) attributes+=Attribute
	 *     persistent?='persistent' (ambiguity) cache?='cache'
	 *     persistent?='persistent' (ambiguity) gapClass?='gap'
	 *     persistent?='persistent' (ambiguity) noGapClass?='nogap'
	 *     persistent?='persistent' (ambiguity) operations+=DomainObjectOperation
	 *     persistent?='persistent' (ambiguity) persistent?='persistent'
	 *     persistent?='persistent' (ambiguity) references+=Reference
	 *     persistent?='persistent' (ambiguity) repository=Repository
	 *     persistent?='persistent' (ambiguity) scaffold?='scaffold'
	 *     scaffold?='scaffold' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     scaffold?='scaffold' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     scaffold?='scaffold' (ambiguity) 'hint' '=' hint=STRING
	 *     scaffold?='scaffold' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     scaffold?='scaffold' (ambiguity) 'validate' '=' validate=STRING
	 *     scaffold?='scaffold' (ambiguity) '}' (rule end)
	 *     scaffold?='scaffold' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     scaffold?='scaffold' (ambiguity) attributes+=Attribute
	 *     scaffold?='scaffold' (ambiguity) cache?='cache'
	 *     scaffold?='scaffold' (ambiguity) gapClass?='gap'
	 *     scaffold?='scaffold' (ambiguity) noGapClass?='nogap'
	 *     scaffold?='scaffold' (ambiguity) operations+=DomainObjectOperation
	 *     scaffold?='scaffold' (ambiguity) persistent?='persistent'
	 *     scaffold?='scaffold' (ambiguity) references+=Reference
	 *     scaffold?='scaffold' (ambiguity) repository=Repository
	 *     scaffold?='scaffold' (ambiguity) scaffold?='scaffold'
	 *     traits+=[Trait|ID] '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     traits+=[Trait|ID] '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'hint' '=' hint=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     traits+=[Trait|ID] '{' (ambiguity) 'validate' '=' validate=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     traits+=[Trait|ID] '{' (ambiguity) attributes+=Attribute
	 *     traits+=[Trait|ID] '{' (ambiguity) cache?='cache'
	 *     traits+=[Trait|ID] '{' (ambiguity) gapClass?='gap'
	 *     traits+=[Trait|ID] '{' (ambiguity) noGapClass?='nogap'
	 *     traits+=[Trait|ID] '{' (ambiguity) operations+=DomainObjectOperation
	 *     traits+=[Trait|ID] '{' (ambiguity) persistent?='persistent'
	 *     traits+=[Trait|ID] '{' (ambiguity) references+=Reference
	 *     traits+=[Trait|ID] '{' (ambiguity) repository=Repository
	 *     traits+=[Trait|ID] '{' (ambiguity) scaffold?='scaffold'
	 *     validate=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     validate=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     validate=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     validate=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     validate=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     validate=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     validate=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validate=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     validate=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validate=STRING (ambiguity) '}' (rule end)
	 *     validate=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     validate=STRING (ambiguity) attributes+=Attribute
	 *     validate=STRING (ambiguity) cache?='cache'
	 *     validate=STRING (ambiguity) gapClass?='gap'
	 *     validate=STRING (ambiguity) noGapClass?='nogap'
	 *     validate=STRING (ambiguity) operations+=DomainObjectOperation
	 *     validate=STRING (ambiguity) persistent?='persistent'
	 *     validate=STRING (ambiguity) references+=Reference
	 *     validate=STRING (ambiguity) repository=Repository
	 *     validate=STRING (ambiguity) scaffold?='scaffold'
	 */
	protected void emit_CommandEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     dependencies+=Dependency 'unmarshall to' (ambiguity) messageRoot=[DomainObject|ID]
	 *     hint=STRING 'unmarshall to' (ambiguity) messageRoot=[DomainObject|ID]
	 *     name=ID '{' 'unmarshall to' (ambiguity) messageRoot=[DomainObject|ID]
	 */
	protected void emit_Consumer_CommercialAtKeyword_6_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'queueName' | 'topicName'
	 *
	 * This ambiguous syntax occurs at:
	 *     channel=ChannelIdentifier (ambiguity) '=' channel=ChannelIdentifier
	 *     dependencies+=Dependency (ambiguity) '=' channel=ChannelIdentifier
	 *     hint=STRING (ambiguity) '=' channel=ChannelIdentifier
	 *     messageRoot=[DomainObject|ID] (ambiguity) '=' channel=ChannelIdentifier
	 *     name=ID '{' (ambiguity) '=' channel=ChannelIdentifier
	 *     subscribe=Subscribe (ambiguity) '=' channel=ChannelIdentifier
	 */
	protected void emit_Consumer_QueueNameKeyword_7_0_0_0_or_TopicNameKeyword_7_0_0_1(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'ContextMap' OPEN 'type' (ambiguity) type=ContextMapType
	 *     name=ID OPEN 'type' (ambiguity) type=ContextMapType
	 *     state=ContextMapState 'type' (ambiguity) type=ContextMapType
	 *     type=ContextMapType 'type' (ambiguity) type=ContextMapType
	 */
	protected void emit_ContextMap_EqualsSignKeyword_4_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'ContextMap' OPEN 'state' (ambiguity) state=ContextMapState
	 *     name=ID OPEN 'state' (ambiguity) state=ContextMapState
	 *     state=ContextMapState 'state' (ambiguity) state=ContextMapState
	 *     type=ContextMapType 'state' (ambiguity) state=ContextMapState
	 */
	protected void emit_ContextMap_EqualsSignKeyword_4_1_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     downstreamGovernanceRights=DownstreamGovernanceRights 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     exposedAggregatesComment=SL_COMMENT 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     implementationTechnology=STRING 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     name=ID OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     upstream=[BoundedContext|ID] OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     upstreamExposedAggregates+=[Aggregate|ID] 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 */
	protected void emit_CustomerSupplierRelationship_EqualsSignKeyword_2_1_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] OPEN 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     downstreamGovernanceRights=DownstreamGovernanceRights 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     exposedAggregatesComment=SL_COMMENT 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     implementationTechnology=STRING 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     name=ID OPEN 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     upstream=[BoundedContext|ID] OPEN 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     upstreamExposedAggregates+=[Aggregate|ID] 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 */
	protected void emit_CustomerSupplierRelationship_EqualsSignKeyword_2_1_1_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] OPEN 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     downstreamGovernanceRights=DownstreamGovernanceRights 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     exposedAggregatesComment=SL_COMMENT 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     implementationTechnology=STRING 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     name=ID OPEN 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     upstream=[BoundedContext|ID] OPEN 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     upstreamExposedAggregates+=[Aggregate|ID] 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 */
	protected void emit_CustomerSupplierRelationship_EqualsSignKeyword_2_1_2_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('D' ',')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] '[' ('U' ',')? 'S' ']' '->' '[' (ambiguity) 'C' ',' downstreamRoles+=DownstreamRole
	 *     upstream=[BoundedContext|ID] '[' ('U' ',')? 'S' ']' '->' '[' (ambiguity) 'C' ']' downstream=[BoundedContext|ID]
	 *     upstreamRoles+=UpstreamRole ']' '->' '[' (ambiguity) 'C' ',' downstreamRoles+=DownstreamRole
	 *     upstreamRoles+=UpstreamRole ']' '->' '[' (ambiguity) 'C' ']' downstream=[BoundedContext|ID]
	 */
	protected void emit_CustomerSupplierRelationship___DKeyword_0_0_8_0_CommaKeyword_0_0_8_1__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('D' ',')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] '[' (ambiguity) 'C' ',' downstreamRoles+=DownstreamRole
	 *     downstream=[BoundedContext|ID] '[' (ambiguity) 'C' ']' '<-' '[' ('U' ',')? 'S' ',' upstreamRoles+=UpstreamRole
	 *     downstream=[BoundedContext|ID] '[' (ambiguity) 'C' ']' '<-' '[' ('U' ',')? 'S' ']' upstream=[BoundedContext|ID]
	 */
	protected void emit_CustomerSupplierRelationship___DKeyword_0_1_2_0_CommaKeyword_0_1_2_1__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] (ambiguity) 'Customer-Supplier' '[' upstreamRoles+=UpstreamRole
	 *     downstream=[BoundedContext|ID] (ambiguity) 'Customer-Supplier' ('[' ']')? upstream=[BoundedContext|ID]
	 */
	protected void emit_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_1_0_RightSquareBracketKeyword_0_2_1_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] ('[' ']')? 'Customer-Supplier' (ambiguity) upstream=[BoundedContext|ID]
	 *     downstreamRoles+=DownstreamRole ']' 'Customer-Supplier' (ambiguity) upstream=[BoundedContext|ID]
	 */
	protected void emit_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_2_3_0_RightSquareBracketKeyword_0_2_3_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] (ambiguity) 'Supplier-Customer' '[' downstreamRoles+=DownstreamRole
	 *     upstream=[BoundedContext|ID] (ambiguity) 'Supplier-Customer' ('[' ']')? downstream=[BoundedContext|ID]
	 */
	protected void emit_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_1_0_RightSquareBracketKeyword_0_3_1_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] ('[' ']')? 'Supplier-Customer' (ambiguity) downstream=[BoundedContext|ID]
	 *     upstreamRoles+=UpstreamRole ']' 'Supplier-Customer' (ambiguity) downstream=[BoundedContext|ID]
	 */
	protected void emit_CustomerSupplierRelationship___LeftSquareBracketKeyword_0_3_3_0_RightSquareBracketKeyword_0_3_3_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] (ambiguity) (rule end)
	 *     name=ID (ambiguity) (rule end)
	 *     upstream=[BoundedContext|ID] (ambiguity) (rule end)
	 */
	protected void emit_CustomerSupplierRelationship___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('U' ',')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] '[' (ambiguity) 'S' ',' upstreamRoles+=UpstreamRole
	 *     upstream=[BoundedContext|ID] '[' (ambiguity) 'S' ']' '->' '[' ('D' ',')? 'C' ',' downstreamRoles+=DownstreamRole
	 *     upstream=[BoundedContext|ID] '[' (ambiguity) 'S' ']' '->' '[' ('D' ',')? 'C' ']' downstream=[BoundedContext|ID]
	 */
	protected void emit_CustomerSupplierRelationship___UKeyword_0_0_2_0_CommaKeyword_0_0_2_1__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('U' ',')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] '[' ('D' ',')? 'C' ']' '<-' '[' (ambiguity) 'S' ',' upstreamRoles+=UpstreamRole
	 *     downstream=[BoundedContext|ID] '[' ('D' ',')? 'C' ']' '<-' '[' (ambiguity) 'S' ']' upstream=[BoundedContext|ID]
	 *     downstreamRoles+=DownstreamRole ']' '<-' '[' (ambiguity) 'S' ',' upstreamRoles+=UpstreamRole
	 *     downstreamRoles+=DownstreamRole ']' '<-' '[' (ambiguity) 'S' ']' upstream=[BoundedContext|ID]
	 */
	protected void emit_CustomerSupplierRelationship___UKeyword_0_1_8_0_CommaKeyword_0_1_8_1__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     extends=[DataTransferObject|ID] (ambiguity) (rule end)
	 *     extendsName=JavaIdentifier (ambiguity) (rule end)
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_DataTransferObject___LeftCurlyBracketKeyword_6_0_RightCurlyBracketKeyword_6_4__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '>' | 'inject'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '@' dependency=[ServiceRepositoryOption|ID]
	 *     (rule start) (ambiguity) name=ID
	 */
	protected void emit_Dependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     extends=[DomainEvent|ID] 'with' (ambiguity) traits+=[Trait|ID]
	 *     extendsName=JavaIdentifier 'with' (ambiguity) traits+=[Trait|ID]
	 *     name=ID 'with' (ambiguity) traits+=[Trait|ID]
	 *     traits+=[Trait|ID] 'with' (ambiguity) traits+=[Trait|ID]
	 */
	protected void emit_DomainEvent_CommercialAtKeyword_6_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     aggregateRoot?='aggregateRoot' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     belongsTo=[DomainObject|ID] (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     cache?='cache' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     databaseTable=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorColumn=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorLength=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorType=DiscriminatorType (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorValue=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     extends=[DomainEvent|ID] '{' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     extendsName=JavaIdentifier '{' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     gapClass?='gap' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     hint=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     inheritanceType=InheritanceType (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     name=ID '{' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     noGapClass?='nogap' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     package=JavaIdentifier (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     persistent?='persistent' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     scaffold?='scaffold' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     traits+=[Trait|ID] '{' (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     validate=STRING (NOT 'cache')* 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 */
	protected void emit_DomainEvent_CommercialAtKeyword_7_2_13_1_0_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' (NOT 'cache')* '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     extends=[DomainEvent|ID] (ambiguity) (rule end)
	 *     extendsName=JavaIdentifier (ambiguity) (rule end)
	 *     name=ID (ambiguity) (rule end)
	 *     traits+=[Trait|ID] (ambiguity) (rule end)
	 */
	protected void emit_DomainEvent___LeftCurlyBracketKeyword_7_0___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a_RightCurlyBracketKeyword_7_5__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (NOT 'cache')*
	 *
	 * This ambiguous syntax occurs at:
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'hint' '=' hint=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'validate' '=' validate=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) '}' (rule end)
	 *     aggregateRoot?='aggregateRoot' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) attributes+=Attribute
	 *     aggregateRoot?='aggregateRoot' (ambiguity) cache?='cache'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) gapClass?='gap'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) noGapClass?='nogap'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) operations+=DomainObjectOperation
	 *     aggregateRoot?='aggregateRoot' (ambiguity) persistent?='persistent'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) references+=Reference
	 *     aggregateRoot?='aggregateRoot' (ambiguity) repository=Repository
	 *     aggregateRoot?='aggregateRoot' (ambiguity) scaffold?='scaffold'
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'hint' '=' hint=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'validate' '=' validate=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) '}' (rule end)
	 *     belongsTo=[DomainObject|ID] (ambiguity) aggregateRoot?='aggregateRoot'
	 *     belongsTo=[DomainObject|ID] (ambiguity) attributes+=Attribute
	 *     belongsTo=[DomainObject|ID] (ambiguity) cache?='cache'
	 *     belongsTo=[DomainObject|ID] (ambiguity) gapClass?='gap'
	 *     belongsTo=[DomainObject|ID] (ambiguity) noGapClass?='nogap'
	 *     belongsTo=[DomainObject|ID] (ambiguity) operations+=DomainObjectOperation
	 *     belongsTo=[DomainObject|ID] (ambiguity) persistent?='persistent'
	 *     belongsTo=[DomainObject|ID] (ambiguity) references+=Reference
	 *     belongsTo=[DomainObject|ID] (ambiguity) repository=Repository
	 *     belongsTo=[DomainObject|ID] (ambiguity) scaffold?='scaffold'
	 *     cache?='cache' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     cache?='cache' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     cache?='cache' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     cache?='cache' (ambiguity) 'hint' '=' hint=STRING
	 *     cache?='cache' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     cache?='cache' (ambiguity) 'validate' '=' validate=STRING
	 *     cache?='cache' (ambiguity) '}' (rule end)
	 *     cache?='cache' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     cache?='cache' (ambiguity) attributes+=Attribute
	 *     cache?='cache' (ambiguity) cache?='cache'
	 *     cache?='cache' (ambiguity) gapClass?='gap'
	 *     cache?='cache' (ambiguity) noGapClass?='nogap'
	 *     cache?='cache' (ambiguity) operations+=DomainObjectOperation
	 *     cache?='cache' (ambiguity) persistent?='persistent'
	 *     cache?='cache' (ambiguity) references+=Reference
	 *     cache?='cache' (ambiguity) repository=Repository
	 *     cache?='cache' (ambiguity) scaffold?='scaffold'
	 *     databaseTable=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     databaseTable=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     databaseTable=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     databaseTable=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     databaseTable=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     databaseTable=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     databaseTable=STRING (ambiguity) '}' (rule end)
	 *     databaseTable=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     databaseTable=STRING (ambiguity) attributes+=Attribute
	 *     databaseTable=STRING (ambiguity) cache?='cache'
	 *     databaseTable=STRING (ambiguity) gapClass?='gap'
	 *     databaseTable=STRING (ambiguity) noGapClass?='nogap'
	 *     databaseTable=STRING (ambiguity) operations+=DomainObjectOperation
	 *     databaseTable=STRING (ambiguity) persistent?='persistent'
	 *     databaseTable=STRING (ambiguity) references+=Reference
	 *     databaseTable=STRING (ambiguity) repository=Repository
	 *     databaseTable=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorColumn=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorColumn=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorColumn=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorColumn=STRING (ambiguity) '}' (rule end)
	 *     discriminatorColumn=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorColumn=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorColumn=STRING (ambiguity) cache?='cache'
	 *     discriminatorColumn=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorColumn=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorColumn=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorColumn=STRING (ambiguity) persistent?='persistent'
	 *     discriminatorColumn=STRING (ambiguity) references+=Reference
	 *     discriminatorColumn=STRING (ambiguity) repository=Repository
	 *     discriminatorColumn=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorLength=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorLength=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorLength=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorLength=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorLength=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorLength=STRING (ambiguity) '}' (rule end)
	 *     discriminatorLength=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorLength=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorLength=STRING (ambiguity) cache?='cache'
	 *     discriminatorLength=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorLength=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorLength=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorLength=STRING (ambiguity) persistent?='persistent'
	 *     discriminatorLength=STRING (ambiguity) references+=Reference
	 *     discriminatorLength=STRING (ambiguity) repository=Repository
	 *     discriminatorLength=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorType=DiscriminatorType (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorType=DiscriminatorType (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorType=DiscriminatorType (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) '}' (rule end)
	 *     discriminatorType=DiscriminatorType (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorType=DiscriminatorType (ambiguity) attributes+=Attribute
	 *     discriminatorType=DiscriminatorType (ambiguity) cache?='cache'
	 *     discriminatorType=DiscriminatorType (ambiguity) gapClass?='gap'
	 *     discriminatorType=DiscriminatorType (ambiguity) noGapClass?='nogap'
	 *     discriminatorType=DiscriminatorType (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorType=DiscriminatorType (ambiguity) persistent?='persistent'
	 *     discriminatorType=DiscriminatorType (ambiguity) references+=Reference
	 *     discriminatorType=DiscriminatorType (ambiguity) repository=Repository
	 *     discriminatorType=DiscriminatorType (ambiguity) scaffold?='scaffold'
	 *     discriminatorValue=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorValue=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorValue=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorValue=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorValue=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorValue=STRING (ambiguity) '}' (rule end)
	 *     discriminatorValue=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorValue=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorValue=STRING (ambiguity) cache?='cache'
	 *     discriminatorValue=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorValue=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorValue=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorValue=STRING (ambiguity) persistent?='persistent'
	 *     discriminatorValue=STRING (ambiguity) references+=Reference
	 *     discriminatorValue=STRING (ambiguity) repository=Repository
	 *     discriminatorValue=STRING (ambiguity) scaffold?='scaffold'
	 *     extends=[DomainEvent|ID] '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     extends=[DomainEvent|ID] '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     extends=[DomainEvent|ID] '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     extends=[DomainEvent|ID] '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     extends=[DomainEvent|ID] '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     extends=[DomainEvent|ID] '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     extends=[DomainEvent|ID] '{' (ambiguity) 'hint' '=' hint=STRING
	 *     extends=[DomainEvent|ID] '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     extends=[DomainEvent|ID] '{' (ambiguity) 'validate' '=' validate=STRING
	 *     extends=[DomainEvent|ID] '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     extends=[DomainEvent|ID] '{' (ambiguity) attributes+=Attribute
	 *     extends=[DomainEvent|ID] '{' (ambiguity) cache?='cache'
	 *     extends=[DomainEvent|ID] '{' (ambiguity) gapClass?='gap'
	 *     extends=[DomainEvent|ID] '{' (ambiguity) noGapClass?='nogap'
	 *     extends=[DomainEvent|ID] '{' (ambiguity) operations+=DomainObjectOperation
	 *     extends=[DomainEvent|ID] '{' (ambiguity) persistent?='persistent'
	 *     extends=[DomainEvent|ID] '{' (ambiguity) references+=Reference
	 *     extends=[DomainEvent|ID] '{' (ambiguity) repository=Repository
	 *     extends=[DomainEvent|ID] '{' (ambiguity) scaffold?='scaffold'
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'hint' '=' hint=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'validate' '=' validate=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     extendsName=JavaIdentifier '{' (ambiguity) attributes+=Attribute
	 *     extendsName=JavaIdentifier '{' (ambiguity) cache?='cache'
	 *     extendsName=JavaIdentifier '{' (ambiguity) gapClass?='gap'
	 *     extendsName=JavaIdentifier '{' (ambiguity) noGapClass?='nogap'
	 *     extendsName=JavaIdentifier '{' (ambiguity) operations+=DomainObjectOperation
	 *     extendsName=JavaIdentifier '{' (ambiguity) persistent?='persistent'
	 *     extendsName=JavaIdentifier '{' (ambiguity) references+=Reference
	 *     extendsName=JavaIdentifier '{' (ambiguity) repository=Repository
	 *     extendsName=JavaIdentifier '{' (ambiguity) scaffold?='scaffold'
	 *     gapClass?='gap' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     gapClass?='gap' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     gapClass?='gap' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     gapClass?='gap' (ambiguity) 'hint' '=' hint=STRING
	 *     gapClass?='gap' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     gapClass?='gap' (ambiguity) 'validate' '=' validate=STRING
	 *     gapClass?='gap' (ambiguity) '}' (rule end)
	 *     gapClass?='gap' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     gapClass?='gap' (ambiguity) attributes+=Attribute
	 *     gapClass?='gap' (ambiguity) cache?='cache'
	 *     gapClass?='gap' (ambiguity) gapClass?='gap'
	 *     gapClass?='gap' (ambiguity) noGapClass?='nogap'
	 *     gapClass?='gap' (ambiguity) operations+=DomainObjectOperation
	 *     gapClass?='gap' (ambiguity) persistent?='persistent'
	 *     gapClass?='gap' (ambiguity) references+=Reference
	 *     gapClass?='gap' (ambiguity) repository=Repository
	 *     gapClass?='gap' (ambiguity) scaffold?='scaffold'
	 *     hint=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     hint=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     hint=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     hint=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     hint=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     hint=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     hint=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     hint=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     hint=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     hint=STRING (ambiguity) '}' (rule end)
	 *     hint=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     hint=STRING (ambiguity) attributes+=Attribute
	 *     hint=STRING (ambiguity) cache?='cache'
	 *     hint=STRING (ambiguity) gapClass?='gap'
	 *     hint=STRING (ambiguity) noGapClass?='nogap'
	 *     hint=STRING (ambiguity) operations+=DomainObjectOperation
	 *     hint=STRING (ambiguity) persistent?='persistent'
	 *     hint=STRING (ambiguity) references+=Reference
	 *     hint=STRING (ambiguity) repository=Repository
	 *     hint=STRING (ambiguity) scaffold?='scaffold'
	 *     inheritanceType=InheritanceType (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     inheritanceType=InheritanceType (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'hint' '=' hint=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     inheritanceType=InheritanceType (ambiguity) 'validate' '=' validate=STRING
	 *     inheritanceType=InheritanceType (ambiguity) '}' (rule end)
	 *     inheritanceType=InheritanceType (ambiguity) aggregateRoot?='aggregateRoot'
	 *     inheritanceType=InheritanceType (ambiguity) attributes+=Attribute
	 *     inheritanceType=InheritanceType (ambiguity) cache?='cache'
	 *     inheritanceType=InheritanceType (ambiguity) gapClass?='gap'
	 *     inheritanceType=InheritanceType (ambiguity) noGapClass?='nogap'
	 *     inheritanceType=InheritanceType (ambiguity) operations+=DomainObjectOperation
	 *     inheritanceType=InheritanceType (ambiguity) persistent?='persistent'
	 *     inheritanceType=InheritanceType (ambiguity) references+=Reference
	 *     inheritanceType=InheritanceType (ambiguity) repository=Repository
	 *     inheritanceType=InheritanceType (ambiguity) scaffold?='scaffold'
	 *     name=ID '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     name=ID '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     name=ID '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     name=ID '{' (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     name=ID '{' (ambiguity) 'validate' '=' validate=STRING
	 *     name=ID '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     name=ID '{' (ambiguity) attributes+=Attribute
	 *     name=ID '{' (ambiguity) cache?='cache'
	 *     name=ID '{' (ambiguity) gapClass?='gap'
	 *     name=ID '{' (ambiguity) noGapClass?='nogap'
	 *     name=ID '{' (ambiguity) operations+=DomainObjectOperation
	 *     name=ID '{' (ambiguity) persistent?='persistent'
	 *     name=ID '{' (ambiguity) references+=Reference
	 *     name=ID '{' (ambiguity) repository=Repository
	 *     name=ID '{' (ambiguity) scaffold?='scaffold'
	 *     noGapClass?='nogap' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     noGapClass?='nogap' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     noGapClass?='nogap' (ambiguity) 'hint' '=' hint=STRING
	 *     noGapClass?='nogap' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     noGapClass?='nogap' (ambiguity) 'validate' '=' validate=STRING
	 *     noGapClass?='nogap' (ambiguity) '}' (rule end)
	 *     noGapClass?='nogap' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     noGapClass?='nogap' (ambiguity) attributes+=Attribute
	 *     noGapClass?='nogap' (ambiguity) cache?='cache'
	 *     noGapClass?='nogap' (ambiguity) gapClass?='gap'
	 *     noGapClass?='nogap' (ambiguity) noGapClass?='nogap'
	 *     noGapClass?='nogap' (ambiguity) operations+=DomainObjectOperation
	 *     noGapClass?='nogap' (ambiguity) persistent?='persistent'
	 *     noGapClass?='nogap' (ambiguity) references+=Reference
	 *     noGapClass?='nogap' (ambiguity) repository=Repository
	 *     noGapClass?='nogap' (ambiguity) scaffold?='scaffold'
	 *     package=JavaIdentifier (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     package=JavaIdentifier (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     package=JavaIdentifier (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     package=JavaIdentifier (ambiguity) 'hint' '=' hint=STRING
	 *     package=JavaIdentifier (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     package=JavaIdentifier (ambiguity) 'validate' '=' validate=STRING
	 *     package=JavaIdentifier (ambiguity) '}' (rule end)
	 *     package=JavaIdentifier (ambiguity) aggregateRoot?='aggregateRoot'
	 *     package=JavaIdentifier (ambiguity) attributes+=Attribute
	 *     package=JavaIdentifier (ambiguity) cache?='cache'
	 *     package=JavaIdentifier (ambiguity) gapClass?='gap'
	 *     package=JavaIdentifier (ambiguity) noGapClass?='nogap'
	 *     package=JavaIdentifier (ambiguity) operations+=DomainObjectOperation
	 *     package=JavaIdentifier (ambiguity) persistent?='persistent'
	 *     package=JavaIdentifier (ambiguity) references+=Reference
	 *     package=JavaIdentifier (ambiguity) repository=Repository
	 *     package=JavaIdentifier (ambiguity) scaffold?='scaffold'
	 *     persistent?='persistent' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     persistent?='persistent' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     persistent?='persistent' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     persistent?='persistent' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     persistent?='persistent' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     persistent?='persistent' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     persistent?='persistent' (ambiguity) 'hint' '=' hint=STRING
	 *     persistent?='persistent' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     persistent?='persistent' (ambiguity) 'validate' '=' validate=STRING
	 *     persistent?='persistent' (ambiguity) '}' (rule end)
	 *     persistent?='persistent' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     persistent?='persistent' (ambiguity) attributes+=Attribute
	 *     persistent?='persistent' (ambiguity) cache?='cache'
	 *     persistent?='persistent' (ambiguity) gapClass?='gap'
	 *     persistent?='persistent' (ambiguity) noGapClass?='nogap'
	 *     persistent?='persistent' (ambiguity) operations+=DomainObjectOperation
	 *     persistent?='persistent' (ambiguity) persistent?='persistent'
	 *     persistent?='persistent' (ambiguity) references+=Reference
	 *     persistent?='persistent' (ambiguity) repository=Repository
	 *     persistent?='persistent' (ambiguity) scaffold?='scaffold'
	 *     scaffold?='scaffold' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     scaffold?='scaffold' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     scaffold?='scaffold' (ambiguity) 'hint' '=' hint=STRING
	 *     scaffold?='scaffold' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     scaffold?='scaffold' (ambiguity) 'validate' '=' validate=STRING
	 *     scaffold?='scaffold' (ambiguity) '}' (rule end)
	 *     scaffold?='scaffold' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     scaffold?='scaffold' (ambiguity) attributes+=Attribute
	 *     scaffold?='scaffold' (ambiguity) cache?='cache'
	 *     scaffold?='scaffold' (ambiguity) gapClass?='gap'
	 *     scaffold?='scaffold' (ambiguity) noGapClass?='nogap'
	 *     scaffold?='scaffold' (ambiguity) operations+=DomainObjectOperation
	 *     scaffold?='scaffold' (ambiguity) persistent?='persistent'
	 *     scaffold?='scaffold' (ambiguity) references+=Reference
	 *     scaffold?='scaffold' (ambiguity) repository=Repository
	 *     scaffold?='scaffold' (ambiguity) scaffold?='scaffold'
	 *     traits+=[Trait|ID] '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     traits+=[Trait|ID] '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'hint' '=' hint=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     traits+=[Trait|ID] '{' (ambiguity) 'validate' '=' validate=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     traits+=[Trait|ID] '{' (ambiguity) attributes+=Attribute
	 *     traits+=[Trait|ID] '{' (ambiguity) cache?='cache'
	 *     traits+=[Trait|ID] '{' (ambiguity) gapClass?='gap'
	 *     traits+=[Trait|ID] '{' (ambiguity) noGapClass?='nogap'
	 *     traits+=[Trait|ID] '{' (ambiguity) operations+=DomainObjectOperation
	 *     traits+=[Trait|ID] '{' (ambiguity) persistent?='persistent'
	 *     traits+=[Trait|ID] '{' (ambiguity) references+=Reference
	 *     traits+=[Trait|ID] '{' (ambiguity) repository=Repository
	 *     traits+=[Trait|ID] '{' (ambiguity) scaffold?='scaffold'
	 *     validate=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     validate=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     validate=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     validate=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     validate=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     validate=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     validate=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validate=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     validate=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validate=STRING (ambiguity) '}' (rule end)
	 *     validate=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     validate=STRING (ambiguity) attributes+=Attribute
	 *     validate=STRING (ambiguity) cache?='cache'
	 *     validate=STRING (ambiguity) gapClass?='gap'
	 *     validate=STRING (ambiguity) noGapClass?='nogap'
	 *     validate=STRING (ambiguity) operations+=DomainObjectOperation
	 *     validate=STRING (ambiguity) persistent?='persistent'
	 *     validate=STRING (ambiguity) references+=Reference
	 *     validate=STRING (ambiguity) repository=Repository
	 *     validate=STRING (ambiguity) scaffold?='scaffold'
	 */
	protected void emit_DomainEvent___NOTTerminalRuleCall_7_2_0_1_0_CacheKeyword_7_2_0_1_1__a(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'def' | '*'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) 'void'? name=ID
	 *     (rule start) (ambiguity) abstract?='abstract'
	 *     (rule start) (ambiguity) returnType=ComplexType
	 *     (rule start) (ambiguity) visibility=Visibility
	 *     doc=STRING (ambiguity) 'void'? name=ID
	 *     doc=STRING (ambiguity) abstract?='abstract'
	 *     doc=STRING (ambiguity) returnType=ComplexType
	 *     doc=STRING (ambiguity) visibility=Visibility
	 */
	protected void emit_DomainObjectOperation_AsteriskKeyword_1_1_or_DefKeyword_1_0(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'void'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) ('def' | '*') (ambiguity) name=ID
	 *     abstract?='abstract' (ambiguity) name=ID
	 *     doc=STRING ('def' | '*') (ambiguity) name=ID
	 *     visibility=Visibility (ambiguity) name=ID
	 */
	protected void emit_DomainObjectOperation_VoidKeyword_4_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) ';' (rule end)
	 *     name=ID (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID (ambiguity) 'throws' throws=ThrowsIdentifier
	 */
	protected void emit_DomainObjectOperation___LeftParenthesisKeyword_6_0_RightParenthesisKeyword_6_3__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     domainVisionStatement=STRING 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     name=ID OPEN 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     subdomains+=Subdomain 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 */
	protected void emit_Domain_EqualsSignKeyword_2_1_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_Domain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '>'?
	 *
	 * This ambiguous syntax occurs at:
	 *     type=Type (ambiguity) name=ID
	 */
	protected void emit_DtoAttribute_GreaterThanSignKeyword_4_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     nullable?='nullable'
	 *
	 * This ambiguous syntax occurs at:
	 *     (ambiguity)
	 */
	protected void emit_DtoAttribute_NullableNullableKeyword_6_3_0_0_0(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ';'?
	 *
	 * This ambiguous syntax occurs at:
	 *     assertFalse?='assertFalse' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     assertFalseMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     assertTrue?='assertTrue' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     assertTrueMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     creditCardNumber?='creditCardNumber' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     creditCardNumberMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     decimalMax=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     decimalMin=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     digits=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     email?='email' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     emailMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     future?='future' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     futureMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     hint=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     key?='key' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     length=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     max=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     min=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     name=ID ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notBlank?='notBlank' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notBlankMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notChangeable?=NOT 'changeable' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notEmpty?='notEmpty' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notEmptyMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     nullable?='nullable' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     nullableMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     past?='past' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     pastMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     pattern=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     range=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     required?='required' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     scriptAssert=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     size=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     transient?='transient' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     url=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     validate=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 */
	protected void emit_DtoAttribute_SemicolonKeyword_7_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('changeable'? (NOT 'required')? (NOT 'nullable')?)+
	 *
	 * This ambiguous syntax occurs at:
	 *     assertFalse?='assertFalse' (ambiguity)
	 *     assertFalse?='assertFalse' (ambiguity) ';'? (rule end)
	 *     assertFalse?='assertFalse' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'digits' '=' digits=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'hint' '=' hint=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'length' '=' length=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'max' '=' max=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'min' '=' min=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'pattern' '=' pattern=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'range' '=' range=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'size' '=' size=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'url' '=' url=STRING
	 *     assertFalse?='assertFalse' (ambiguity) 'validate' '=' validate=STRING
	 *     assertFalse?='assertFalse' (ambiguity) assertFalse?='assertFalse'
	 *     assertFalse?='assertFalse' (ambiguity) assertTrue?='assertTrue'
	 *     assertFalse?='assertFalse' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     assertFalse?='assertFalse' (ambiguity) email?='email'
	 *     assertFalse?='assertFalse' (ambiguity) future?='future'
	 *     assertFalse?='assertFalse' (ambiguity) key?='key'
	 *     assertFalse?='assertFalse' (ambiguity) notBlank?='notBlank'
	 *     assertFalse?='assertFalse' (ambiguity) notChangeable?=NOT
	 *     assertFalse?='assertFalse' (ambiguity) notEmpty?='notEmpty'
	 *     assertFalse?='assertFalse' (ambiguity) nullable?='nullable'
	 *     assertFalse?='assertFalse' (ambiguity) past?='past'
	 *     assertFalse?='assertFalse' (ambiguity) required?='required'
	 *     assertFalse?='assertFalse' (ambiguity) transient?='transient'
	 *     assertFalseMessage=STRING (ambiguity)
	 *     assertFalseMessage=STRING (ambiguity) ';'? (rule end)
	 *     assertFalseMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     assertFalseMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     assertFalseMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     assertFalseMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     assertFalseMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     assertFalseMessage=STRING (ambiguity) email?='email'
	 *     assertFalseMessage=STRING (ambiguity) future?='future'
	 *     assertFalseMessage=STRING (ambiguity) key?='key'
	 *     assertFalseMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     assertFalseMessage=STRING (ambiguity) notChangeable?=NOT
	 *     assertFalseMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     assertFalseMessage=STRING (ambiguity) nullable?='nullable'
	 *     assertFalseMessage=STRING (ambiguity) past?='past'
	 *     assertFalseMessage=STRING (ambiguity) required?='required'
	 *     assertFalseMessage=STRING (ambiguity) transient?='transient'
	 *     assertTrue?='assertTrue' (ambiguity)
	 *     assertTrue?='assertTrue' (ambiguity) ';'? (rule end)
	 *     assertTrue?='assertTrue' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'digits' '=' digits=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'hint' '=' hint=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'length' '=' length=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'max' '=' max=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'min' '=' min=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'pattern' '=' pattern=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'range' '=' range=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'size' '=' size=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'url' '=' url=STRING
	 *     assertTrue?='assertTrue' (ambiguity) 'validate' '=' validate=STRING
	 *     assertTrue?='assertTrue' (ambiguity) assertFalse?='assertFalse'
	 *     assertTrue?='assertTrue' (ambiguity) assertTrue?='assertTrue'
	 *     assertTrue?='assertTrue' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     assertTrue?='assertTrue' (ambiguity) email?='email'
	 *     assertTrue?='assertTrue' (ambiguity) future?='future'
	 *     assertTrue?='assertTrue' (ambiguity) key?='key'
	 *     assertTrue?='assertTrue' (ambiguity) notBlank?='notBlank'
	 *     assertTrue?='assertTrue' (ambiguity) notChangeable?=NOT
	 *     assertTrue?='assertTrue' (ambiguity) notEmpty?='notEmpty'
	 *     assertTrue?='assertTrue' (ambiguity) nullable?='nullable'
	 *     assertTrue?='assertTrue' (ambiguity) past?='past'
	 *     assertTrue?='assertTrue' (ambiguity) required?='required'
	 *     assertTrue?='assertTrue' (ambiguity) transient?='transient'
	 *     assertTrueMessage=STRING (ambiguity)
	 *     assertTrueMessage=STRING (ambiguity) ';'? (rule end)
	 *     assertTrueMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     assertTrueMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     assertTrueMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     assertTrueMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     assertTrueMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     assertTrueMessage=STRING (ambiguity) email?='email'
	 *     assertTrueMessage=STRING (ambiguity) future?='future'
	 *     assertTrueMessage=STRING (ambiguity) key?='key'
	 *     assertTrueMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     assertTrueMessage=STRING (ambiguity) notChangeable?=NOT
	 *     assertTrueMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     assertTrueMessage=STRING (ambiguity) nullable?='nullable'
	 *     assertTrueMessage=STRING (ambiguity) past?='past'
	 *     assertTrueMessage=STRING (ambiguity) required?='required'
	 *     assertTrueMessage=STRING (ambiguity) transient?='transient'
	 *     creditCardNumber?='creditCardNumber' (ambiguity)
	 *     creditCardNumber?='creditCardNumber' (ambiguity) ';'? (rule end)
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'digits' '=' digits=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'hint' '=' hint=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'length' '=' length=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'max' '=' max=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'min' '=' min=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'pattern' '=' pattern=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'range' '=' range=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'size' '=' size=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'url' '=' url=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) 'validate' '=' validate=STRING
	 *     creditCardNumber?='creditCardNumber' (ambiguity) assertFalse?='assertFalse'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) assertTrue?='assertTrue'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) email?='email'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) future?='future'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) key?='key'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) notBlank?='notBlank'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) notChangeable?=NOT
	 *     creditCardNumber?='creditCardNumber' (ambiguity) notEmpty?='notEmpty'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) nullable?='nullable'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) past?='past'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) required?='required'
	 *     creditCardNumber?='creditCardNumber' (ambiguity) transient?='transient'
	 *     creditCardNumberMessage=STRING (ambiguity)
	 *     creditCardNumberMessage=STRING (ambiguity) ';'? (rule end)
	 *     creditCardNumberMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     creditCardNumberMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     creditCardNumberMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     creditCardNumberMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     creditCardNumberMessage=STRING (ambiguity) email?='email'
	 *     creditCardNumberMessage=STRING (ambiguity) future?='future'
	 *     creditCardNumberMessage=STRING (ambiguity) key?='key'
	 *     creditCardNumberMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     creditCardNumberMessage=STRING (ambiguity) notChangeable?=NOT
	 *     creditCardNumberMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     creditCardNumberMessage=STRING (ambiguity) nullable?='nullable'
	 *     creditCardNumberMessage=STRING (ambiguity) past?='past'
	 *     creditCardNumberMessage=STRING (ambiguity) required?='required'
	 *     creditCardNumberMessage=STRING (ambiguity) transient?='transient'
	 *     decimalMax=STRING (ambiguity)
	 *     decimalMax=STRING (ambiguity) ';'? (rule end)
	 *     decimalMax=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     decimalMax=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     decimalMax=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     decimalMax=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     decimalMax=STRING (ambiguity) 'length' '=' length=STRING
	 *     decimalMax=STRING (ambiguity) 'max' '=' max=STRING
	 *     decimalMax=STRING (ambiguity) 'min' '=' min=STRING
	 *     decimalMax=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     decimalMax=STRING (ambiguity) 'range' '=' range=STRING
	 *     decimalMax=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     decimalMax=STRING (ambiguity) 'size' '=' size=STRING
	 *     decimalMax=STRING (ambiguity) 'url' '=' url=STRING
	 *     decimalMax=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     decimalMax=STRING (ambiguity) assertFalse?='assertFalse'
	 *     decimalMax=STRING (ambiguity) assertTrue?='assertTrue'
	 *     decimalMax=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     decimalMax=STRING (ambiguity) email?='email'
	 *     decimalMax=STRING (ambiguity) future?='future'
	 *     decimalMax=STRING (ambiguity) key?='key'
	 *     decimalMax=STRING (ambiguity) notBlank?='notBlank'
	 *     decimalMax=STRING (ambiguity) notChangeable?=NOT
	 *     decimalMax=STRING (ambiguity) notEmpty?='notEmpty'
	 *     decimalMax=STRING (ambiguity) nullable?='nullable'
	 *     decimalMax=STRING (ambiguity) past?='past'
	 *     decimalMax=STRING (ambiguity) required?='required'
	 *     decimalMax=STRING (ambiguity) transient?='transient'
	 *     decimalMin=STRING (ambiguity)
	 *     decimalMin=STRING (ambiguity) ';'? (rule end)
	 *     decimalMin=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     decimalMin=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     decimalMin=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     decimalMin=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     decimalMin=STRING (ambiguity) 'length' '=' length=STRING
	 *     decimalMin=STRING (ambiguity) 'max' '=' max=STRING
	 *     decimalMin=STRING (ambiguity) 'min' '=' min=STRING
	 *     decimalMin=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     decimalMin=STRING (ambiguity) 'range' '=' range=STRING
	 *     decimalMin=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     decimalMin=STRING (ambiguity) 'size' '=' size=STRING
	 *     decimalMin=STRING (ambiguity) 'url' '=' url=STRING
	 *     decimalMin=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     decimalMin=STRING (ambiguity) assertFalse?='assertFalse'
	 *     decimalMin=STRING (ambiguity) assertTrue?='assertTrue'
	 *     decimalMin=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     decimalMin=STRING (ambiguity) email?='email'
	 *     decimalMin=STRING (ambiguity) future?='future'
	 *     decimalMin=STRING (ambiguity) key?='key'
	 *     decimalMin=STRING (ambiguity) notBlank?='notBlank'
	 *     decimalMin=STRING (ambiguity) notChangeable?=NOT
	 *     decimalMin=STRING (ambiguity) notEmpty?='notEmpty'
	 *     decimalMin=STRING (ambiguity) nullable?='nullable'
	 *     decimalMin=STRING (ambiguity) past?='past'
	 *     decimalMin=STRING (ambiguity) required?='required'
	 *     decimalMin=STRING (ambiguity) transient?='transient'
	 *     digits=STRING (ambiguity)
	 *     digits=STRING (ambiguity) ';'? (rule end)
	 *     digits=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     digits=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     digits=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     digits=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     digits=STRING (ambiguity) 'length' '=' length=STRING
	 *     digits=STRING (ambiguity) 'max' '=' max=STRING
	 *     digits=STRING (ambiguity) 'min' '=' min=STRING
	 *     digits=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     digits=STRING (ambiguity) 'range' '=' range=STRING
	 *     digits=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     digits=STRING (ambiguity) 'size' '=' size=STRING
	 *     digits=STRING (ambiguity) 'url' '=' url=STRING
	 *     digits=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     digits=STRING (ambiguity) assertFalse?='assertFalse'
	 *     digits=STRING (ambiguity) assertTrue?='assertTrue'
	 *     digits=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     digits=STRING (ambiguity) email?='email'
	 *     digits=STRING (ambiguity) future?='future'
	 *     digits=STRING (ambiguity) key?='key'
	 *     digits=STRING (ambiguity) notBlank?='notBlank'
	 *     digits=STRING (ambiguity) notChangeable?=NOT
	 *     digits=STRING (ambiguity) notEmpty?='notEmpty'
	 *     digits=STRING (ambiguity) nullable?='nullable'
	 *     digits=STRING (ambiguity) past?='past'
	 *     digits=STRING (ambiguity) required?='required'
	 *     digits=STRING (ambiguity) transient?='transient'
	 *     email?='email' (ambiguity)
	 *     email?='email' (ambiguity) ';'? (rule end)
	 *     email?='email' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     email?='email' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     email?='email' (ambiguity) 'digits' '=' digits=STRING
	 *     email?='email' (ambiguity) 'hint' '=' hint=STRING
	 *     email?='email' (ambiguity) 'length' '=' length=STRING
	 *     email?='email' (ambiguity) 'max' '=' max=STRING
	 *     email?='email' (ambiguity) 'min' '=' min=STRING
	 *     email?='email' (ambiguity) 'pattern' '=' pattern=STRING
	 *     email?='email' (ambiguity) 'range' '=' range=STRING
	 *     email?='email' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     email?='email' (ambiguity) 'size' '=' size=STRING
	 *     email?='email' (ambiguity) 'url' '=' url=STRING
	 *     email?='email' (ambiguity) 'validate' '=' validate=STRING
	 *     email?='email' (ambiguity) assertFalse?='assertFalse'
	 *     email?='email' (ambiguity) assertTrue?='assertTrue'
	 *     email?='email' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     email?='email' (ambiguity) email?='email'
	 *     email?='email' (ambiguity) future?='future'
	 *     email?='email' (ambiguity) key?='key'
	 *     email?='email' (ambiguity) notBlank?='notBlank'
	 *     email?='email' (ambiguity) notChangeable?=NOT
	 *     email?='email' (ambiguity) notEmpty?='notEmpty'
	 *     email?='email' (ambiguity) nullable?='nullable'
	 *     email?='email' (ambiguity) past?='past'
	 *     email?='email' (ambiguity) required?='required'
	 *     email?='email' (ambiguity) transient?='transient'
	 *     emailMessage=STRING (ambiguity)
	 *     emailMessage=STRING (ambiguity) ';'? (rule end)
	 *     emailMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     emailMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     emailMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     emailMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     emailMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     emailMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     emailMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     emailMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     emailMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     emailMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     emailMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     emailMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     emailMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     emailMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     emailMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     emailMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     emailMessage=STRING (ambiguity) email?='email'
	 *     emailMessage=STRING (ambiguity) future?='future'
	 *     emailMessage=STRING (ambiguity) key?='key'
	 *     emailMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     emailMessage=STRING (ambiguity) notChangeable?=NOT
	 *     emailMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     emailMessage=STRING (ambiguity) nullable?='nullable'
	 *     emailMessage=STRING (ambiguity) past?='past'
	 *     emailMessage=STRING (ambiguity) required?='required'
	 *     emailMessage=STRING (ambiguity) transient?='transient'
	 *     future?='future' (ambiguity)
	 *     future?='future' (ambiguity) ';'? (rule end)
	 *     future?='future' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     future?='future' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     future?='future' (ambiguity) 'digits' '=' digits=STRING
	 *     future?='future' (ambiguity) 'hint' '=' hint=STRING
	 *     future?='future' (ambiguity) 'length' '=' length=STRING
	 *     future?='future' (ambiguity) 'max' '=' max=STRING
	 *     future?='future' (ambiguity) 'min' '=' min=STRING
	 *     future?='future' (ambiguity) 'pattern' '=' pattern=STRING
	 *     future?='future' (ambiguity) 'range' '=' range=STRING
	 *     future?='future' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     future?='future' (ambiguity) 'size' '=' size=STRING
	 *     future?='future' (ambiguity) 'url' '=' url=STRING
	 *     future?='future' (ambiguity) 'validate' '=' validate=STRING
	 *     future?='future' (ambiguity) assertFalse?='assertFalse'
	 *     future?='future' (ambiguity) assertTrue?='assertTrue'
	 *     future?='future' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     future?='future' (ambiguity) email?='email'
	 *     future?='future' (ambiguity) future?='future'
	 *     future?='future' (ambiguity) key?='key'
	 *     future?='future' (ambiguity) notBlank?='notBlank'
	 *     future?='future' (ambiguity) notChangeable?=NOT
	 *     future?='future' (ambiguity) notEmpty?='notEmpty'
	 *     future?='future' (ambiguity) nullable?='nullable'
	 *     future?='future' (ambiguity) past?='past'
	 *     future?='future' (ambiguity) required?='required'
	 *     future?='future' (ambiguity) transient?='transient'
	 *     futureMessage=STRING (ambiguity)
	 *     futureMessage=STRING (ambiguity) ';'? (rule end)
	 *     futureMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     futureMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     futureMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     futureMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     futureMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     futureMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     futureMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     futureMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     futureMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     futureMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     futureMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     futureMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     futureMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     futureMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     futureMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     futureMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     futureMessage=STRING (ambiguity) email?='email'
	 *     futureMessage=STRING (ambiguity) future?='future'
	 *     futureMessage=STRING (ambiguity) key?='key'
	 *     futureMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     futureMessage=STRING (ambiguity) notChangeable?=NOT
	 *     futureMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     futureMessage=STRING (ambiguity) nullable?='nullable'
	 *     futureMessage=STRING (ambiguity) past?='past'
	 *     futureMessage=STRING (ambiguity) required?='required'
	 *     futureMessage=STRING (ambiguity) transient?='transient'
	 *     hint=STRING (ambiguity)
	 *     hint=STRING (ambiguity) ';'? (rule end)
	 *     hint=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     hint=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     hint=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     hint=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     hint=STRING (ambiguity) 'length' '=' length=STRING
	 *     hint=STRING (ambiguity) 'max' '=' max=STRING
	 *     hint=STRING (ambiguity) 'min' '=' min=STRING
	 *     hint=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     hint=STRING (ambiguity) 'range' '=' range=STRING
	 *     hint=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     hint=STRING (ambiguity) 'size' '=' size=STRING
	 *     hint=STRING (ambiguity) 'url' '=' url=STRING
	 *     hint=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     hint=STRING (ambiguity) assertFalse?='assertFalse'
	 *     hint=STRING (ambiguity) assertTrue?='assertTrue'
	 *     hint=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     hint=STRING (ambiguity) email?='email'
	 *     hint=STRING (ambiguity) future?='future'
	 *     hint=STRING (ambiguity) key?='key'
	 *     hint=STRING (ambiguity) notBlank?='notBlank'
	 *     hint=STRING (ambiguity) notChangeable?=NOT
	 *     hint=STRING (ambiguity) notEmpty?='notEmpty'
	 *     hint=STRING (ambiguity) nullable?='nullable'
	 *     hint=STRING (ambiguity) past?='past'
	 *     hint=STRING (ambiguity) required?='required'
	 *     hint=STRING (ambiguity) transient?='transient'
	 *     key?='key' (ambiguity)
	 *     key?='key' (ambiguity) ';'? (rule end)
	 *     key?='key' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     key?='key' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     key?='key' (ambiguity) 'digits' '=' digits=STRING
	 *     key?='key' (ambiguity) 'hint' '=' hint=STRING
	 *     key?='key' (ambiguity) 'length' '=' length=STRING
	 *     key?='key' (ambiguity) 'max' '=' max=STRING
	 *     key?='key' (ambiguity) 'min' '=' min=STRING
	 *     key?='key' (ambiguity) 'pattern' '=' pattern=STRING
	 *     key?='key' (ambiguity) 'range' '=' range=STRING
	 *     key?='key' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     key?='key' (ambiguity) 'size' '=' size=STRING
	 *     key?='key' (ambiguity) 'url' '=' url=STRING
	 *     key?='key' (ambiguity) 'validate' '=' validate=STRING
	 *     key?='key' (ambiguity) assertFalse?='assertFalse'
	 *     key?='key' (ambiguity) assertTrue?='assertTrue'
	 *     key?='key' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     key?='key' (ambiguity) email?='email'
	 *     key?='key' (ambiguity) future?='future'
	 *     key?='key' (ambiguity) key?='key'
	 *     key?='key' (ambiguity) notBlank?='notBlank'
	 *     key?='key' (ambiguity) notChangeable?=NOT
	 *     key?='key' (ambiguity) notEmpty?='notEmpty'
	 *     key?='key' (ambiguity) nullable?='nullable'
	 *     key?='key' (ambiguity) past?='past'
	 *     key?='key' (ambiguity) required?='required'
	 *     key?='key' (ambiguity) transient?='transient'
	 *     length=STRING (ambiguity)
	 *     length=STRING (ambiguity) ';'? (rule end)
	 *     length=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     length=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     length=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     length=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     length=STRING (ambiguity) 'length' '=' length=STRING
	 *     length=STRING (ambiguity) 'max' '=' max=STRING
	 *     length=STRING (ambiguity) 'min' '=' min=STRING
	 *     length=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     length=STRING (ambiguity) 'range' '=' range=STRING
	 *     length=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     length=STRING (ambiguity) 'size' '=' size=STRING
	 *     length=STRING (ambiguity) 'url' '=' url=STRING
	 *     length=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     length=STRING (ambiguity) assertFalse?='assertFalse'
	 *     length=STRING (ambiguity) assertTrue?='assertTrue'
	 *     length=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     length=STRING (ambiguity) email?='email'
	 *     length=STRING (ambiguity) future?='future'
	 *     length=STRING (ambiguity) key?='key'
	 *     length=STRING (ambiguity) notBlank?='notBlank'
	 *     length=STRING (ambiguity) notChangeable?=NOT
	 *     length=STRING (ambiguity) notEmpty?='notEmpty'
	 *     length=STRING (ambiguity) nullable?='nullable'
	 *     length=STRING (ambiguity) past?='past'
	 *     length=STRING (ambiguity) required?='required'
	 *     length=STRING (ambiguity) transient?='transient'
	 *     max=STRING (ambiguity)
	 *     max=STRING (ambiguity) ';'? (rule end)
	 *     max=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     max=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     max=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     max=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     max=STRING (ambiguity) 'length' '=' length=STRING
	 *     max=STRING (ambiguity) 'max' '=' max=STRING
	 *     max=STRING (ambiguity) 'min' '=' min=STRING
	 *     max=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     max=STRING (ambiguity) 'range' '=' range=STRING
	 *     max=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     max=STRING (ambiguity) 'size' '=' size=STRING
	 *     max=STRING (ambiguity) 'url' '=' url=STRING
	 *     max=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     max=STRING (ambiguity) assertFalse?='assertFalse'
	 *     max=STRING (ambiguity) assertTrue?='assertTrue'
	 *     max=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     max=STRING (ambiguity) email?='email'
	 *     max=STRING (ambiguity) future?='future'
	 *     max=STRING (ambiguity) key?='key'
	 *     max=STRING (ambiguity) notBlank?='notBlank'
	 *     max=STRING (ambiguity) notChangeable?=NOT
	 *     max=STRING (ambiguity) notEmpty?='notEmpty'
	 *     max=STRING (ambiguity) nullable?='nullable'
	 *     max=STRING (ambiguity) past?='past'
	 *     max=STRING (ambiguity) required?='required'
	 *     max=STRING (ambiguity) transient?='transient'
	 *     min=STRING (ambiguity)
	 *     min=STRING (ambiguity) ';'? (rule end)
	 *     min=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     min=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     min=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     min=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     min=STRING (ambiguity) 'length' '=' length=STRING
	 *     min=STRING (ambiguity) 'max' '=' max=STRING
	 *     min=STRING (ambiguity) 'min' '=' min=STRING
	 *     min=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     min=STRING (ambiguity) 'range' '=' range=STRING
	 *     min=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     min=STRING (ambiguity) 'size' '=' size=STRING
	 *     min=STRING (ambiguity) 'url' '=' url=STRING
	 *     min=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     min=STRING (ambiguity) assertFalse?='assertFalse'
	 *     min=STRING (ambiguity) assertTrue?='assertTrue'
	 *     min=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     min=STRING (ambiguity) email?='email'
	 *     min=STRING (ambiguity) future?='future'
	 *     min=STRING (ambiguity) key?='key'
	 *     min=STRING (ambiguity) notBlank?='notBlank'
	 *     min=STRING (ambiguity) notChangeable?=NOT
	 *     min=STRING (ambiguity) notEmpty?='notEmpty'
	 *     min=STRING (ambiguity) nullable?='nullable'
	 *     min=STRING (ambiguity) past?='past'
	 *     min=STRING (ambiguity) required?='required'
	 *     min=STRING (ambiguity) transient?='transient'
	 *     name=ID (ambiguity)
	 *     name=ID (ambiguity) ';'? (rule end)
	 *     name=ID (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     name=ID (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     name=ID (ambiguity) 'digits' '=' digits=STRING
	 *     name=ID (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID (ambiguity) 'length' '=' length=STRING
	 *     name=ID (ambiguity) 'max' '=' max=STRING
	 *     name=ID (ambiguity) 'min' '=' min=STRING
	 *     name=ID (ambiguity) 'pattern' '=' pattern=STRING
	 *     name=ID (ambiguity) 'range' '=' range=STRING
	 *     name=ID (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     name=ID (ambiguity) 'size' '=' size=STRING
	 *     name=ID (ambiguity) 'url' '=' url=STRING
	 *     name=ID (ambiguity) 'validate' '=' validate=STRING
	 *     name=ID (ambiguity) assertFalse?='assertFalse'
	 *     name=ID (ambiguity) assertTrue?='assertTrue'
	 *     name=ID (ambiguity) creditCardNumber?='creditCardNumber'
	 *     name=ID (ambiguity) email?='email'
	 *     name=ID (ambiguity) future?='future'
	 *     name=ID (ambiguity) key?='key'
	 *     name=ID (ambiguity) notBlank?='notBlank'
	 *     name=ID (ambiguity) notChangeable?=NOT
	 *     name=ID (ambiguity) notEmpty?='notEmpty'
	 *     name=ID (ambiguity) nullable?='nullable'
	 *     name=ID (ambiguity) past?='past'
	 *     name=ID (ambiguity) required?='required'
	 *     name=ID (ambiguity) transient?='transient'
	 *     notBlank?='notBlank' (ambiguity)
	 *     notBlank?='notBlank' (ambiguity) ';'? (rule end)
	 *     notBlank?='notBlank' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notBlank?='notBlank' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notBlank?='notBlank' (ambiguity) 'digits' '=' digits=STRING
	 *     notBlank?='notBlank' (ambiguity) 'hint' '=' hint=STRING
	 *     notBlank?='notBlank' (ambiguity) 'length' '=' length=STRING
	 *     notBlank?='notBlank' (ambiguity) 'max' '=' max=STRING
	 *     notBlank?='notBlank' (ambiguity) 'min' '=' min=STRING
	 *     notBlank?='notBlank' (ambiguity) 'pattern' '=' pattern=STRING
	 *     notBlank?='notBlank' (ambiguity) 'range' '=' range=STRING
	 *     notBlank?='notBlank' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notBlank?='notBlank' (ambiguity) 'size' '=' size=STRING
	 *     notBlank?='notBlank' (ambiguity) 'url' '=' url=STRING
	 *     notBlank?='notBlank' (ambiguity) 'validate' '=' validate=STRING
	 *     notBlank?='notBlank' (ambiguity) assertFalse?='assertFalse'
	 *     notBlank?='notBlank' (ambiguity) assertTrue?='assertTrue'
	 *     notBlank?='notBlank' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notBlank?='notBlank' (ambiguity) email?='email'
	 *     notBlank?='notBlank' (ambiguity) future?='future'
	 *     notBlank?='notBlank' (ambiguity) key?='key'
	 *     notBlank?='notBlank' (ambiguity) notBlank?='notBlank'
	 *     notBlank?='notBlank' (ambiguity) notChangeable?=NOT
	 *     notBlank?='notBlank' (ambiguity) notEmpty?='notEmpty'
	 *     notBlank?='notBlank' (ambiguity) nullable?='nullable'
	 *     notBlank?='notBlank' (ambiguity) past?='past'
	 *     notBlank?='notBlank' (ambiguity) required?='required'
	 *     notBlank?='notBlank' (ambiguity) transient?='transient'
	 *     notBlankMessage=STRING (ambiguity)
	 *     notBlankMessage=STRING (ambiguity) ';'? (rule end)
	 *     notBlankMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notBlankMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notBlankMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     notBlankMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     notBlankMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     notBlankMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     notBlankMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     notBlankMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     notBlankMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     notBlankMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notBlankMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     notBlankMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     notBlankMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     notBlankMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     notBlankMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     notBlankMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notBlankMessage=STRING (ambiguity) email?='email'
	 *     notBlankMessage=STRING (ambiguity) future?='future'
	 *     notBlankMessage=STRING (ambiguity) key?='key'
	 *     notBlankMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     notBlankMessage=STRING (ambiguity) notChangeable?=NOT
	 *     notBlankMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     notBlankMessage=STRING (ambiguity) nullable?='nullable'
	 *     notBlankMessage=STRING (ambiguity) past?='past'
	 *     notBlankMessage=STRING (ambiguity) required?='required'
	 *     notBlankMessage=STRING (ambiguity) transient?='transient'
	 *     notChangeable?=NOT 'changeable' (ambiguity)
	 *     notChangeable?=NOT 'changeable' (ambiguity) ';'? (rule end)
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'digits' '=' digits=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'hint' '=' hint=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'length' '=' length=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'max' '=' max=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'min' '=' min=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'pattern' '=' pattern=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'range' '=' range=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'size' '=' size=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'url' '=' url=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'validate' '=' validate=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) assertFalse?='assertFalse'
	 *     notChangeable?=NOT 'changeable' (ambiguity) assertTrue?='assertTrue'
	 *     notChangeable?=NOT 'changeable' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notChangeable?=NOT 'changeable' (ambiguity) email?='email'
	 *     notChangeable?=NOT 'changeable' (ambiguity) future?='future'
	 *     notChangeable?=NOT 'changeable' (ambiguity) key?='key'
	 *     notChangeable?=NOT 'changeable' (ambiguity) notBlank?='notBlank'
	 *     notChangeable?=NOT 'changeable' (ambiguity) notChangeable?=NOT
	 *     notChangeable?=NOT 'changeable' (ambiguity) notEmpty?='notEmpty'
	 *     notChangeable?=NOT 'changeable' (ambiguity) nullable?='nullable'
	 *     notChangeable?=NOT 'changeable' (ambiguity) past?='past'
	 *     notChangeable?=NOT 'changeable' (ambiguity) required?='required'
	 *     notChangeable?=NOT 'changeable' (ambiguity) transient?='transient'
	 *     notEmpty?='notEmpty' (ambiguity)
	 *     notEmpty?='notEmpty' (ambiguity) ';'? (rule end)
	 *     notEmpty?='notEmpty' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'digits' '=' digits=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'hint' '=' hint=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'length' '=' length=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'max' '=' max=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'min' '=' min=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'pattern' '=' pattern=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'range' '=' range=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'size' '=' size=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'url' '=' url=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'validate' '=' validate=STRING
	 *     notEmpty?='notEmpty' (ambiguity) assertFalse?='assertFalse'
	 *     notEmpty?='notEmpty' (ambiguity) assertTrue?='assertTrue'
	 *     notEmpty?='notEmpty' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notEmpty?='notEmpty' (ambiguity) email?='email'
	 *     notEmpty?='notEmpty' (ambiguity) future?='future'
	 *     notEmpty?='notEmpty' (ambiguity) key?='key'
	 *     notEmpty?='notEmpty' (ambiguity) notBlank?='notBlank'
	 *     notEmpty?='notEmpty' (ambiguity) notChangeable?=NOT
	 *     notEmpty?='notEmpty' (ambiguity) notEmpty?='notEmpty'
	 *     notEmpty?='notEmpty' (ambiguity) nullable?='nullable'
	 *     notEmpty?='notEmpty' (ambiguity) past?='past'
	 *     notEmpty?='notEmpty' (ambiguity) required?='required'
	 *     notEmpty?='notEmpty' (ambiguity) transient?='transient'
	 *     notEmptyMessage=STRING (ambiguity)
	 *     notEmptyMessage=STRING (ambiguity) ';'? (rule end)
	 *     notEmptyMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     notEmptyMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     notEmptyMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     notEmptyMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     notEmptyMessage=STRING (ambiguity) email?='email'
	 *     notEmptyMessage=STRING (ambiguity) future?='future'
	 *     notEmptyMessage=STRING (ambiguity) key?='key'
	 *     notEmptyMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     notEmptyMessage=STRING (ambiguity) notChangeable?=NOT
	 *     notEmptyMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     notEmptyMessage=STRING (ambiguity) nullable?='nullable'
	 *     notEmptyMessage=STRING (ambiguity) past?='past'
	 *     notEmptyMessage=STRING (ambiguity) required?='required'
	 *     notEmptyMessage=STRING (ambiguity) transient?='transient'
	 *     nullable?='nullable' (ambiguity) ';'? (rule end)
	 *     nullable?='nullable' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     nullable?='nullable' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     nullable?='nullable' (ambiguity) 'digits' '=' digits=STRING
	 *     nullable?='nullable' (ambiguity) 'hint' '=' hint=STRING
	 *     nullable?='nullable' (ambiguity) 'length' '=' length=STRING
	 *     nullable?='nullable' (ambiguity) 'max' '=' max=STRING
	 *     nullable?='nullable' (ambiguity) 'min' '=' min=STRING
	 *     nullable?='nullable' (ambiguity) 'pattern' '=' pattern=STRING
	 *     nullable?='nullable' (ambiguity) 'range' '=' range=STRING
	 *     nullable?='nullable' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     nullable?='nullable' (ambiguity) 'size' '=' size=STRING
	 *     nullable?='nullable' (ambiguity) 'url' '=' url=STRING
	 *     nullable?='nullable' (ambiguity) 'validate' '=' validate=STRING
	 *     nullable?='nullable' (ambiguity) assertFalse?='assertFalse'
	 *     nullable?='nullable' (ambiguity) assertTrue?='assertTrue'
	 *     nullable?='nullable' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     nullable?='nullable' (ambiguity) email?='email'
	 *     nullable?='nullable' (ambiguity) future?='future'
	 *     nullable?='nullable' (ambiguity) key?='key'
	 *     nullable?='nullable' (ambiguity) notBlank?='notBlank'
	 *     nullable?='nullable' (ambiguity) notChangeable?=NOT
	 *     nullable?='nullable' (ambiguity) notEmpty?='notEmpty'
	 *     nullable?='nullable' (ambiguity) nullable?='nullable'
	 *     nullable?='nullable' (ambiguity) past?='past'
	 *     nullable?='nullable' (ambiguity) required?='required'
	 *     nullable?='nullable' (ambiguity) transient?='transient'
	 *     nullableMessage=STRING (ambiguity)
	 *     nullableMessage=STRING (ambiguity) ';'? (rule end)
	 *     nullableMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     nullableMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     nullableMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     nullableMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     nullableMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     nullableMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     nullableMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     nullableMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     nullableMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     nullableMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     nullableMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     nullableMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     nullableMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     nullableMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     nullableMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     nullableMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     nullableMessage=STRING (ambiguity) email?='email'
	 *     nullableMessage=STRING (ambiguity) future?='future'
	 *     nullableMessage=STRING (ambiguity) key?='key'
	 *     nullableMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     nullableMessage=STRING (ambiguity) notChangeable?=NOT
	 *     nullableMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     nullableMessage=STRING (ambiguity) nullable?='nullable'
	 *     nullableMessage=STRING (ambiguity) past?='past'
	 *     nullableMessage=STRING (ambiguity) required?='required'
	 *     nullableMessage=STRING (ambiguity) transient?='transient'
	 *     past?='past' (ambiguity)
	 *     past?='past' (ambiguity) ';'? (rule end)
	 *     past?='past' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     past?='past' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     past?='past' (ambiguity) 'digits' '=' digits=STRING
	 *     past?='past' (ambiguity) 'hint' '=' hint=STRING
	 *     past?='past' (ambiguity) 'length' '=' length=STRING
	 *     past?='past' (ambiguity) 'max' '=' max=STRING
	 *     past?='past' (ambiguity) 'min' '=' min=STRING
	 *     past?='past' (ambiguity) 'pattern' '=' pattern=STRING
	 *     past?='past' (ambiguity) 'range' '=' range=STRING
	 *     past?='past' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     past?='past' (ambiguity) 'size' '=' size=STRING
	 *     past?='past' (ambiguity) 'url' '=' url=STRING
	 *     past?='past' (ambiguity) 'validate' '=' validate=STRING
	 *     past?='past' (ambiguity) assertFalse?='assertFalse'
	 *     past?='past' (ambiguity) assertTrue?='assertTrue'
	 *     past?='past' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     past?='past' (ambiguity) email?='email'
	 *     past?='past' (ambiguity) future?='future'
	 *     past?='past' (ambiguity) key?='key'
	 *     past?='past' (ambiguity) notBlank?='notBlank'
	 *     past?='past' (ambiguity) notChangeable?=NOT
	 *     past?='past' (ambiguity) notEmpty?='notEmpty'
	 *     past?='past' (ambiguity) nullable?='nullable'
	 *     past?='past' (ambiguity) past?='past'
	 *     past?='past' (ambiguity) required?='required'
	 *     past?='past' (ambiguity) transient?='transient'
	 *     pastMessage=STRING (ambiguity)
	 *     pastMessage=STRING (ambiguity) ';'? (rule end)
	 *     pastMessage=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     pastMessage=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     pastMessage=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     pastMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     pastMessage=STRING (ambiguity) 'length' '=' length=STRING
	 *     pastMessage=STRING (ambiguity) 'max' '=' max=STRING
	 *     pastMessage=STRING (ambiguity) 'min' '=' min=STRING
	 *     pastMessage=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     pastMessage=STRING (ambiguity) 'range' '=' range=STRING
	 *     pastMessage=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     pastMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     pastMessage=STRING (ambiguity) 'url' '=' url=STRING
	 *     pastMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     pastMessage=STRING (ambiguity) assertFalse?='assertFalse'
	 *     pastMessage=STRING (ambiguity) assertTrue?='assertTrue'
	 *     pastMessage=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     pastMessage=STRING (ambiguity) email?='email'
	 *     pastMessage=STRING (ambiguity) future?='future'
	 *     pastMessage=STRING (ambiguity) key?='key'
	 *     pastMessage=STRING (ambiguity) notBlank?='notBlank'
	 *     pastMessage=STRING (ambiguity) notChangeable?=NOT
	 *     pastMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     pastMessage=STRING (ambiguity) nullable?='nullable'
	 *     pastMessage=STRING (ambiguity) past?='past'
	 *     pastMessage=STRING (ambiguity) required?='required'
	 *     pastMessage=STRING (ambiguity) transient?='transient'
	 *     pattern=STRING (ambiguity)
	 *     pattern=STRING (ambiguity) ';'? (rule end)
	 *     pattern=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     pattern=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     pattern=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     pattern=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     pattern=STRING (ambiguity) 'length' '=' length=STRING
	 *     pattern=STRING (ambiguity) 'max' '=' max=STRING
	 *     pattern=STRING (ambiguity) 'min' '=' min=STRING
	 *     pattern=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     pattern=STRING (ambiguity) 'range' '=' range=STRING
	 *     pattern=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     pattern=STRING (ambiguity) 'size' '=' size=STRING
	 *     pattern=STRING (ambiguity) 'url' '=' url=STRING
	 *     pattern=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     pattern=STRING (ambiguity) assertFalse?='assertFalse'
	 *     pattern=STRING (ambiguity) assertTrue?='assertTrue'
	 *     pattern=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     pattern=STRING (ambiguity) email?='email'
	 *     pattern=STRING (ambiguity) future?='future'
	 *     pattern=STRING (ambiguity) key?='key'
	 *     pattern=STRING (ambiguity) notBlank?='notBlank'
	 *     pattern=STRING (ambiguity) notChangeable?=NOT
	 *     pattern=STRING (ambiguity) notEmpty?='notEmpty'
	 *     pattern=STRING (ambiguity) nullable?='nullable'
	 *     pattern=STRING (ambiguity) past?='past'
	 *     pattern=STRING (ambiguity) required?='required'
	 *     pattern=STRING (ambiguity) transient?='transient'
	 *     range=STRING (ambiguity)
	 *     range=STRING (ambiguity) ';'? (rule end)
	 *     range=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     range=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     range=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     range=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     range=STRING (ambiguity) 'length' '=' length=STRING
	 *     range=STRING (ambiguity) 'max' '=' max=STRING
	 *     range=STRING (ambiguity) 'min' '=' min=STRING
	 *     range=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     range=STRING (ambiguity) 'range' '=' range=STRING
	 *     range=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     range=STRING (ambiguity) 'size' '=' size=STRING
	 *     range=STRING (ambiguity) 'url' '=' url=STRING
	 *     range=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     range=STRING (ambiguity) assertFalse?='assertFalse'
	 *     range=STRING (ambiguity) assertTrue?='assertTrue'
	 *     range=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     range=STRING (ambiguity) email?='email'
	 *     range=STRING (ambiguity) future?='future'
	 *     range=STRING (ambiguity) key?='key'
	 *     range=STRING (ambiguity) notBlank?='notBlank'
	 *     range=STRING (ambiguity) notChangeable?=NOT
	 *     range=STRING (ambiguity) notEmpty?='notEmpty'
	 *     range=STRING (ambiguity) nullable?='nullable'
	 *     range=STRING (ambiguity) past?='past'
	 *     range=STRING (ambiguity) required?='required'
	 *     range=STRING (ambiguity) transient?='transient'
	 *     required?='required' (ambiguity)
	 *     required?='required' (ambiguity) ';'? (rule end)
	 *     required?='required' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     required?='required' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     required?='required' (ambiguity) 'digits' '=' digits=STRING
	 *     required?='required' (ambiguity) 'hint' '=' hint=STRING
	 *     required?='required' (ambiguity) 'length' '=' length=STRING
	 *     required?='required' (ambiguity) 'max' '=' max=STRING
	 *     required?='required' (ambiguity) 'min' '=' min=STRING
	 *     required?='required' (ambiguity) 'pattern' '=' pattern=STRING
	 *     required?='required' (ambiguity) 'range' '=' range=STRING
	 *     required?='required' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     required?='required' (ambiguity) 'size' '=' size=STRING
	 *     required?='required' (ambiguity) 'url' '=' url=STRING
	 *     required?='required' (ambiguity) 'validate' '=' validate=STRING
	 *     required?='required' (ambiguity) assertFalse?='assertFalse'
	 *     required?='required' (ambiguity) assertTrue?='assertTrue'
	 *     required?='required' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     required?='required' (ambiguity) email?='email'
	 *     required?='required' (ambiguity) future?='future'
	 *     required?='required' (ambiguity) key?='key'
	 *     required?='required' (ambiguity) notBlank?='notBlank'
	 *     required?='required' (ambiguity) notChangeable?=NOT
	 *     required?='required' (ambiguity) notEmpty?='notEmpty'
	 *     required?='required' (ambiguity) nullable?='nullable'
	 *     required?='required' (ambiguity) past?='past'
	 *     required?='required' (ambiguity) required?='required'
	 *     required?='required' (ambiguity) transient?='transient'
	 *     scriptAssert=STRING (ambiguity)
	 *     scriptAssert=STRING (ambiguity) ';'? (rule end)
	 *     scriptAssert=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     scriptAssert=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     scriptAssert=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     scriptAssert=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     scriptAssert=STRING (ambiguity) 'length' '=' length=STRING
	 *     scriptAssert=STRING (ambiguity) 'max' '=' max=STRING
	 *     scriptAssert=STRING (ambiguity) 'min' '=' min=STRING
	 *     scriptAssert=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     scriptAssert=STRING (ambiguity) 'range' '=' range=STRING
	 *     scriptAssert=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     scriptAssert=STRING (ambiguity) 'size' '=' size=STRING
	 *     scriptAssert=STRING (ambiguity) 'url' '=' url=STRING
	 *     scriptAssert=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     scriptAssert=STRING (ambiguity) assertFalse?='assertFalse'
	 *     scriptAssert=STRING (ambiguity) assertTrue?='assertTrue'
	 *     scriptAssert=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     scriptAssert=STRING (ambiguity) email?='email'
	 *     scriptAssert=STRING (ambiguity) future?='future'
	 *     scriptAssert=STRING (ambiguity) key?='key'
	 *     scriptAssert=STRING (ambiguity) notBlank?='notBlank'
	 *     scriptAssert=STRING (ambiguity) notChangeable?=NOT
	 *     scriptAssert=STRING (ambiguity) notEmpty?='notEmpty'
	 *     scriptAssert=STRING (ambiguity) nullable?='nullable'
	 *     scriptAssert=STRING (ambiguity) past?='past'
	 *     scriptAssert=STRING (ambiguity) required?='required'
	 *     scriptAssert=STRING (ambiguity) transient?='transient'
	 *     size=STRING (ambiguity)
	 *     size=STRING (ambiguity) ';'? (rule end)
	 *     size=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     size=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     size=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     size=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     size=STRING (ambiguity) 'length' '=' length=STRING
	 *     size=STRING (ambiguity) 'max' '=' max=STRING
	 *     size=STRING (ambiguity) 'min' '=' min=STRING
	 *     size=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     size=STRING (ambiguity) 'range' '=' range=STRING
	 *     size=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     size=STRING (ambiguity) 'size' '=' size=STRING
	 *     size=STRING (ambiguity) 'url' '=' url=STRING
	 *     size=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     size=STRING (ambiguity) assertFalse?='assertFalse'
	 *     size=STRING (ambiguity) assertTrue?='assertTrue'
	 *     size=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     size=STRING (ambiguity) email?='email'
	 *     size=STRING (ambiguity) future?='future'
	 *     size=STRING (ambiguity) key?='key'
	 *     size=STRING (ambiguity) notBlank?='notBlank'
	 *     size=STRING (ambiguity) notChangeable?=NOT
	 *     size=STRING (ambiguity) notEmpty?='notEmpty'
	 *     size=STRING (ambiguity) nullable?='nullable'
	 *     size=STRING (ambiguity) past?='past'
	 *     size=STRING (ambiguity) required?='required'
	 *     size=STRING (ambiguity) transient?='transient'
	 *     transient?='transient' (ambiguity)
	 *     transient?='transient' (ambiguity) ';'? (rule end)
	 *     transient?='transient' (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     transient?='transient' (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     transient?='transient' (ambiguity) 'digits' '=' digits=STRING
	 *     transient?='transient' (ambiguity) 'hint' '=' hint=STRING
	 *     transient?='transient' (ambiguity) 'length' '=' length=STRING
	 *     transient?='transient' (ambiguity) 'max' '=' max=STRING
	 *     transient?='transient' (ambiguity) 'min' '=' min=STRING
	 *     transient?='transient' (ambiguity) 'pattern' '=' pattern=STRING
	 *     transient?='transient' (ambiguity) 'range' '=' range=STRING
	 *     transient?='transient' (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     transient?='transient' (ambiguity) 'size' '=' size=STRING
	 *     transient?='transient' (ambiguity) 'url' '=' url=STRING
	 *     transient?='transient' (ambiguity) 'validate' '=' validate=STRING
	 *     transient?='transient' (ambiguity) assertFalse?='assertFalse'
	 *     transient?='transient' (ambiguity) assertTrue?='assertTrue'
	 *     transient?='transient' (ambiguity) creditCardNumber?='creditCardNumber'
	 *     transient?='transient' (ambiguity) email?='email'
	 *     transient?='transient' (ambiguity) future?='future'
	 *     transient?='transient' (ambiguity) key?='key'
	 *     transient?='transient' (ambiguity) notBlank?='notBlank'
	 *     transient?='transient' (ambiguity) notChangeable?=NOT
	 *     transient?='transient' (ambiguity) notEmpty?='notEmpty'
	 *     transient?='transient' (ambiguity) nullable?='nullable'
	 *     transient?='transient' (ambiguity) past?='past'
	 *     transient?='transient' (ambiguity) required?='required'
	 *     transient?='transient' (ambiguity) transient?='transient'
	 *     url=STRING (ambiguity)
	 *     url=STRING (ambiguity) ';'? (rule end)
	 *     url=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     url=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     url=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     url=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     url=STRING (ambiguity) 'length' '=' length=STRING
	 *     url=STRING (ambiguity) 'max' '=' max=STRING
	 *     url=STRING (ambiguity) 'min' '=' min=STRING
	 *     url=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     url=STRING (ambiguity) 'range' '=' range=STRING
	 *     url=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     url=STRING (ambiguity) 'size' '=' size=STRING
	 *     url=STRING (ambiguity) 'url' '=' url=STRING
	 *     url=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     url=STRING (ambiguity) assertFalse?='assertFalse'
	 *     url=STRING (ambiguity) assertTrue?='assertTrue'
	 *     url=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     url=STRING (ambiguity) email?='email'
	 *     url=STRING (ambiguity) future?='future'
	 *     url=STRING (ambiguity) key?='key'
	 *     url=STRING (ambiguity) notBlank?='notBlank'
	 *     url=STRING (ambiguity) notChangeable?=NOT
	 *     url=STRING (ambiguity) notEmpty?='notEmpty'
	 *     url=STRING (ambiguity) nullable?='nullable'
	 *     url=STRING (ambiguity) past?='past'
	 *     url=STRING (ambiguity) required?='required'
	 *     url=STRING (ambiguity) transient?='transient'
	 *     validate=STRING (ambiguity)
	 *     validate=STRING (ambiguity) ';'? (rule end)
	 *     validate=STRING (ambiguity) 'decimalMax' '=' decimalMax=STRING
	 *     validate=STRING (ambiguity) 'decimalMin' '=' decimalMin=STRING
	 *     validate=STRING (ambiguity) 'digits' '=' digits=STRING
	 *     validate=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validate=STRING (ambiguity) 'length' '=' length=STRING
	 *     validate=STRING (ambiguity) 'max' '=' max=STRING
	 *     validate=STRING (ambiguity) 'min' '=' min=STRING
	 *     validate=STRING (ambiguity) 'pattern' '=' pattern=STRING
	 *     validate=STRING (ambiguity) 'range' '=' range=STRING
	 *     validate=STRING (ambiguity) 'scriptAssert' '=' scriptAssert=STRING
	 *     validate=STRING (ambiguity) 'size' '=' size=STRING
	 *     validate=STRING (ambiguity) 'url' '=' url=STRING
	 *     validate=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validate=STRING (ambiguity) assertFalse?='assertFalse'
	 *     validate=STRING (ambiguity) assertTrue?='assertTrue'
	 *     validate=STRING (ambiguity) creditCardNumber?='creditCardNumber'
	 *     validate=STRING (ambiguity) email?='email'
	 *     validate=STRING (ambiguity) future?='future'
	 *     validate=STRING (ambiguity) key?='key'
	 *     validate=STRING (ambiguity) notBlank?='notBlank'
	 *     validate=STRING (ambiguity) notChangeable?=NOT
	 *     validate=STRING (ambiguity) notEmpty?='notEmpty'
	 *     validate=STRING (ambiguity) nullable?='nullable'
	 *     validate=STRING (ambiguity) past?='past'
	 *     validate=STRING (ambiguity) required?='required'
	 *     validate=STRING (ambiguity) transient?='transient'
	 */
	protected void emit_DtoAttribute___ChangeableKeyword_6_1_1_q___NOTTerminalRuleCall_6_2_1_0_RequiredKeyword_6_2_1_1__q___NOTTerminalRuleCall_6_3_0_1_0_NullableKeyword_6_3_0_1_1__q__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) REF (ambiguity) domainObjectType=[SimpleDomainObject|ID]
	 *     collectionType=CollectionType '<' (ambiguity) domainObjectType=[SimpleDomainObject|ID]
	 *     doc=STRING REF (ambiguity) domainObjectType=[SimpleDomainObject|ID]
	 *     visibility=Visibility (ambiguity) domainObjectType=[SimpleDomainObject|ID]
	 */
	protected void emit_DtoReference_CommercialAtKeyword_4_0_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '>'?
	 *
	 * This ambiguous syntax occurs at:
	 *     domainObjectType=[SimpleDomainObject|ID] (ambiguity) name=ID
	 */
	protected void emit_DtoReference_GreaterThanSignKeyword_5_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     nullable?='nullable'
	 *
	 * This ambiguous syntax occurs at:
	 *     (ambiguity)
	 */
	protected void emit_DtoReference_NullableNullableKeyword_7_3_0_0_0(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ';'?
	 *
	 * This ambiguous syntax occurs at:
	 *     hint=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     key?='key' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     name=ID ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notChangeable?=NOT 'changeable' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notEmpty?='notEmpty' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     notEmptyMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     nullable?='nullable' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     nullableMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     required?='required' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     size=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     transient?='transient' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     valid?='valid' ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     validMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 *     validate=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')?)+ (ambiguity) (rule end)
	 */
	protected void emit_DtoReference_SemicolonKeyword_8_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('changeable'? (NOT 'required')? (NOT 'nullable')?)+
	 *
	 * This ambiguous syntax occurs at:
	 *     hint=STRING (ambiguity)
	 *     hint=STRING (ambiguity) ';'? (rule end)
	 *     hint=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     hint=STRING (ambiguity) 'size' '=' size=STRING
	 *     hint=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     hint=STRING (ambiguity) key?='key'
	 *     hint=STRING (ambiguity) notChangeable?=NOT
	 *     hint=STRING (ambiguity) notEmpty?='notEmpty'
	 *     hint=STRING (ambiguity) nullable?='nullable'
	 *     hint=STRING (ambiguity) required?='required'
	 *     hint=STRING (ambiguity) transient?='transient'
	 *     hint=STRING (ambiguity) valid?='valid'
	 *     key?='key' (ambiguity)
	 *     key?='key' (ambiguity) ';'? (rule end)
	 *     key?='key' (ambiguity) 'hint' '=' hint=STRING
	 *     key?='key' (ambiguity) 'size' '=' size=STRING
	 *     key?='key' (ambiguity) 'validate' '=' validate=STRING
	 *     key?='key' (ambiguity) key?='key'
	 *     key?='key' (ambiguity) notChangeable?=NOT
	 *     key?='key' (ambiguity) notEmpty?='notEmpty'
	 *     key?='key' (ambiguity) nullable?='nullable'
	 *     key?='key' (ambiguity) required?='required'
	 *     key?='key' (ambiguity) transient?='transient'
	 *     key?='key' (ambiguity) valid?='valid'
	 *     name=ID (ambiguity)
	 *     name=ID (ambiguity) ';'? (rule end)
	 *     name=ID (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID (ambiguity) 'size' '=' size=STRING
	 *     name=ID (ambiguity) 'validate' '=' validate=STRING
	 *     name=ID (ambiguity) key?='key'
	 *     name=ID (ambiguity) notChangeable?=NOT
	 *     name=ID (ambiguity) notEmpty?='notEmpty'
	 *     name=ID (ambiguity) nullable?='nullable'
	 *     name=ID (ambiguity) required?='required'
	 *     name=ID (ambiguity) transient?='transient'
	 *     name=ID (ambiguity) valid?='valid'
	 *     notChangeable?=NOT 'changeable' (ambiguity)
	 *     notChangeable?=NOT 'changeable' (ambiguity) ';'? (rule end)
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'hint' '=' hint=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'size' '=' size=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'validate' '=' validate=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) key?='key'
	 *     notChangeable?=NOT 'changeable' (ambiguity) notChangeable?=NOT
	 *     notChangeable?=NOT 'changeable' (ambiguity) notEmpty?='notEmpty'
	 *     notChangeable?=NOT 'changeable' (ambiguity) nullable?='nullable'
	 *     notChangeable?=NOT 'changeable' (ambiguity) required?='required'
	 *     notChangeable?=NOT 'changeable' (ambiguity) transient?='transient'
	 *     notChangeable?=NOT 'changeable' (ambiguity) valid?='valid'
	 *     notEmpty?='notEmpty' (ambiguity)
	 *     notEmpty?='notEmpty' (ambiguity) ';'? (rule end)
	 *     notEmpty?='notEmpty' (ambiguity) 'hint' '=' hint=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'size' '=' size=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'validate' '=' validate=STRING
	 *     notEmpty?='notEmpty' (ambiguity) key?='key'
	 *     notEmpty?='notEmpty' (ambiguity) notChangeable?=NOT
	 *     notEmpty?='notEmpty' (ambiguity) notEmpty?='notEmpty'
	 *     notEmpty?='notEmpty' (ambiguity) nullable?='nullable'
	 *     notEmpty?='notEmpty' (ambiguity) required?='required'
	 *     notEmpty?='notEmpty' (ambiguity) transient?='transient'
	 *     notEmpty?='notEmpty' (ambiguity) valid?='valid'
	 *     notEmptyMessage=STRING (ambiguity)
	 *     notEmptyMessage=STRING (ambiguity) ';'? (rule end)
	 *     notEmptyMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     notEmptyMessage=STRING (ambiguity) key?='key'
	 *     notEmptyMessage=STRING (ambiguity) notChangeable?=NOT
	 *     notEmptyMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     notEmptyMessage=STRING (ambiguity) nullable?='nullable'
	 *     notEmptyMessage=STRING (ambiguity) required?='required'
	 *     notEmptyMessage=STRING (ambiguity) transient?='transient'
	 *     notEmptyMessage=STRING (ambiguity) valid?='valid'
	 *     nullable?='nullable' (ambiguity) ';'? (rule end)
	 *     nullable?='nullable' (ambiguity) 'hint' '=' hint=STRING
	 *     nullable?='nullable' (ambiguity) 'size' '=' size=STRING
	 *     nullable?='nullable' (ambiguity) 'validate' '=' validate=STRING
	 *     nullable?='nullable' (ambiguity) key?='key'
	 *     nullable?='nullable' (ambiguity) notChangeable?=NOT
	 *     nullable?='nullable' (ambiguity) notEmpty?='notEmpty'
	 *     nullable?='nullable' (ambiguity) nullable?='nullable'
	 *     nullable?='nullable' (ambiguity) required?='required'
	 *     nullable?='nullable' (ambiguity) transient?='transient'
	 *     nullable?='nullable' (ambiguity) valid?='valid'
	 *     nullableMessage=STRING (ambiguity)
	 *     nullableMessage=STRING (ambiguity) ';'? (rule end)
	 *     nullableMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     nullableMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     nullableMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     nullableMessage=STRING (ambiguity) key?='key'
	 *     nullableMessage=STRING (ambiguity) notChangeable?=NOT
	 *     nullableMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     nullableMessage=STRING (ambiguity) nullable?='nullable'
	 *     nullableMessage=STRING (ambiguity) required?='required'
	 *     nullableMessage=STRING (ambiguity) transient?='transient'
	 *     nullableMessage=STRING (ambiguity) valid?='valid'
	 *     required?='required' (ambiguity)
	 *     required?='required' (ambiguity) ';'? (rule end)
	 *     required?='required' (ambiguity) 'hint' '=' hint=STRING
	 *     required?='required' (ambiguity) 'size' '=' size=STRING
	 *     required?='required' (ambiguity) 'validate' '=' validate=STRING
	 *     required?='required' (ambiguity) key?='key'
	 *     required?='required' (ambiguity) notChangeable?=NOT
	 *     required?='required' (ambiguity) notEmpty?='notEmpty'
	 *     required?='required' (ambiguity) nullable?='nullable'
	 *     required?='required' (ambiguity) required?='required'
	 *     required?='required' (ambiguity) transient?='transient'
	 *     required?='required' (ambiguity) valid?='valid'
	 *     size=STRING (ambiguity)
	 *     size=STRING (ambiguity) ';'? (rule end)
	 *     size=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     size=STRING (ambiguity) 'size' '=' size=STRING
	 *     size=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     size=STRING (ambiguity) key?='key'
	 *     size=STRING (ambiguity) notChangeable?=NOT
	 *     size=STRING (ambiguity) notEmpty?='notEmpty'
	 *     size=STRING (ambiguity) nullable?='nullable'
	 *     size=STRING (ambiguity) required?='required'
	 *     size=STRING (ambiguity) transient?='transient'
	 *     size=STRING (ambiguity) valid?='valid'
	 *     transient?='transient' (ambiguity)
	 *     transient?='transient' (ambiguity) ';'? (rule end)
	 *     transient?='transient' (ambiguity) 'hint' '=' hint=STRING
	 *     transient?='transient' (ambiguity) 'size' '=' size=STRING
	 *     transient?='transient' (ambiguity) 'validate' '=' validate=STRING
	 *     transient?='transient' (ambiguity) key?='key'
	 *     transient?='transient' (ambiguity) notChangeable?=NOT
	 *     transient?='transient' (ambiguity) notEmpty?='notEmpty'
	 *     transient?='transient' (ambiguity) nullable?='nullable'
	 *     transient?='transient' (ambiguity) required?='required'
	 *     transient?='transient' (ambiguity) transient?='transient'
	 *     transient?='transient' (ambiguity) valid?='valid'
	 *     valid?='valid' (ambiguity)
	 *     valid?='valid' (ambiguity) ';'? (rule end)
	 *     valid?='valid' (ambiguity) 'hint' '=' hint=STRING
	 *     valid?='valid' (ambiguity) 'size' '=' size=STRING
	 *     valid?='valid' (ambiguity) 'validate' '=' validate=STRING
	 *     valid?='valid' (ambiguity) key?='key'
	 *     valid?='valid' (ambiguity) notChangeable?=NOT
	 *     valid?='valid' (ambiguity) notEmpty?='notEmpty'
	 *     valid?='valid' (ambiguity) nullable?='nullable'
	 *     valid?='valid' (ambiguity) required?='required'
	 *     valid?='valid' (ambiguity) transient?='transient'
	 *     valid?='valid' (ambiguity) valid?='valid'
	 *     validMessage=STRING (ambiguity)
	 *     validMessage=STRING (ambiguity) ';'? (rule end)
	 *     validMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     validMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validMessage=STRING (ambiguity) key?='key'
	 *     validMessage=STRING (ambiguity) notChangeable?=NOT
	 *     validMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     validMessage=STRING (ambiguity) nullable?='nullable'
	 *     validMessage=STRING (ambiguity) required?='required'
	 *     validMessage=STRING (ambiguity) transient?='transient'
	 *     validMessage=STRING (ambiguity) valid?='valid'
	 *     validate=STRING (ambiguity)
	 *     validate=STRING (ambiguity) ';'? (rule end)
	 *     validate=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validate=STRING (ambiguity) 'size' '=' size=STRING
	 *     validate=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validate=STRING (ambiguity) key?='key'
	 *     validate=STRING (ambiguity) notChangeable?=NOT
	 *     validate=STRING (ambiguity) notEmpty?='notEmpty'
	 *     validate=STRING (ambiguity) nullable?='nullable'
	 *     validate=STRING (ambiguity) required?='required'
	 *     validate=STRING (ambiguity) transient?='transient'
	 *     validate=STRING (ambiguity) valid?='valid'
	 */
	protected void emit_DtoReference___ChangeableKeyword_7_1_1_q___NOTTerminalRuleCall_7_2_1_0_RequiredKeyword_7_2_1_1__q___NOTTerminalRuleCall_7_3_0_1_0_NullableKeyword_7_3_0_1_1__q__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     extends=[Entity|ID] 'with' (ambiguity) traits+=[Trait|ID]
	 *     extendsName=JavaIdentifier 'with' (ambiguity) traits+=[Trait|ID]
	 *     name=ID 'with' (ambiguity) traits+=[Trait|ID]
	 *     traits+=[Trait|ID] 'with' (ambiguity) traits+=[Trait|ID]
	 */
	protected void emit_Entity_CommercialAtKeyword_6_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     aggregateRoot?='aggregateRoot' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     belongsTo=[DomainObject|ID] (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     cache?='cache' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     databaseTable=STRING (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorColumn=STRING (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorLength=STRING (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorType=DiscriminatorType (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorValue=STRING (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     extends=[Entity|ID] '{' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     extendsName=JavaIdentifier '{' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     gapClass?='gap' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     hint=STRING (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     inheritanceType=InheritanceType (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     name=ID '{' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     noGapClass?='nogap' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     notAuditable?=NOT 'auditable' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     package=JavaIdentifier (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     scaffold?='scaffold' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     traits+=[Trait|ID] '{' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     validate=STRING (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 */
	protected void emit_Entity_CommercialAtKeyword_7_2_14_1_0_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+ '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     extends=[Entity|ID] (ambiguity) (rule end)
	 *     extendsName=JavaIdentifier (ambiguity) (rule end)
	 *     name=ID (ambiguity) (rule end)
	 *     traits+=[Trait|ID] (ambiguity) (rule end)
	 */
	protected void emit_Entity___LeftCurlyBracketKeyword_7_0_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('optimisticLocking' | 'auditable')? (NOT 'cache')?)+
	 *
	 * This ambiguous syntax occurs at:
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'hint' '=' hint=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'validate' '=' validate=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) '}' (rule end)
	 *     aggregateRoot?='aggregateRoot' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) attributes+=Attribute
	 *     aggregateRoot?='aggregateRoot' (ambiguity) cache?='cache'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) gapClass?='gap'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) noGapClass?='nogap'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) notAuditable?=NOT
	 *     aggregateRoot?='aggregateRoot' (ambiguity) notOptimisticLocking?=NOT
	 *     aggregateRoot?='aggregateRoot' (ambiguity) operations+=DomainObjectOperation
	 *     aggregateRoot?='aggregateRoot' (ambiguity) references+=Reference
	 *     aggregateRoot?='aggregateRoot' (ambiguity) repository=Repository
	 *     aggregateRoot?='aggregateRoot' (ambiguity) scaffold?='scaffold'
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'hint' '=' hint=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'validate' '=' validate=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) '}' (rule end)
	 *     belongsTo=[DomainObject|ID] (ambiguity) aggregateRoot?='aggregateRoot'
	 *     belongsTo=[DomainObject|ID] (ambiguity) attributes+=Attribute
	 *     belongsTo=[DomainObject|ID] (ambiguity) cache?='cache'
	 *     belongsTo=[DomainObject|ID] (ambiguity) gapClass?='gap'
	 *     belongsTo=[DomainObject|ID] (ambiguity) noGapClass?='nogap'
	 *     belongsTo=[DomainObject|ID] (ambiguity) notAuditable?=NOT
	 *     belongsTo=[DomainObject|ID] (ambiguity) notOptimisticLocking?=NOT
	 *     belongsTo=[DomainObject|ID] (ambiguity) operations+=DomainObjectOperation
	 *     belongsTo=[DomainObject|ID] (ambiguity) references+=Reference
	 *     belongsTo=[DomainObject|ID] (ambiguity) repository=Repository
	 *     belongsTo=[DomainObject|ID] (ambiguity) scaffold?='scaffold'
	 *     cache?='cache' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     cache?='cache' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     cache?='cache' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     cache?='cache' (ambiguity) 'hint' '=' hint=STRING
	 *     cache?='cache' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     cache?='cache' (ambiguity) 'validate' '=' validate=STRING
	 *     cache?='cache' (ambiguity) '}' (rule end)
	 *     cache?='cache' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     cache?='cache' (ambiguity) attributes+=Attribute
	 *     cache?='cache' (ambiguity) cache?='cache'
	 *     cache?='cache' (ambiguity) gapClass?='gap'
	 *     cache?='cache' (ambiguity) noGapClass?='nogap'
	 *     cache?='cache' (ambiguity) notAuditable?=NOT
	 *     cache?='cache' (ambiguity) notOptimisticLocking?=NOT
	 *     cache?='cache' (ambiguity) operations+=DomainObjectOperation
	 *     cache?='cache' (ambiguity) references+=Reference
	 *     cache?='cache' (ambiguity) repository=Repository
	 *     cache?='cache' (ambiguity) scaffold?='scaffold'
	 *     databaseTable=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     databaseTable=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     databaseTable=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     databaseTable=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     databaseTable=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     databaseTable=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     databaseTable=STRING (ambiguity) '}' (rule end)
	 *     databaseTable=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     databaseTable=STRING (ambiguity) attributes+=Attribute
	 *     databaseTable=STRING (ambiguity) cache?='cache'
	 *     databaseTable=STRING (ambiguity) gapClass?='gap'
	 *     databaseTable=STRING (ambiguity) noGapClass?='nogap'
	 *     databaseTable=STRING (ambiguity) notAuditable?=NOT
	 *     databaseTable=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     databaseTable=STRING (ambiguity) operations+=DomainObjectOperation
	 *     databaseTable=STRING (ambiguity) references+=Reference
	 *     databaseTable=STRING (ambiguity) repository=Repository
	 *     databaseTable=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorColumn=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorColumn=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorColumn=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorColumn=STRING (ambiguity) '}' (rule end)
	 *     discriminatorColumn=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorColumn=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorColumn=STRING (ambiguity) cache?='cache'
	 *     discriminatorColumn=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorColumn=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorColumn=STRING (ambiguity) notAuditable?=NOT
	 *     discriminatorColumn=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     discriminatorColumn=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorColumn=STRING (ambiguity) references+=Reference
	 *     discriminatorColumn=STRING (ambiguity) repository=Repository
	 *     discriminatorColumn=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorLength=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorLength=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorLength=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorLength=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorLength=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorLength=STRING (ambiguity) '}' (rule end)
	 *     discriminatorLength=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorLength=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorLength=STRING (ambiguity) cache?='cache'
	 *     discriminatorLength=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorLength=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorLength=STRING (ambiguity) notAuditable?=NOT
	 *     discriminatorLength=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     discriminatorLength=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorLength=STRING (ambiguity) references+=Reference
	 *     discriminatorLength=STRING (ambiguity) repository=Repository
	 *     discriminatorLength=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorType=DiscriminatorType (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorType=DiscriminatorType (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorType=DiscriminatorType (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) '}' (rule end)
	 *     discriminatorType=DiscriminatorType (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorType=DiscriminatorType (ambiguity) attributes+=Attribute
	 *     discriminatorType=DiscriminatorType (ambiguity) cache?='cache'
	 *     discriminatorType=DiscriminatorType (ambiguity) gapClass?='gap'
	 *     discriminatorType=DiscriminatorType (ambiguity) noGapClass?='nogap'
	 *     discriminatorType=DiscriminatorType (ambiguity) notAuditable?=NOT
	 *     discriminatorType=DiscriminatorType (ambiguity) notOptimisticLocking?=NOT
	 *     discriminatorType=DiscriminatorType (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorType=DiscriminatorType (ambiguity) references+=Reference
	 *     discriminatorType=DiscriminatorType (ambiguity) repository=Repository
	 *     discriminatorType=DiscriminatorType (ambiguity) scaffold?='scaffold'
	 *     discriminatorValue=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorValue=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorValue=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorValue=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorValue=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorValue=STRING (ambiguity) '}' (rule end)
	 *     discriminatorValue=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorValue=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorValue=STRING (ambiguity) cache?='cache'
	 *     discriminatorValue=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorValue=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorValue=STRING (ambiguity) notAuditable?=NOT
	 *     discriminatorValue=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     discriminatorValue=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorValue=STRING (ambiguity) references+=Reference
	 *     discriminatorValue=STRING (ambiguity) repository=Repository
	 *     discriminatorValue=STRING (ambiguity) scaffold?='scaffold'
	 *     extends=[Entity|ID] '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     extends=[Entity|ID] '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     extends=[Entity|ID] '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     extends=[Entity|ID] '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     extends=[Entity|ID] '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     extends=[Entity|ID] '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     extends=[Entity|ID] '{' (ambiguity) 'hint' '=' hint=STRING
	 *     extends=[Entity|ID] '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     extends=[Entity|ID] '{' (ambiguity) 'validate' '=' validate=STRING
	 *     extends=[Entity|ID] '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     extends=[Entity|ID] '{' (ambiguity) attributes+=Attribute
	 *     extends=[Entity|ID] '{' (ambiguity) cache?='cache'
	 *     extends=[Entity|ID] '{' (ambiguity) gapClass?='gap'
	 *     extends=[Entity|ID] '{' (ambiguity) noGapClass?='nogap'
	 *     extends=[Entity|ID] '{' (ambiguity) notAuditable?=NOT
	 *     extends=[Entity|ID] '{' (ambiguity) notOptimisticLocking?=NOT
	 *     extends=[Entity|ID] '{' (ambiguity) operations+=DomainObjectOperation
	 *     extends=[Entity|ID] '{' (ambiguity) references+=Reference
	 *     extends=[Entity|ID] '{' (ambiguity) repository=Repository
	 *     extends=[Entity|ID] '{' (ambiguity) scaffold?='scaffold'
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'hint' '=' hint=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'validate' '=' validate=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     extendsName=JavaIdentifier '{' (ambiguity) attributes+=Attribute
	 *     extendsName=JavaIdentifier '{' (ambiguity) cache?='cache'
	 *     extendsName=JavaIdentifier '{' (ambiguity) gapClass?='gap'
	 *     extendsName=JavaIdentifier '{' (ambiguity) noGapClass?='nogap'
	 *     extendsName=JavaIdentifier '{' (ambiguity) notAuditable?=NOT
	 *     extendsName=JavaIdentifier '{' (ambiguity) notOptimisticLocking?=NOT
	 *     extendsName=JavaIdentifier '{' (ambiguity) operations+=DomainObjectOperation
	 *     extendsName=JavaIdentifier '{' (ambiguity) references+=Reference
	 *     extendsName=JavaIdentifier '{' (ambiguity) repository=Repository
	 *     extendsName=JavaIdentifier '{' (ambiguity) scaffold?='scaffold'
	 *     gapClass?='gap' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     gapClass?='gap' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     gapClass?='gap' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     gapClass?='gap' (ambiguity) 'hint' '=' hint=STRING
	 *     gapClass?='gap' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     gapClass?='gap' (ambiguity) 'validate' '=' validate=STRING
	 *     gapClass?='gap' (ambiguity) '}' (rule end)
	 *     gapClass?='gap' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     gapClass?='gap' (ambiguity) attributes+=Attribute
	 *     gapClass?='gap' (ambiguity) cache?='cache'
	 *     gapClass?='gap' (ambiguity) gapClass?='gap'
	 *     gapClass?='gap' (ambiguity) noGapClass?='nogap'
	 *     gapClass?='gap' (ambiguity) notAuditable?=NOT
	 *     gapClass?='gap' (ambiguity) notOptimisticLocking?=NOT
	 *     gapClass?='gap' (ambiguity) operations+=DomainObjectOperation
	 *     gapClass?='gap' (ambiguity) references+=Reference
	 *     gapClass?='gap' (ambiguity) repository=Repository
	 *     gapClass?='gap' (ambiguity) scaffold?='scaffold'
	 *     hint=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     hint=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     hint=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     hint=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     hint=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     hint=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     hint=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     hint=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     hint=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     hint=STRING (ambiguity) '}' (rule end)
	 *     hint=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     hint=STRING (ambiguity) attributes+=Attribute
	 *     hint=STRING (ambiguity) cache?='cache'
	 *     hint=STRING (ambiguity) gapClass?='gap'
	 *     hint=STRING (ambiguity) noGapClass?='nogap'
	 *     hint=STRING (ambiguity) notAuditable?=NOT
	 *     hint=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     hint=STRING (ambiguity) operations+=DomainObjectOperation
	 *     hint=STRING (ambiguity) references+=Reference
	 *     hint=STRING (ambiguity) repository=Repository
	 *     hint=STRING (ambiguity) scaffold?='scaffold'
	 *     inheritanceType=InheritanceType (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     inheritanceType=InheritanceType (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'hint' '=' hint=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     inheritanceType=InheritanceType (ambiguity) 'validate' '=' validate=STRING
	 *     inheritanceType=InheritanceType (ambiguity) '}' (rule end)
	 *     inheritanceType=InheritanceType (ambiguity) aggregateRoot?='aggregateRoot'
	 *     inheritanceType=InheritanceType (ambiguity) attributes+=Attribute
	 *     inheritanceType=InheritanceType (ambiguity) cache?='cache'
	 *     inheritanceType=InheritanceType (ambiguity) gapClass?='gap'
	 *     inheritanceType=InheritanceType (ambiguity) noGapClass?='nogap'
	 *     inheritanceType=InheritanceType (ambiguity) notAuditable?=NOT
	 *     inheritanceType=InheritanceType (ambiguity) notOptimisticLocking?=NOT
	 *     inheritanceType=InheritanceType (ambiguity) operations+=DomainObjectOperation
	 *     inheritanceType=InheritanceType (ambiguity) references+=Reference
	 *     inheritanceType=InheritanceType (ambiguity) repository=Repository
	 *     inheritanceType=InheritanceType (ambiguity) scaffold?='scaffold'
	 *     name=ID '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     name=ID '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     name=ID '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     name=ID '{' (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     name=ID '{' (ambiguity) 'validate' '=' validate=STRING
	 *     name=ID '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     name=ID '{' (ambiguity) attributes+=Attribute
	 *     name=ID '{' (ambiguity) cache?='cache'
	 *     name=ID '{' (ambiguity) gapClass?='gap'
	 *     name=ID '{' (ambiguity) noGapClass?='nogap'
	 *     name=ID '{' (ambiguity) notAuditable?=NOT
	 *     name=ID '{' (ambiguity) notOptimisticLocking?=NOT
	 *     name=ID '{' (ambiguity) operations+=DomainObjectOperation
	 *     name=ID '{' (ambiguity) references+=Reference
	 *     name=ID '{' (ambiguity) repository=Repository
	 *     name=ID '{' (ambiguity) scaffold?='scaffold'
	 *     noGapClass?='nogap' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     noGapClass?='nogap' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     noGapClass?='nogap' (ambiguity) 'hint' '=' hint=STRING
	 *     noGapClass?='nogap' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     noGapClass?='nogap' (ambiguity) 'validate' '=' validate=STRING
	 *     noGapClass?='nogap' (ambiguity) '}' (rule end)
	 *     noGapClass?='nogap' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     noGapClass?='nogap' (ambiguity) attributes+=Attribute
	 *     noGapClass?='nogap' (ambiguity) cache?='cache'
	 *     noGapClass?='nogap' (ambiguity) gapClass?='gap'
	 *     noGapClass?='nogap' (ambiguity) noGapClass?='nogap'
	 *     noGapClass?='nogap' (ambiguity) notAuditable?=NOT
	 *     noGapClass?='nogap' (ambiguity) notOptimisticLocking?=NOT
	 *     noGapClass?='nogap' (ambiguity) operations+=DomainObjectOperation
	 *     noGapClass?='nogap' (ambiguity) references+=Reference
	 *     noGapClass?='nogap' (ambiguity) repository=Repository
	 *     noGapClass?='nogap' (ambiguity) scaffold?='scaffold'
	 *     notAuditable?=NOT 'auditable' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     notAuditable?=NOT 'auditable' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     notAuditable?=NOT 'auditable' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     notAuditable?=NOT 'auditable' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     notAuditable?=NOT 'auditable' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     notAuditable?=NOT 'auditable' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     notAuditable?=NOT 'auditable' (ambiguity) 'hint' '=' hint=STRING
	 *     notAuditable?=NOT 'auditable' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     notAuditable?=NOT 'auditable' (ambiguity) 'validate' '=' validate=STRING
	 *     notAuditable?=NOT 'auditable' (ambiguity) '}' (rule end)
	 *     notAuditable?=NOT 'auditable' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     notAuditable?=NOT 'auditable' (ambiguity) attributes+=Attribute
	 *     notAuditable?=NOT 'auditable' (ambiguity) cache?='cache'
	 *     notAuditable?=NOT 'auditable' (ambiguity) gapClass?='gap'
	 *     notAuditable?=NOT 'auditable' (ambiguity) noGapClass?='nogap'
	 *     notAuditable?=NOT 'auditable' (ambiguity) notAuditable?=NOT
	 *     notAuditable?=NOT 'auditable' (ambiguity) notOptimisticLocking?=NOT
	 *     notAuditable?=NOT 'auditable' (ambiguity) operations+=DomainObjectOperation
	 *     notAuditable?=NOT 'auditable' (ambiguity) references+=Reference
	 *     notAuditable?=NOT 'auditable' (ambiguity) repository=Repository
	 *     notAuditable?=NOT 'auditable' (ambiguity) scaffold?='scaffold'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'hint' '=' hint=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'validate' '=' validate=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) '}' (rule end)
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) attributes+=Attribute
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) cache?='cache'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) gapClass?='gap'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) noGapClass?='nogap'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) notAuditable?=NOT
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) notOptimisticLocking?=NOT
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) operations+=DomainObjectOperation
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) references+=Reference
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) repository=Repository
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) scaffold?='scaffold'
	 *     package=JavaIdentifier (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     package=JavaIdentifier (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     package=JavaIdentifier (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     package=JavaIdentifier (ambiguity) 'hint' '=' hint=STRING
	 *     package=JavaIdentifier (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     package=JavaIdentifier (ambiguity) 'validate' '=' validate=STRING
	 *     package=JavaIdentifier (ambiguity) '}' (rule end)
	 *     package=JavaIdentifier (ambiguity) aggregateRoot?='aggregateRoot'
	 *     package=JavaIdentifier (ambiguity) attributes+=Attribute
	 *     package=JavaIdentifier (ambiguity) cache?='cache'
	 *     package=JavaIdentifier (ambiguity) gapClass?='gap'
	 *     package=JavaIdentifier (ambiguity) noGapClass?='nogap'
	 *     package=JavaIdentifier (ambiguity) notAuditable?=NOT
	 *     package=JavaIdentifier (ambiguity) notOptimisticLocking?=NOT
	 *     package=JavaIdentifier (ambiguity) operations+=DomainObjectOperation
	 *     package=JavaIdentifier (ambiguity) references+=Reference
	 *     package=JavaIdentifier (ambiguity) repository=Repository
	 *     package=JavaIdentifier (ambiguity) scaffold?='scaffold'
	 *     scaffold?='scaffold' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     scaffold?='scaffold' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     scaffold?='scaffold' (ambiguity) 'hint' '=' hint=STRING
	 *     scaffold?='scaffold' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     scaffold?='scaffold' (ambiguity) 'validate' '=' validate=STRING
	 *     scaffold?='scaffold' (ambiguity) '}' (rule end)
	 *     scaffold?='scaffold' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     scaffold?='scaffold' (ambiguity) attributes+=Attribute
	 *     scaffold?='scaffold' (ambiguity) cache?='cache'
	 *     scaffold?='scaffold' (ambiguity) gapClass?='gap'
	 *     scaffold?='scaffold' (ambiguity) noGapClass?='nogap'
	 *     scaffold?='scaffold' (ambiguity) notAuditable?=NOT
	 *     scaffold?='scaffold' (ambiguity) notOptimisticLocking?=NOT
	 *     scaffold?='scaffold' (ambiguity) operations+=DomainObjectOperation
	 *     scaffold?='scaffold' (ambiguity) references+=Reference
	 *     scaffold?='scaffold' (ambiguity) repository=Repository
	 *     scaffold?='scaffold' (ambiguity) scaffold?='scaffold'
	 *     traits+=[Trait|ID] '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     traits+=[Trait|ID] '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'hint' '=' hint=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     traits+=[Trait|ID] '{' (ambiguity) 'validate' '=' validate=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     traits+=[Trait|ID] '{' (ambiguity) attributes+=Attribute
	 *     traits+=[Trait|ID] '{' (ambiguity) cache?='cache'
	 *     traits+=[Trait|ID] '{' (ambiguity) gapClass?='gap'
	 *     traits+=[Trait|ID] '{' (ambiguity) noGapClass?='nogap'
	 *     traits+=[Trait|ID] '{' (ambiguity) notAuditable?=NOT
	 *     traits+=[Trait|ID] '{' (ambiguity) notOptimisticLocking?=NOT
	 *     traits+=[Trait|ID] '{' (ambiguity) operations+=DomainObjectOperation
	 *     traits+=[Trait|ID] '{' (ambiguity) references+=Reference
	 *     traits+=[Trait|ID] '{' (ambiguity) repository=Repository
	 *     traits+=[Trait|ID] '{' (ambiguity) scaffold?='scaffold'
	 *     validate=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     validate=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     validate=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     validate=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     validate=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     validate=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     validate=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validate=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     validate=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validate=STRING (ambiguity) '}' (rule end)
	 *     validate=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     validate=STRING (ambiguity) attributes+=Attribute
	 *     validate=STRING (ambiguity) cache?='cache'
	 *     validate=STRING (ambiguity) gapClass?='gap'
	 *     validate=STRING (ambiguity) noGapClass?='nogap'
	 *     validate=STRING (ambiguity) notAuditable?=NOT
	 *     validate=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     validate=STRING (ambiguity) operations+=DomainObjectOperation
	 *     validate=STRING (ambiguity) references+=Reference
	 *     validate=STRING (ambiguity) repository=Repository
	 *     validate=STRING (ambiguity) scaffold?='scaffold'
	 */
	protected void emit_Entity_____AuditableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ';'?
	 *
	 * This ambiguous syntax occurs at:
	 *     key?='key' (ambiguity) (rule end)
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_EnumAttribute_SemicolonKeyword_4_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ';'?
	 *
	 * This ambiguous syntax occurs at:
	 *     values+=EnumValue (ambiguity) '}' (rule end)
	 */
	protected void emit_Enum_SemicolonKeyword_10_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('a' | 'an')?
	 *
	 * This ambiguous syntax occurs at:
	 *     verb=STRING (ambiguity) entity=STRING
	 *     verb=UserActivityDefaultVerb (ambiguity) entity=STRING
	 */
	protected void emit_Feature___AKeyword_1_0_or_AnKeyword_1_1__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     participant2=[BoundedContext|ID] '[' 'P' ']' OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     participant2=[BoundedContext|ID] OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 */
	protected void emit_Partnership_EqualsSignKeyword_2_1_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 *     participant2=[BoundedContext|ID] '[' 'P' ']' (ambiguity) (rule end)
	 *     participant2=[BoundedContext|ID] (ambiguity) (rule end)
	 */
	protected void emit_Partnership___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) 'publish' (ambiguity) eventType=[Event|ID]
	 */
	protected void emit_Publish_CommercialAtKeyword_1_0_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     collectionType=CollectionType '<' (ambiguity) domainObjectType=[SimpleDomainObject|ID]
	 */
	protected void emit_Reference_CommercialAtKeyword_3_0_2_0_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) REF (ambiguity) domainObjectType=[SimpleDomainObject|ID]
	 *     doc=STRING REF (ambiguity) domainObjectType=[SimpleDomainObject|ID]
	 *     visibility=Visibility (ambiguity) domainObjectType=[SimpleDomainObject|ID]
	 */
	protected void emit_Reference_CommercialAtKeyword_3_1_0_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     nullable?='nullable'
	 *
	 * This ambiguous syntax occurs at:
	 *     (ambiguity)
	 */
	protected void emit_Reference_NullableNullableKeyword_5_3_0_0_0(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ';'?
	 *
	 * This ambiguous syntax occurs at:
	 *     cache?='cache' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     cascade=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     databaseColumn=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     databaseJoinColumn=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     databaseJoinTable=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     fetch=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     hint=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     inverse?='inverse' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     key?='key' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     name=ID ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     notChangeable?=NOT 'changeable' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     notEmpty?='notEmpty' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     notEmptyMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     nullable?='nullable' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     nullableMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     oppositeHolder=OppositeHolder ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     orderBy=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     orderColumn?='orderColumn' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     orderColumnName=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     required?='required' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     size=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     transient?='transient' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     valid?='valid' ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     validMessage=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 *     validate=STRING ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+ (ambiguity) (rule end)
	 */
	protected void emit_Reference_SemicolonKeyword_6_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('changeable'? (NOT 'required')? (NOT 'nullable')? (NOT 'cache')? (NOT 'inverse')?)+
	 *
	 * This ambiguous syntax occurs at:
	 *     cache?='cache' (ambiguity)
	 *     cache?='cache' (ambiguity) ';'? (rule end)
	 *     cache?='cache' (ambiguity) 'cascade' '=' cascade=STRING
	 *     cache?='cache' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     cache?='cache' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     cache?='cache' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     cache?='cache' (ambiguity) 'fetch' '=' fetch=STRING
	 *     cache?='cache' (ambiguity) 'hint' '=' hint=STRING
	 *     cache?='cache' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     cache?='cache' (ambiguity) 'size' '=' size=STRING
	 *     cache?='cache' (ambiguity) 'validate' '=' validate=STRING
	 *     cache?='cache' (ambiguity) cache?='cache'
	 *     cache?='cache' (ambiguity) inverse?='inverse'
	 *     cache?='cache' (ambiguity) key?='key'
	 *     cache?='cache' (ambiguity) notChangeable?=NOT
	 *     cache?='cache' (ambiguity) notEmpty?='notEmpty'
	 *     cache?='cache' (ambiguity) nullable?='nullable'
	 *     cache?='cache' (ambiguity) oppositeHolder=OppositeHolder
	 *     cache?='cache' (ambiguity) orderColumn?='orderColumn'
	 *     cache?='cache' (ambiguity) required?='required'
	 *     cache?='cache' (ambiguity) transient?='transient'
	 *     cache?='cache' (ambiguity) valid?='valid'
	 *     cascade=STRING (ambiguity)
	 *     cascade=STRING (ambiguity) ';'? (rule end)
	 *     cascade=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     cascade=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     cascade=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     cascade=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     cascade=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     cascade=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     cascade=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     cascade=STRING (ambiguity) 'size' '=' size=STRING
	 *     cascade=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     cascade=STRING (ambiguity) cache?='cache'
	 *     cascade=STRING (ambiguity) inverse?='inverse'
	 *     cascade=STRING (ambiguity) key?='key'
	 *     cascade=STRING (ambiguity) notChangeable?=NOT
	 *     cascade=STRING (ambiguity) notEmpty?='notEmpty'
	 *     cascade=STRING (ambiguity) nullable?='nullable'
	 *     cascade=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     cascade=STRING (ambiguity) orderColumn?='orderColumn'
	 *     cascade=STRING (ambiguity) required?='required'
	 *     cascade=STRING (ambiguity) transient?='transient'
	 *     cascade=STRING (ambiguity) valid?='valid'
	 *     databaseColumn=STRING (ambiguity)
	 *     databaseColumn=STRING (ambiguity) ';'? (rule end)
	 *     databaseColumn=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     databaseColumn=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     databaseColumn=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     databaseColumn=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     databaseColumn=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     databaseColumn=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     databaseColumn=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     databaseColumn=STRING (ambiguity) 'size' '=' size=STRING
	 *     databaseColumn=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     databaseColumn=STRING (ambiguity) cache?='cache'
	 *     databaseColumn=STRING (ambiguity) inverse?='inverse'
	 *     databaseColumn=STRING (ambiguity) key?='key'
	 *     databaseColumn=STRING (ambiguity) notChangeable?=NOT
	 *     databaseColumn=STRING (ambiguity) notEmpty?='notEmpty'
	 *     databaseColumn=STRING (ambiguity) nullable?='nullable'
	 *     databaseColumn=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     databaseColumn=STRING (ambiguity) orderColumn?='orderColumn'
	 *     databaseColumn=STRING (ambiguity) required?='required'
	 *     databaseColumn=STRING (ambiguity) transient?='transient'
	 *     databaseColumn=STRING (ambiguity) valid?='valid'
	 *     databaseJoinColumn=STRING (ambiguity)
	 *     databaseJoinColumn=STRING (ambiguity) ';'? (rule end)
	 *     databaseJoinColumn=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     databaseJoinColumn=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     databaseJoinColumn=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     databaseJoinColumn=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     databaseJoinColumn=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     databaseJoinColumn=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     databaseJoinColumn=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     databaseJoinColumn=STRING (ambiguity) 'size' '=' size=STRING
	 *     databaseJoinColumn=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     databaseJoinColumn=STRING (ambiguity) cache?='cache'
	 *     databaseJoinColumn=STRING (ambiguity) inverse?='inverse'
	 *     databaseJoinColumn=STRING (ambiguity) key?='key'
	 *     databaseJoinColumn=STRING (ambiguity) notChangeable?=NOT
	 *     databaseJoinColumn=STRING (ambiguity) notEmpty?='notEmpty'
	 *     databaseJoinColumn=STRING (ambiguity) nullable?='nullable'
	 *     databaseJoinColumn=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     databaseJoinColumn=STRING (ambiguity) orderColumn?='orderColumn'
	 *     databaseJoinColumn=STRING (ambiguity) required?='required'
	 *     databaseJoinColumn=STRING (ambiguity) transient?='transient'
	 *     databaseJoinColumn=STRING (ambiguity) valid?='valid'
	 *     databaseJoinTable=STRING (ambiguity)
	 *     databaseJoinTable=STRING (ambiguity) ';'? (rule end)
	 *     databaseJoinTable=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     databaseJoinTable=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     databaseJoinTable=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     databaseJoinTable=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     databaseJoinTable=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     databaseJoinTable=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     databaseJoinTable=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     databaseJoinTable=STRING (ambiguity) 'size' '=' size=STRING
	 *     databaseJoinTable=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     databaseJoinTable=STRING (ambiguity) cache?='cache'
	 *     databaseJoinTable=STRING (ambiguity) inverse?='inverse'
	 *     databaseJoinTable=STRING (ambiguity) key?='key'
	 *     databaseJoinTable=STRING (ambiguity) notChangeable?=NOT
	 *     databaseJoinTable=STRING (ambiguity) notEmpty?='notEmpty'
	 *     databaseJoinTable=STRING (ambiguity) nullable?='nullable'
	 *     databaseJoinTable=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     databaseJoinTable=STRING (ambiguity) orderColumn?='orderColumn'
	 *     databaseJoinTable=STRING (ambiguity) required?='required'
	 *     databaseJoinTable=STRING (ambiguity) transient?='transient'
	 *     databaseJoinTable=STRING (ambiguity) valid?='valid'
	 *     fetch=STRING (ambiguity)
	 *     fetch=STRING (ambiguity) ';'? (rule end)
	 *     fetch=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     fetch=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     fetch=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     fetch=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     fetch=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     fetch=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     fetch=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     fetch=STRING (ambiguity) 'size' '=' size=STRING
	 *     fetch=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     fetch=STRING (ambiguity) cache?='cache'
	 *     fetch=STRING (ambiguity) inverse?='inverse'
	 *     fetch=STRING (ambiguity) key?='key'
	 *     fetch=STRING (ambiguity) notChangeable?=NOT
	 *     fetch=STRING (ambiguity) notEmpty?='notEmpty'
	 *     fetch=STRING (ambiguity) nullable?='nullable'
	 *     fetch=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     fetch=STRING (ambiguity) orderColumn?='orderColumn'
	 *     fetch=STRING (ambiguity) required?='required'
	 *     fetch=STRING (ambiguity) transient?='transient'
	 *     fetch=STRING (ambiguity) valid?='valid'
	 *     hint=STRING (ambiguity)
	 *     hint=STRING (ambiguity) ';'? (rule end)
	 *     hint=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     hint=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     hint=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     hint=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     hint=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     hint=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     hint=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     hint=STRING (ambiguity) 'size' '=' size=STRING
	 *     hint=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     hint=STRING (ambiguity) cache?='cache'
	 *     hint=STRING (ambiguity) inverse?='inverse'
	 *     hint=STRING (ambiguity) key?='key'
	 *     hint=STRING (ambiguity) notChangeable?=NOT
	 *     hint=STRING (ambiguity) notEmpty?='notEmpty'
	 *     hint=STRING (ambiguity) nullable?='nullable'
	 *     hint=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     hint=STRING (ambiguity) orderColumn?='orderColumn'
	 *     hint=STRING (ambiguity) required?='required'
	 *     hint=STRING (ambiguity) transient?='transient'
	 *     hint=STRING (ambiguity) valid?='valid'
	 *     inverse?='inverse' (ambiguity)
	 *     inverse?='inverse' (ambiguity) ';'? (rule end)
	 *     inverse?='inverse' (ambiguity) 'cascade' '=' cascade=STRING
	 *     inverse?='inverse' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     inverse?='inverse' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     inverse?='inverse' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     inverse?='inverse' (ambiguity) 'fetch' '=' fetch=STRING
	 *     inverse?='inverse' (ambiguity) 'hint' '=' hint=STRING
	 *     inverse?='inverse' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     inverse?='inverse' (ambiguity) 'size' '=' size=STRING
	 *     inverse?='inverse' (ambiguity) 'validate' '=' validate=STRING
	 *     inverse?='inverse' (ambiguity) cache?='cache'
	 *     inverse?='inverse' (ambiguity) inverse?='inverse'
	 *     inverse?='inverse' (ambiguity) key?='key'
	 *     inverse?='inverse' (ambiguity) notChangeable?=NOT
	 *     inverse?='inverse' (ambiguity) notEmpty?='notEmpty'
	 *     inverse?='inverse' (ambiguity) nullable?='nullable'
	 *     inverse?='inverse' (ambiguity) oppositeHolder=OppositeHolder
	 *     inverse?='inverse' (ambiguity) orderColumn?='orderColumn'
	 *     inverse?='inverse' (ambiguity) required?='required'
	 *     inverse?='inverse' (ambiguity) transient?='transient'
	 *     inverse?='inverse' (ambiguity) valid?='valid'
	 *     key?='key' (ambiguity)
	 *     key?='key' (ambiguity) ';'? (rule end)
	 *     key?='key' (ambiguity) 'cascade' '=' cascade=STRING
	 *     key?='key' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     key?='key' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     key?='key' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     key?='key' (ambiguity) 'fetch' '=' fetch=STRING
	 *     key?='key' (ambiguity) 'hint' '=' hint=STRING
	 *     key?='key' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     key?='key' (ambiguity) 'size' '=' size=STRING
	 *     key?='key' (ambiguity) 'validate' '=' validate=STRING
	 *     key?='key' (ambiguity) cache?='cache'
	 *     key?='key' (ambiguity) inverse?='inverse'
	 *     key?='key' (ambiguity) key?='key'
	 *     key?='key' (ambiguity) notChangeable?=NOT
	 *     key?='key' (ambiguity) notEmpty?='notEmpty'
	 *     key?='key' (ambiguity) nullable?='nullable'
	 *     key?='key' (ambiguity) oppositeHolder=OppositeHolder
	 *     key?='key' (ambiguity) orderColumn?='orderColumn'
	 *     key?='key' (ambiguity) required?='required'
	 *     key?='key' (ambiguity) transient?='transient'
	 *     key?='key' (ambiguity) valid?='valid'
	 *     name=ID (ambiguity)
	 *     name=ID (ambiguity) ';'? (rule end)
	 *     name=ID (ambiguity) 'cascade' '=' cascade=STRING
	 *     name=ID (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     name=ID (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     name=ID (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     name=ID (ambiguity) 'fetch' '=' fetch=STRING
	 *     name=ID (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID (ambiguity) 'orderby' '=' orderBy=STRING
	 *     name=ID (ambiguity) 'size' '=' size=STRING
	 *     name=ID (ambiguity) 'validate' '=' validate=STRING
	 *     name=ID (ambiguity) cache?='cache'
	 *     name=ID (ambiguity) inverse?='inverse'
	 *     name=ID (ambiguity) key?='key'
	 *     name=ID (ambiguity) notChangeable?=NOT
	 *     name=ID (ambiguity) notEmpty?='notEmpty'
	 *     name=ID (ambiguity) nullable?='nullable'
	 *     name=ID (ambiguity) oppositeHolder=OppositeHolder
	 *     name=ID (ambiguity) orderColumn?='orderColumn'
	 *     name=ID (ambiguity) required?='required'
	 *     name=ID (ambiguity) transient?='transient'
	 *     name=ID (ambiguity) valid?='valid'
	 *     notChangeable?=NOT 'changeable' (ambiguity)
	 *     notChangeable?=NOT 'changeable' (ambiguity) ';'? (rule end)
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'cascade' '=' cascade=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'fetch' '=' fetch=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'hint' '=' hint=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'size' '=' size=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) 'validate' '=' validate=STRING
	 *     notChangeable?=NOT 'changeable' (ambiguity) cache?='cache'
	 *     notChangeable?=NOT 'changeable' (ambiguity) inverse?='inverse'
	 *     notChangeable?=NOT 'changeable' (ambiguity) key?='key'
	 *     notChangeable?=NOT 'changeable' (ambiguity) notChangeable?=NOT
	 *     notChangeable?=NOT 'changeable' (ambiguity) notEmpty?='notEmpty'
	 *     notChangeable?=NOT 'changeable' (ambiguity) nullable?='nullable'
	 *     notChangeable?=NOT 'changeable' (ambiguity) oppositeHolder=OppositeHolder
	 *     notChangeable?=NOT 'changeable' (ambiguity) orderColumn?='orderColumn'
	 *     notChangeable?=NOT 'changeable' (ambiguity) required?='required'
	 *     notChangeable?=NOT 'changeable' (ambiguity) transient?='transient'
	 *     notChangeable?=NOT 'changeable' (ambiguity) valid?='valid'
	 *     notEmpty?='notEmpty' (ambiguity)
	 *     notEmpty?='notEmpty' (ambiguity) ';'? (rule end)
	 *     notEmpty?='notEmpty' (ambiguity) 'cascade' '=' cascade=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'fetch' '=' fetch=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'hint' '=' hint=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'size' '=' size=STRING
	 *     notEmpty?='notEmpty' (ambiguity) 'validate' '=' validate=STRING
	 *     notEmpty?='notEmpty' (ambiguity) cache?='cache'
	 *     notEmpty?='notEmpty' (ambiguity) inverse?='inverse'
	 *     notEmpty?='notEmpty' (ambiguity) key?='key'
	 *     notEmpty?='notEmpty' (ambiguity) notChangeable?=NOT
	 *     notEmpty?='notEmpty' (ambiguity) notEmpty?='notEmpty'
	 *     notEmpty?='notEmpty' (ambiguity) nullable?='nullable'
	 *     notEmpty?='notEmpty' (ambiguity) oppositeHolder=OppositeHolder
	 *     notEmpty?='notEmpty' (ambiguity) orderColumn?='orderColumn'
	 *     notEmpty?='notEmpty' (ambiguity) required?='required'
	 *     notEmpty?='notEmpty' (ambiguity) transient?='transient'
	 *     notEmpty?='notEmpty' (ambiguity) valid?='valid'
	 *     notEmptyMessage=STRING (ambiguity)
	 *     notEmptyMessage=STRING (ambiguity) ';'? (rule end)
	 *     notEmptyMessage=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     notEmptyMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     notEmptyMessage=STRING (ambiguity) cache?='cache'
	 *     notEmptyMessage=STRING (ambiguity) inverse?='inverse'
	 *     notEmptyMessage=STRING (ambiguity) key?='key'
	 *     notEmptyMessage=STRING (ambiguity) notChangeable?=NOT
	 *     notEmptyMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     notEmptyMessage=STRING (ambiguity) nullable?='nullable'
	 *     notEmptyMessage=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     notEmptyMessage=STRING (ambiguity) orderColumn?='orderColumn'
	 *     notEmptyMessage=STRING (ambiguity) required?='required'
	 *     notEmptyMessage=STRING (ambiguity) transient?='transient'
	 *     notEmptyMessage=STRING (ambiguity) valid?='valid'
	 *     nullable?='nullable' (ambiguity) ';'? (rule end)
	 *     nullable?='nullable' (ambiguity) 'cascade' '=' cascade=STRING
	 *     nullable?='nullable' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     nullable?='nullable' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     nullable?='nullable' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     nullable?='nullable' (ambiguity) 'fetch' '=' fetch=STRING
	 *     nullable?='nullable' (ambiguity) 'hint' '=' hint=STRING
	 *     nullable?='nullable' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     nullable?='nullable' (ambiguity) 'size' '=' size=STRING
	 *     nullable?='nullable' (ambiguity) 'validate' '=' validate=STRING
	 *     nullable?='nullable' (ambiguity) cache?='cache'
	 *     nullable?='nullable' (ambiguity) inverse?='inverse'
	 *     nullable?='nullable' (ambiguity) key?='key'
	 *     nullable?='nullable' (ambiguity) notChangeable?=NOT
	 *     nullable?='nullable' (ambiguity) notEmpty?='notEmpty'
	 *     nullable?='nullable' (ambiguity) nullable?='nullable'
	 *     nullable?='nullable' (ambiguity) oppositeHolder=OppositeHolder
	 *     nullable?='nullable' (ambiguity) orderColumn?='orderColumn'
	 *     nullable?='nullable' (ambiguity) required?='required'
	 *     nullable?='nullable' (ambiguity) transient?='transient'
	 *     nullable?='nullable' (ambiguity) valid?='valid'
	 *     nullableMessage=STRING (ambiguity)
	 *     nullableMessage=STRING (ambiguity) ';'? (rule end)
	 *     nullableMessage=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     nullableMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     nullableMessage=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     nullableMessage=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     nullableMessage=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     nullableMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     nullableMessage=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     nullableMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     nullableMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     nullableMessage=STRING (ambiguity) cache?='cache'
	 *     nullableMessage=STRING (ambiguity) inverse?='inverse'
	 *     nullableMessage=STRING (ambiguity) key?='key'
	 *     nullableMessage=STRING (ambiguity) notChangeable?=NOT
	 *     nullableMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     nullableMessage=STRING (ambiguity) nullable?='nullable'
	 *     nullableMessage=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     nullableMessage=STRING (ambiguity) orderColumn?='orderColumn'
	 *     nullableMessage=STRING (ambiguity) required?='required'
	 *     nullableMessage=STRING (ambiguity) transient?='transient'
	 *     nullableMessage=STRING (ambiguity) valid?='valid'
	 *     oppositeHolder=OppositeHolder (ambiguity)
	 *     oppositeHolder=OppositeHolder (ambiguity) ';'? (rule end)
	 *     oppositeHolder=OppositeHolder (ambiguity) 'cascade' '=' cascade=STRING
	 *     oppositeHolder=OppositeHolder (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     oppositeHolder=OppositeHolder (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     oppositeHolder=OppositeHolder (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     oppositeHolder=OppositeHolder (ambiguity) 'fetch' '=' fetch=STRING
	 *     oppositeHolder=OppositeHolder (ambiguity) 'hint' '=' hint=STRING
	 *     oppositeHolder=OppositeHolder (ambiguity) 'orderby' '=' orderBy=STRING
	 *     oppositeHolder=OppositeHolder (ambiguity) 'size' '=' size=STRING
	 *     oppositeHolder=OppositeHolder (ambiguity) 'validate' '=' validate=STRING
	 *     oppositeHolder=OppositeHolder (ambiguity) cache?='cache'
	 *     oppositeHolder=OppositeHolder (ambiguity) inverse?='inverse'
	 *     oppositeHolder=OppositeHolder (ambiguity) key?='key'
	 *     oppositeHolder=OppositeHolder (ambiguity) notChangeable?=NOT
	 *     oppositeHolder=OppositeHolder (ambiguity) notEmpty?='notEmpty'
	 *     oppositeHolder=OppositeHolder (ambiguity) nullable?='nullable'
	 *     oppositeHolder=OppositeHolder (ambiguity) oppositeHolder=OppositeHolder
	 *     oppositeHolder=OppositeHolder (ambiguity) orderColumn?='orderColumn'
	 *     oppositeHolder=OppositeHolder (ambiguity) required?='required'
	 *     oppositeHolder=OppositeHolder (ambiguity) transient?='transient'
	 *     oppositeHolder=OppositeHolder (ambiguity) valid?='valid'
	 *     orderBy=STRING (ambiguity)
	 *     orderBy=STRING (ambiguity) ';'? (rule end)
	 *     orderBy=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     orderBy=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     orderBy=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     orderBy=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     orderBy=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     orderBy=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     orderBy=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     orderBy=STRING (ambiguity) 'size' '=' size=STRING
	 *     orderBy=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     orderBy=STRING (ambiguity) cache?='cache'
	 *     orderBy=STRING (ambiguity) inverse?='inverse'
	 *     orderBy=STRING (ambiguity) key?='key'
	 *     orderBy=STRING (ambiguity) notChangeable?=NOT
	 *     orderBy=STRING (ambiguity) notEmpty?='notEmpty'
	 *     orderBy=STRING (ambiguity) nullable?='nullable'
	 *     orderBy=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     orderBy=STRING (ambiguity) orderColumn?='orderColumn'
	 *     orderBy=STRING (ambiguity) required?='required'
	 *     orderBy=STRING (ambiguity) transient?='transient'
	 *     orderBy=STRING (ambiguity) valid?='valid'
	 *     orderColumn?='orderColumn' (ambiguity)
	 *     orderColumn?='orderColumn' (ambiguity) ';'? (rule end)
	 *     orderColumn?='orderColumn' (ambiguity) 'cascade' '=' cascade=STRING
	 *     orderColumn?='orderColumn' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     orderColumn?='orderColumn' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     orderColumn?='orderColumn' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     orderColumn?='orderColumn' (ambiguity) 'fetch' '=' fetch=STRING
	 *     orderColumn?='orderColumn' (ambiguity) 'hint' '=' hint=STRING
	 *     orderColumn?='orderColumn' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     orderColumn?='orderColumn' (ambiguity) 'size' '=' size=STRING
	 *     orderColumn?='orderColumn' (ambiguity) 'validate' '=' validate=STRING
	 *     orderColumn?='orderColumn' (ambiguity) cache?='cache'
	 *     orderColumn?='orderColumn' (ambiguity) inverse?='inverse'
	 *     orderColumn?='orderColumn' (ambiguity) key?='key'
	 *     orderColumn?='orderColumn' (ambiguity) notChangeable?=NOT
	 *     orderColumn?='orderColumn' (ambiguity) notEmpty?='notEmpty'
	 *     orderColumn?='orderColumn' (ambiguity) nullable?='nullable'
	 *     orderColumn?='orderColumn' (ambiguity) oppositeHolder=OppositeHolder
	 *     orderColumn?='orderColumn' (ambiguity) orderColumn?='orderColumn'
	 *     orderColumn?='orderColumn' (ambiguity) required?='required'
	 *     orderColumn?='orderColumn' (ambiguity) transient?='transient'
	 *     orderColumn?='orderColumn' (ambiguity) valid?='valid'
	 *     orderColumnName=STRING (ambiguity)
	 *     orderColumnName=STRING (ambiguity) ';'? (rule end)
	 *     orderColumnName=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     orderColumnName=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     orderColumnName=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     orderColumnName=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     orderColumnName=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     orderColumnName=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     orderColumnName=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     orderColumnName=STRING (ambiguity) 'size' '=' size=STRING
	 *     orderColumnName=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     orderColumnName=STRING (ambiguity) cache?='cache'
	 *     orderColumnName=STRING (ambiguity) inverse?='inverse'
	 *     orderColumnName=STRING (ambiguity) key?='key'
	 *     orderColumnName=STRING (ambiguity) notChangeable?=NOT
	 *     orderColumnName=STRING (ambiguity) notEmpty?='notEmpty'
	 *     orderColumnName=STRING (ambiguity) nullable?='nullable'
	 *     orderColumnName=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     orderColumnName=STRING (ambiguity) orderColumn?='orderColumn'
	 *     orderColumnName=STRING (ambiguity) required?='required'
	 *     orderColumnName=STRING (ambiguity) transient?='transient'
	 *     orderColumnName=STRING (ambiguity) valid?='valid'
	 *     required?='required' (ambiguity)
	 *     required?='required' (ambiguity) ';'? (rule end)
	 *     required?='required' (ambiguity) 'cascade' '=' cascade=STRING
	 *     required?='required' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     required?='required' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     required?='required' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     required?='required' (ambiguity) 'fetch' '=' fetch=STRING
	 *     required?='required' (ambiguity) 'hint' '=' hint=STRING
	 *     required?='required' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     required?='required' (ambiguity) 'size' '=' size=STRING
	 *     required?='required' (ambiguity) 'validate' '=' validate=STRING
	 *     required?='required' (ambiguity) cache?='cache'
	 *     required?='required' (ambiguity) inverse?='inverse'
	 *     required?='required' (ambiguity) key?='key'
	 *     required?='required' (ambiguity) notChangeable?=NOT
	 *     required?='required' (ambiguity) notEmpty?='notEmpty'
	 *     required?='required' (ambiguity) nullable?='nullable'
	 *     required?='required' (ambiguity) oppositeHolder=OppositeHolder
	 *     required?='required' (ambiguity) orderColumn?='orderColumn'
	 *     required?='required' (ambiguity) required?='required'
	 *     required?='required' (ambiguity) transient?='transient'
	 *     required?='required' (ambiguity) valid?='valid'
	 *     size=STRING (ambiguity)
	 *     size=STRING (ambiguity) ';'? (rule end)
	 *     size=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     size=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     size=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     size=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     size=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     size=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     size=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     size=STRING (ambiguity) 'size' '=' size=STRING
	 *     size=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     size=STRING (ambiguity) cache?='cache'
	 *     size=STRING (ambiguity) inverse?='inverse'
	 *     size=STRING (ambiguity) key?='key'
	 *     size=STRING (ambiguity) notChangeable?=NOT
	 *     size=STRING (ambiguity) notEmpty?='notEmpty'
	 *     size=STRING (ambiguity) nullable?='nullable'
	 *     size=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     size=STRING (ambiguity) orderColumn?='orderColumn'
	 *     size=STRING (ambiguity) required?='required'
	 *     size=STRING (ambiguity) transient?='transient'
	 *     size=STRING (ambiguity) valid?='valid'
	 *     transient?='transient' (ambiguity)
	 *     transient?='transient' (ambiguity) ';'? (rule end)
	 *     transient?='transient' (ambiguity) 'cascade' '=' cascade=STRING
	 *     transient?='transient' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     transient?='transient' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     transient?='transient' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     transient?='transient' (ambiguity) 'fetch' '=' fetch=STRING
	 *     transient?='transient' (ambiguity) 'hint' '=' hint=STRING
	 *     transient?='transient' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     transient?='transient' (ambiguity) 'size' '=' size=STRING
	 *     transient?='transient' (ambiguity) 'validate' '=' validate=STRING
	 *     transient?='transient' (ambiguity) cache?='cache'
	 *     transient?='transient' (ambiguity) inverse?='inverse'
	 *     transient?='transient' (ambiguity) key?='key'
	 *     transient?='transient' (ambiguity) notChangeable?=NOT
	 *     transient?='transient' (ambiguity) notEmpty?='notEmpty'
	 *     transient?='transient' (ambiguity) nullable?='nullable'
	 *     transient?='transient' (ambiguity) oppositeHolder=OppositeHolder
	 *     transient?='transient' (ambiguity) orderColumn?='orderColumn'
	 *     transient?='transient' (ambiguity) required?='required'
	 *     transient?='transient' (ambiguity) transient?='transient'
	 *     transient?='transient' (ambiguity) valid?='valid'
	 *     valid?='valid' (ambiguity)
	 *     valid?='valid' (ambiguity) ';'? (rule end)
	 *     valid?='valid' (ambiguity) 'cascade' '=' cascade=STRING
	 *     valid?='valid' (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     valid?='valid' (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     valid?='valid' (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     valid?='valid' (ambiguity) 'fetch' '=' fetch=STRING
	 *     valid?='valid' (ambiguity) 'hint' '=' hint=STRING
	 *     valid?='valid' (ambiguity) 'orderby' '=' orderBy=STRING
	 *     valid?='valid' (ambiguity) 'size' '=' size=STRING
	 *     valid?='valid' (ambiguity) 'validate' '=' validate=STRING
	 *     valid?='valid' (ambiguity) cache?='cache'
	 *     valid?='valid' (ambiguity) inverse?='inverse'
	 *     valid?='valid' (ambiguity) key?='key'
	 *     valid?='valid' (ambiguity) notChangeable?=NOT
	 *     valid?='valid' (ambiguity) notEmpty?='notEmpty'
	 *     valid?='valid' (ambiguity) nullable?='nullable'
	 *     valid?='valid' (ambiguity) oppositeHolder=OppositeHolder
	 *     valid?='valid' (ambiguity) orderColumn?='orderColumn'
	 *     valid?='valid' (ambiguity) required?='required'
	 *     valid?='valid' (ambiguity) transient?='transient'
	 *     valid?='valid' (ambiguity) valid?='valid'
	 *     validMessage=STRING (ambiguity)
	 *     validMessage=STRING (ambiguity) ';'? (rule end)
	 *     validMessage=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     validMessage=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     validMessage=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     validMessage=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     validMessage=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     validMessage=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validMessage=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     validMessage=STRING (ambiguity) 'size' '=' size=STRING
	 *     validMessage=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validMessage=STRING (ambiguity) cache?='cache'
	 *     validMessage=STRING (ambiguity) inverse?='inverse'
	 *     validMessage=STRING (ambiguity) key?='key'
	 *     validMessage=STRING (ambiguity) notChangeable?=NOT
	 *     validMessage=STRING (ambiguity) notEmpty?='notEmpty'
	 *     validMessage=STRING (ambiguity) nullable?='nullable'
	 *     validMessage=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     validMessage=STRING (ambiguity) orderColumn?='orderColumn'
	 *     validMessage=STRING (ambiguity) required?='required'
	 *     validMessage=STRING (ambiguity) transient?='transient'
	 *     validMessage=STRING (ambiguity) valid?='valid'
	 *     validate=STRING (ambiguity)
	 *     validate=STRING (ambiguity) ';'? (rule end)
	 *     validate=STRING (ambiguity) 'cascade' '=' cascade=STRING
	 *     validate=STRING (ambiguity) 'databaseColumn' '=' databaseColumn=STRING
	 *     validate=STRING (ambiguity) 'databaseJoinColumn' '=' databaseJoinColumn=STRING
	 *     validate=STRING (ambiguity) 'databaseJoinTable' '=' databaseJoinTable=STRING
	 *     validate=STRING (ambiguity) 'fetch' '=' fetch=STRING
	 *     validate=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validate=STRING (ambiguity) 'orderby' '=' orderBy=STRING
	 *     validate=STRING (ambiguity) 'size' '=' size=STRING
	 *     validate=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validate=STRING (ambiguity) cache?='cache'
	 *     validate=STRING (ambiguity) inverse?='inverse'
	 *     validate=STRING (ambiguity) key?='key'
	 *     validate=STRING (ambiguity) notChangeable?=NOT
	 *     validate=STRING (ambiguity) notEmpty?='notEmpty'
	 *     validate=STRING (ambiguity) nullable?='nullable'
	 *     validate=STRING (ambiguity) oppositeHolder=OppositeHolder
	 *     validate=STRING (ambiguity) orderColumn?='orderColumn'
	 *     validate=STRING (ambiguity) required?='required'
	 *     validate=STRING (ambiguity) transient?='transient'
	 *     validate=STRING (ambiguity) valid?='valid'
	 */
	protected void emit_Reference___ChangeableKeyword_5_1_1_q___NOTTerminalRuleCall_5_2_1_0_RequiredKeyword_5_2_1_1__q___NOTTerminalRuleCall_5_3_0_1_0_NullableKeyword_5_3_0_1_1__q___NOTTerminalRuleCall_5_7_1_0_CacheKeyword_5_7_1_1__q___NOTTerminalRuleCall_5_8_1_0_InverseKeyword_5_8_1_1__q__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'void'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) name=ID
	 *     doc=STRING (ambiguity) name=ID
	 *     visibility=Visibility (ambiguity) name=ID
	 */
	protected void emit_RepositoryOperation_VoidKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) ';' (rule end)
	 *     name=ID (ambiguity) 'condition' '=' condition=STRING
	 *     name=ID (ambiguity) 'groupBy' '=' groupBy=STRING
	 *     name=ID (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID (ambiguity) 'orderBy' '=' orderBy=STRING
	 *     name=ID (ambiguity) 'query' '=' query=STRING
	 *     name=ID (ambiguity) 'select' '=' select=STRING
	 *     name=ID (ambiguity) 'throws' throws=ThrowsIdentifier
	 *     name=ID (ambiguity) build?='build'
	 *     name=ID (ambiguity) cache?='cache'
	 *     name=ID (ambiguity) construct?='construct'
	 *     name=ID (ambiguity) delegateToAccessObject?=DELEGATE
	 *     name=ID (ambiguity) gapOperation?='gap'
	 *     name=ID (ambiguity) map?='map'
	 *     name=ID (ambiguity) noGapOperation?='nogap'
	 *     name=ID (ambiguity) publish=Publish
	 */
	protected void emit_RepositoryOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_Repository___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) DELEGATE (ambiguity) delegate=[Service|ID]
	 */
	protected void emit_ResourceOperationDelegate_CommercialAtKeyword_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) ';' (rule end)
	 *     name=ID (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID (ambiguity) 'path' '=' path=STRING
	 *     name=ID (ambiguity) 'return' '=' returnString=STRING
	 *     name=ID (ambiguity) 'throws' throws=ThrowsIdentifier
	 *     name=ID (ambiguity) delegateHolder=ResourceOperationDelegate
	 *     name=ID (ambiguity) httpMethod=HttpMethod
	 */
	protected void emit_ResourceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_Resource___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_SculptorModule___OPENTerminalRuleCall_3_0_CLOSETerminalRuleCall_3_5__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '>' | 'inject'
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) '@' dependency=[Service|ID]
	 */
	protected void emit_ServiceDependency_GreaterThanSignKeyword_0_0_or_InjectKeyword_0_1(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) DELEGATE (ambiguity) delegate=[ServiceRepositoryOption|ID]
	 */
	protected void emit_ServiceOperationDelegate_CommercialAtKeyword_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'void'?
	 *
	 * This ambiguous syntax occurs at:
	 *     (rule start) (ambiguity) name=ID
	 *     doc=STRING (ambiguity) name=ID
	 *     visibility=Visibility (ambiguity) name=ID
	 */
	protected void emit_ServiceOperation_VoidKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('(' ')')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) ';' (rule end)
	 *     name=ID (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID (ambiguity) 'throws' throws=ThrowsIdentifier
	 *     name=ID (ambiguity) delegateHolder=ServiceOperationDelegate
	 *     name=ID (ambiguity) publish=Publish
	 */
	protected void emit_ServiceOperation___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_3__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_Service___LeftCurlyBracketKeyword_4_0_RightCurlyBracketKeyword_4_4__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     participant2=[BoundedContext|ID] '[' 'SK' ']' OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     participant2=[BoundedContext|ID] OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 */
	protected void emit_SharedKernel_EqualsSignKeyword_2_1_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 *     participant2=[BoundedContext|ID] '[' 'SK' ']' (ambiguity) (rule end)
	 *     participant2=[BoundedContext|ID] (ambiguity) (rule end)
	 */
	protected void emit_SharedKernel___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     domainVisionStatement=STRING 'type' (ambiguity) type=SubDomainType
	 *     name=ID OPEN 'type' (ambiguity) type=SubDomainType
	 *     type=SubDomainType 'type' (ambiguity) type=SubDomainType
	 */
	protected void emit_Subdomain_EqualsSignKeyword_2_1_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     domainVisionStatement=STRING 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     name=ID OPEN 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 *     type=SubDomainType 'domainVisionStatement' (ambiguity) domainVisionStatement=STRING
	 */
	protected void emit_Subdomain_EqualsSignKeyword_2_1_1_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_Subdomain___OPENTerminalRuleCall_2_0_CLOSETerminalRuleCall_2_4__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_Trait___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     downstreamGovernanceRights=DownstreamGovernanceRights 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     exposedAggregatesComment=SL_COMMENT 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     implementationTechnology=STRING 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     name=ID OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     upstream=[BoundedContext|ID] OPEN 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 *     upstreamExposedAggregates+=[Aggregate|ID] 'implementationTechnology' (ambiguity) implementationTechnology=STRING
	 */
	protected void emit_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] OPEN 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     downstreamGovernanceRights=DownstreamGovernanceRights 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     exposedAggregatesComment=SL_COMMENT 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     implementationTechnology=STRING 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     name=ID OPEN 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     upstream=[BoundedContext|ID] OPEN 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 *     upstreamExposedAggregates+=[Aggregate|ID] 'exposedAggregates' (ambiguity) upstreamExposedAggregates+=[Aggregate|ID]
	 */
	protected void emit_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_1_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] OPEN 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     downstreamGovernanceRights=DownstreamGovernanceRights 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     exposedAggregatesComment=SL_COMMENT 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     implementationTechnology=STRING 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     name=ID OPEN 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     upstream=[BoundedContext|ID] OPEN 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 *     upstreamExposedAggregates+=[Aggregate|ID] 'downstreamRights' (ambiguity) downstreamGovernanceRights=DownstreamGovernanceRights
	 */
	protected void emit_UpstreamDownstreamRelationship_EqualsSignKeyword_1_2_1_2_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('D' ',')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] ('[' 'U' ']')? '->' '[' (ambiguity) downstreamRoles+=DownstreamRole
	 *     upstreamRoles+=UpstreamRole ']' '->' '[' (ambiguity) downstreamRoles+=DownstreamRole
	 */
	protected void emit_UpstreamDownstreamRelationship___DKeyword_1_0_0_3_1_0_1_0_CommaKeyword_1_0_0_3_1_0_1_1__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('D' ',')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] '[' (ambiguity) downstreamRoles+=DownstreamRole
	 */
	protected void emit_UpstreamDownstreamRelationship___DKeyword_1_0_1_1_1_0_1_0_CommaKeyword_1_0_1_1_1_0_1_1__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' 'U' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] (ambiguity) '->' '[' ('D' ',')? downstreamRoles+=DownstreamRole
	 *     upstream=[BoundedContext|ID] (ambiguity) '->' ('[' 'D' ']')? downstream=[BoundedContext|ID]
	 */
	protected void emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_1_0_0_UKeyword_1_0_0_1_0_1_RightSquareBracketKeyword_1_0_0_1_0_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' 'D' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] ('[' 'U' ']')? '->' (ambiguity) downstream=[BoundedContext|ID]
	 *     upstreamRoles+=UpstreamRole ']' '->' (ambiguity) downstream=[BoundedContext|ID]
	 */
	protected void emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_0_3_0_0_DKeyword_1_0_0_3_0_1_RightSquareBracketKeyword_1_0_0_3_0_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' 'D' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] (ambiguity) '<-' '[' ('U' ',')? upstreamRoles+=UpstreamRole
	 *     downstream=[BoundedContext|ID] (ambiguity) '<-' ('[' 'U' ']')? upstream=[BoundedContext|ID]
	 */
	protected void emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_1_0_0_DKeyword_1_0_1_1_0_1_RightSquareBracketKeyword_1_0_1_1_0_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' 'U' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] ('[' 'D' ']')? '<-' (ambiguity) upstream=[BoundedContext|ID]
	 *     downstreamRoles+=DownstreamRole ']' '<-' (ambiguity) upstream=[BoundedContext|ID]
	 */
	protected void emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_1_3_0_0_UKeyword_1_0_1_3_0_1_RightSquareBracketKeyword_1_0_1_3_0_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] (ambiguity) 'Upstream-Downstream' '[' downstreamRoles+=DownstreamRole
	 *     upstream=[BoundedContext|ID] (ambiguity) 'Upstream-Downstream' ('[' ']')? downstream=[BoundedContext|ID]
	 */
	protected void emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_1_0_RightSquareBracketKeyword_1_0_2_1_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] ('[' ']')? 'Upstream-Downstream' (ambiguity) downstream=[BoundedContext|ID]
	 *     upstreamRoles+=UpstreamRole ']' 'Upstream-Downstream' (ambiguity) downstream=[BoundedContext|ID]
	 */
	protected void emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_2_3_0_RightSquareBracketKeyword_1_0_2_3_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] (ambiguity) 'Downstream-Upstream' '[' upstreamRoles+=UpstreamRole
	 *     downstream=[BoundedContext|ID] (ambiguity) 'Downstream-Upstream' ('[' ']')? upstream=[BoundedContext|ID]
	 */
	protected void emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_1_0_RightSquareBracketKeyword_1_0_3_1_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('[' ']')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] ('[' ']')? 'Downstream-Upstream' (ambiguity) upstream=[BoundedContext|ID]
	 *     downstreamRoles+=DownstreamRole ']' 'Downstream-Upstream' (ambiguity) upstream=[BoundedContext|ID]
	 */
	protected void emit_UpstreamDownstreamRelationship___LeftSquareBracketKeyword_1_0_3_3_0_RightSquareBracketKeyword_1_0_3_3_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] (ambiguity) (rule end)
	 *     name=ID (ambiguity) (rule end)
	 *     upstream=[BoundedContext|ID] (ambiguity) (rule end)
	 */
	protected void emit_UpstreamDownstreamRelationship___OPENTerminalRuleCall_1_2_0_CLOSETerminalRuleCall_1_2_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('U' ',')?
	 *
	 * This ambiguous syntax occurs at:
	 *     upstream=[BoundedContext|ID] '[' (ambiguity) upstreamRoles+=UpstreamRole
	 */
	protected void emit_UpstreamDownstreamRelationship___UKeyword_1_0_0_1_1_0_1_0_CommaKeyword_1_0_0_1_1_0_1_1__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('U' ',')?
	 *
	 * This ambiguous syntax occurs at:
	 *     downstream=[BoundedContext|ID] ('[' 'D' ']')? '<-' '[' (ambiguity) upstreamRoles+=UpstreamRole
	 *     downstreamRoles+=DownstreamRole ']' '<-' '[' (ambiguity) upstreamRoles+=UpstreamRole
	 */
	protected void emit_UpstreamDownstreamRelationship___UKeyword_1_0_1_3_1_0_1_0_CommaKeyword_1_0_1_3_1_0_1_1__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING ('reads' | 'writes')* 'actor' (ambiguity) role=STRING
	 *     features+=Feature ('reads' | 'writes')* 'actor' (ambiguity) role=STRING
	 *     isLatencyCritical?='true' ('reads' | 'writes')* 'actor' (ambiguity) role=STRING
	 *     name=ID OPEN ('reads' | 'writes')* 'actor' (ambiguity) role=STRING
	 *     nanoentitiesRead+=STRING ('reads' | 'writes')* 'actor' (ambiguity) role=STRING
	 *     nanoentitiesWritten+=STRING ('reads' | 'writes')* 'actor' (ambiguity) role=STRING
	 *     role=STRING ('reads' | 'writes')* 'actor' (ambiguity) role=STRING
	 */
	protected void emit_UseCase_EqualsSignKeyword_2_1_0_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING ('reads' | 'writes')* 'interactions' (ambiguity) features+=Feature
	 *     features+=Feature ('reads' | 'writes')* 'interactions' (ambiguity) features+=Feature
	 *     isLatencyCritical?='true' ('reads' | 'writes')* 'interactions' (ambiguity) features+=Feature
	 *     name=ID OPEN ('reads' | 'writes')* 'interactions' (ambiguity) features+=Feature
	 *     nanoentitiesRead+=STRING ('reads' | 'writes')* 'interactions' (ambiguity) features+=Feature
	 *     nanoentitiesWritten+=STRING ('reads' | 'writes')* 'interactions' (ambiguity) features+=Feature
	 *     role=STRING ('reads' | 'writes')* 'interactions' (ambiguity) features+=Feature
	 */
	protected void emit_UseCase_EqualsSignKeyword_2_1_1_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING ('reads' | 'writes')* 'benefit' (ambiguity) benefit=STRING
	 *     features+=Feature ('reads' | 'writes')* 'benefit' (ambiguity) benefit=STRING
	 *     isLatencyCritical?='true' ('reads' | 'writes')* 'benefit' (ambiguity) benefit=STRING
	 *     name=ID OPEN ('reads' | 'writes')* 'benefit' (ambiguity) benefit=STRING
	 *     nanoentitiesRead+=STRING ('reads' | 'writes')* 'benefit' (ambiguity) benefit=STRING
	 *     nanoentitiesWritten+=STRING ('reads' | 'writes')* 'benefit' (ambiguity) benefit=STRING
	 *     role=STRING ('reads' | 'writes')* 'benefit' (ambiguity) benefit=STRING
	 */
	protected void emit_UseCase_EqualsSignKeyword_2_1_2_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     features+=Feature ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     isLatencyCritical?='true' ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     name=ID OPEN ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     nanoentitiesRead+=STRING ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     nanoentitiesWritten+=STRING ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     role=STRING ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 */
	protected void emit_UseCase_EqualsSignKeyword_2_1_3_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN ('reads' | 'writes')* CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_UseCase___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a_CLOSETerminalRuleCall_2_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('reads'* 'writes')*
	 *
	 * This ambiguous syntax occurs at:
	 *     nanoentitiesWritten+=STRING (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) nanoentitiesWritten+=STRING
	 */
	protected void emit_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__a(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('reads'* 'writes')+
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     benefit=STRING (ambiguity) nanoentitiesWritten+=STRING
	 *     features+=Feature (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     features+=Feature (ambiguity) nanoentitiesWritten+=STRING
	 *     isLatencyCritical?='true' (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     isLatencyCritical?='true' (ambiguity) nanoentitiesWritten+=STRING
	 *     name=ID OPEN (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     name=ID OPEN (ambiguity) nanoentitiesWritten+=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) nanoentitiesWritten+=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) nanoentitiesWritten+=STRING
	 *     role=STRING (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     role=STRING (ambiguity) nanoentitiesWritten+=STRING
	 */
	protected void emit_UseCase___ReadsKeyword_2_1_4_0_0_a_WritesKeyword_2_1_5_0_0__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('reads' | 'writes')*
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING (ambiguity) 'actor' '='? role=STRING
	 *     benefit=STRING (ambiguity) 'benefit' '='? benefit=STRING
	 *     benefit=STRING (ambiguity) 'interactions' '='? features+=Feature
	 *     benefit=STRING (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     benefit=STRING (ambiguity) CLOSE (rule end)
	 *     features+=Feature (ambiguity) 'actor' '='? role=STRING
	 *     features+=Feature (ambiguity) 'benefit' '='? benefit=STRING
	 *     features+=Feature (ambiguity) 'interactions' '='? features+=Feature
	 *     features+=Feature (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     features+=Feature (ambiguity) CLOSE (rule end)
	 *     isLatencyCritical?='true' (ambiguity) 'actor' '='? role=STRING
	 *     isLatencyCritical?='true' (ambiguity) 'benefit' '='? benefit=STRING
	 *     isLatencyCritical?='true' (ambiguity) 'interactions' '='? features+=Feature
	 *     isLatencyCritical?='true' (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     isLatencyCritical?='true' (ambiguity) CLOSE (rule end)
	 *     name=ID OPEN (ambiguity) 'actor' '='? role=STRING
	 *     name=ID OPEN (ambiguity) 'benefit' '='? benefit=STRING
	 *     name=ID OPEN (ambiguity) 'interactions' '='? features+=Feature
	 *     name=ID OPEN (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     nanoentitiesRead+=STRING (ambiguity) 'actor' '='? role=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) 'benefit' '='? benefit=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) 'interactions' '='? features+=Feature
	 *     nanoentitiesRead+=STRING (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     nanoentitiesRead+=STRING (ambiguity) CLOSE (rule end)
	 *     nanoentitiesWritten+=STRING (ambiguity) 'actor' '='? role=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) 'benefit' '='? benefit=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) 'interactions' '='? features+=Feature
	 *     nanoentitiesWritten+=STRING (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     nanoentitiesWritten+=STRING (ambiguity) CLOSE (rule end)
	 *     role=STRING (ambiguity) 'actor' '='? role=STRING
	 *     role=STRING (ambiguity) 'benefit' '='? benefit=STRING
	 *     role=STRING (ambiguity) 'interactions' '='? features+=Feature
	 *     role=STRING (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     role=STRING (ambiguity) CLOSE (rule end)
	 */
	protected void emit_UseCase___ReadsKeyword_2_1_4_0_0_or_WritesKeyword_2_1_5_0_0__a(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('writes'* 'reads')*
	 *
	 * This ambiguous syntax occurs at:
	 *     nanoentitiesRead+=STRING (ambiguity) ',' nanoentitiesRead+=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) nanoentitiesRead+=STRING
	 */
	protected void emit_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__a(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('writes'* 'reads')+
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING (ambiguity) ',' nanoentitiesRead+=STRING
	 *     benefit=STRING (ambiguity) nanoentitiesRead+=STRING
	 *     features+=Feature (ambiguity) ',' nanoentitiesRead+=STRING
	 *     features+=Feature (ambiguity) nanoentitiesRead+=STRING
	 *     isLatencyCritical?='true' (ambiguity) ',' nanoentitiesRead+=STRING
	 *     isLatencyCritical?='true' (ambiguity) nanoentitiesRead+=STRING
	 *     name=ID OPEN (ambiguity) ',' nanoentitiesRead+=STRING
	 *     name=ID OPEN (ambiguity) nanoentitiesRead+=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) nanoentitiesRead+=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) ',' nanoentitiesRead+=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) nanoentitiesRead+=STRING
	 *     role=STRING (ambiguity) ',' nanoentitiesRead+=STRING
	 *     role=STRING (ambiguity) nanoentitiesRead+=STRING
	 */
	protected void emit_UseCase___WritesKeyword_2_1_5_0_0_a_ReadsKeyword_2_1_4_0_0__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     'As a' | 'As an'
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING ('reads' | 'writes')* (ambiguity) role=STRING
	 *     isLatencyCritical?='true' ('reads' | 'writes')* (ambiguity) role=STRING
	 *     name=ID OPEN ('reads' | 'writes')* (ambiguity) role=STRING
	 *     nanoentitiesRead+=STRING ('reads' | 'writes')* (ambiguity) role=STRING
	 *     nanoentitiesWritten+=STRING ('reads' | 'writes')* (ambiguity) role=STRING
	 */
	protected void emit_UserStory_AsAKeyword_2_1_0_0_0_or_AsAnKeyword_2_1_0_0_1(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '='?
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     isLatencyCritical?='true' ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     name=ID OPEN ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     nanoentitiesRead+=STRING ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 *     nanoentitiesWritten+=STRING ('reads' | 'writes')* 'isLatencyCritical' (ambiguity) isLatencyCritical?='true'
	 */
	protected void emit_UserStory_EqualsSignKeyword_2_1_1_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (OPEN ('reads' | 'writes')* CLOSE)?
	 *
	 * This ambiguous syntax occurs at:
	 *     name=ID (ambiguity) (rule end)
	 */
	protected void emit_UserStory___OPENTerminalRuleCall_2_0___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a_CLOSETerminalRuleCall_2_2__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('reads'* 'writes')*
	 *
	 * This ambiguous syntax occurs at:
	 *     nanoentitiesWritten+=STRING (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) nanoentitiesWritten+=STRING
	 */
	protected void emit_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__a(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('reads'* 'writes')+
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     benefit=STRING (ambiguity) nanoentitiesWritten+=STRING
	 *     isLatencyCritical?='true' (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     isLatencyCritical?='true' (ambiguity) nanoentitiesWritten+=STRING
	 *     name=ID OPEN (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     name=ID OPEN (ambiguity) nanoentitiesWritten+=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) ',' nanoentitiesWritten+=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) nanoentitiesWritten+=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) nanoentitiesWritten+=STRING
	 */
	protected void emit_UserStory___ReadsKeyword_2_1_2_0_0_a_WritesKeyword_2_1_3_0_0__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('reads' | 'writes')*
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     benefit=STRING (ambiguity) ('As a' | 'As an') role=STRING
	 *     benefit=STRING (ambiguity) CLOSE (rule end)
	 *     isLatencyCritical?='true' (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     isLatencyCritical?='true' (ambiguity) ('As a' | 'As an') role=STRING
	 *     isLatencyCritical?='true' (ambiguity) CLOSE (rule end)
	 *     name=ID OPEN (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     name=ID OPEN (ambiguity) ('As a' | 'As an') role=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     nanoentitiesRead+=STRING (ambiguity) ('As a' | 'As an') role=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) CLOSE (rule end)
	 *     nanoentitiesWritten+=STRING (ambiguity) 'isLatencyCritical' '='? isLatencyCritical?='true'
	 *     nanoentitiesWritten+=STRING (ambiguity) ('As a' | 'As an') role=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) CLOSE (rule end)
	 */
	protected void emit_UserStory___ReadsKeyword_2_1_2_0_0_or_WritesKeyword_2_1_3_0_0__a(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('writes'* 'reads')*
	 *
	 * This ambiguous syntax occurs at:
	 *     nanoentitiesRead+=STRING (ambiguity) ',' nanoentitiesRead+=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) nanoentitiesRead+=STRING
	 */
	protected void emit_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__a(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('writes'* 'reads')+
	 *
	 * This ambiguous syntax occurs at:
	 *     benefit=STRING (ambiguity) ',' nanoentitiesRead+=STRING
	 *     benefit=STRING (ambiguity) nanoentitiesRead+=STRING
	 *     isLatencyCritical?='true' (ambiguity) ',' nanoentitiesRead+=STRING
	 *     isLatencyCritical?='true' (ambiguity) nanoentitiesRead+=STRING
	 *     name=ID OPEN (ambiguity) ',' nanoentitiesRead+=STRING
	 *     name=ID OPEN (ambiguity) nanoentitiesRead+=STRING
	 *     nanoentitiesRead+=STRING (ambiguity) nanoentitiesRead+=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) ',' nanoentitiesRead+=STRING
	 *     nanoentitiesWritten+=STRING (ambiguity) nanoentitiesRead+=STRING
	 */
	protected void emit_UserStory___WritesKeyword_2_1_3_0_0_a_ReadsKeyword_2_1_2_0_0__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     extends=[ValueObject|ID] 'with' (ambiguity) traits+=[Trait|ID]
	 *     extendsName=JavaIdentifier 'with' (ambiguity) traits+=[Trait|ID]
	 *     name=ID 'with' (ambiguity) traits+=[Trait|ID]
	 *     traits+=[Trait|ID] 'with' (ambiguity) traits+=[Trait|ID]
	 */
	protected void emit_ValueObject_CommercialAtKeyword_6_1_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     '@'?
	 *
	 * This ambiguous syntax occurs at:
	 *     aggregateRoot?='aggregateRoot' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     belongsTo=[DomainObject|ID] (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     cache?='cache' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     databaseTable=STRING (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorColumn=STRING (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorLength=STRING (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorType=DiscriminatorType (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     discriminatorValue=STRING (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     extends=[ValueObject|ID] '{' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     extendsName=JavaIdentifier '{' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     gapClass?='gap' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     hint=STRING (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     inheritanceType=InheritanceType (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     name=ID '{' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     noGapClass?='nogap' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     notImmutable?=NOT 'immutable' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     notPersistent?=NOT 'persistent' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     package=JavaIdentifier (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     persistent?='persistent' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     scaffold?='scaffold' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     traits+=[Trait|ID] '{' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 *     validate=STRING (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ 'belongsTo' (ambiguity) belongsTo=[DomainObject|ID]
	 */
	protected void emit_ValueObject_CommercialAtKeyword_7_2_15_1_0_q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     ('{' (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+ '}')?
	 *
	 * This ambiguous syntax occurs at:
	 *     extends=[ValueObject|ID] (ambiguity) (rule end)
	 *     extendsName=JavaIdentifier (ambiguity) (rule end)
	 *     name=ID (ambiguity) (rule end)
	 *     traits+=[Trait|ID] (ambiguity) (rule end)
	 */
	protected void emit_ValueObject___LeftCurlyBracketKeyword_7_0_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p_RightCurlyBracketKeyword_7_5__q(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
	/**
	 * Ambiguous syntax:
	 *     (('optimisticLocking' | 'immutable')? (NOT 'cache')?)+
	 *
	 * This ambiguous syntax occurs at:
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'hint' '=' hint=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     aggregateRoot?='aggregateRoot' (ambiguity) 'validate' '=' validate=STRING
	 *     aggregateRoot?='aggregateRoot' (ambiguity) '}' (rule end)
	 *     aggregateRoot?='aggregateRoot' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) attributes+=Attribute
	 *     aggregateRoot?='aggregateRoot' (ambiguity) cache?='cache'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) gapClass?='gap'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) noGapClass?='nogap'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) notImmutable?=NOT
	 *     aggregateRoot?='aggregateRoot' (ambiguity) notOptimisticLocking?=NOT
	 *     aggregateRoot?='aggregateRoot' (ambiguity) notPersistent?=NOT
	 *     aggregateRoot?='aggregateRoot' (ambiguity) operations+=DomainObjectOperation
	 *     aggregateRoot?='aggregateRoot' (ambiguity) persistent?='persistent'
	 *     aggregateRoot?='aggregateRoot' (ambiguity) references+=Reference
	 *     aggregateRoot?='aggregateRoot' (ambiguity) repository=Repository
	 *     aggregateRoot?='aggregateRoot' (ambiguity) scaffold?='scaffold'
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'hint' '=' hint=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     belongsTo=[DomainObject|ID] (ambiguity) 'validate' '=' validate=STRING
	 *     belongsTo=[DomainObject|ID] (ambiguity) '}' (rule end)
	 *     belongsTo=[DomainObject|ID] (ambiguity) aggregateRoot?='aggregateRoot'
	 *     belongsTo=[DomainObject|ID] (ambiguity) attributes+=Attribute
	 *     belongsTo=[DomainObject|ID] (ambiguity) cache?='cache'
	 *     belongsTo=[DomainObject|ID] (ambiguity) gapClass?='gap'
	 *     belongsTo=[DomainObject|ID] (ambiguity) noGapClass?='nogap'
	 *     belongsTo=[DomainObject|ID] (ambiguity) notImmutable?=NOT
	 *     belongsTo=[DomainObject|ID] (ambiguity) notOptimisticLocking?=NOT
	 *     belongsTo=[DomainObject|ID] (ambiguity) notPersistent?=NOT
	 *     belongsTo=[DomainObject|ID] (ambiguity) operations+=DomainObjectOperation
	 *     belongsTo=[DomainObject|ID] (ambiguity) persistent?='persistent'
	 *     belongsTo=[DomainObject|ID] (ambiguity) references+=Reference
	 *     belongsTo=[DomainObject|ID] (ambiguity) repository=Repository
	 *     belongsTo=[DomainObject|ID] (ambiguity) scaffold?='scaffold'
	 *     cache?='cache' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     cache?='cache' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     cache?='cache' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     cache?='cache' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     cache?='cache' (ambiguity) 'hint' '=' hint=STRING
	 *     cache?='cache' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     cache?='cache' (ambiguity) 'validate' '=' validate=STRING
	 *     cache?='cache' (ambiguity) '}' (rule end)
	 *     cache?='cache' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     cache?='cache' (ambiguity) attributes+=Attribute
	 *     cache?='cache' (ambiguity) cache?='cache'
	 *     cache?='cache' (ambiguity) gapClass?='gap'
	 *     cache?='cache' (ambiguity) noGapClass?='nogap'
	 *     cache?='cache' (ambiguity) notImmutable?=NOT
	 *     cache?='cache' (ambiguity) notOptimisticLocking?=NOT
	 *     cache?='cache' (ambiguity) notPersistent?=NOT
	 *     cache?='cache' (ambiguity) operations+=DomainObjectOperation
	 *     cache?='cache' (ambiguity) persistent?='persistent'
	 *     cache?='cache' (ambiguity) references+=Reference
	 *     cache?='cache' (ambiguity) repository=Repository
	 *     cache?='cache' (ambiguity) scaffold?='scaffold'
	 *     databaseTable=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     databaseTable=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     databaseTable=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     databaseTable=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     databaseTable=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     databaseTable=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     databaseTable=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     databaseTable=STRING (ambiguity) '}' (rule end)
	 *     databaseTable=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     databaseTable=STRING (ambiguity) attributes+=Attribute
	 *     databaseTable=STRING (ambiguity) cache?='cache'
	 *     databaseTable=STRING (ambiguity) gapClass?='gap'
	 *     databaseTable=STRING (ambiguity) noGapClass?='nogap'
	 *     databaseTable=STRING (ambiguity) notImmutable?=NOT
	 *     databaseTable=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     databaseTable=STRING (ambiguity) notPersistent?=NOT
	 *     databaseTable=STRING (ambiguity) operations+=DomainObjectOperation
	 *     databaseTable=STRING (ambiguity) persistent?='persistent'
	 *     databaseTable=STRING (ambiguity) references+=Reference
	 *     databaseTable=STRING (ambiguity) repository=Repository
	 *     databaseTable=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorColumn=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorColumn=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorColumn=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorColumn=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorColumn=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorColumn=STRING (ambiguity) '}' (rule end)
	 *     discriminatorColumn=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorColumn=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorColumn=STRING (ambiguity) cache?='cache'
	 *     discriminatorColumn=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorColumn=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorColumn=STRING (ambiguity) notImmutable?=NOT
	 *     discriminatorColumn=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     discriminatorColumn=STRING (ambiguity) notPersistent?=NOT
	 *     discriminatorColumn=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorColumn=STRING (ambiguity) persistent?='persistent'
	 *     discriminatorColumn=STRING (ambiguity) references+=Reference
	 *     discriminatorColumn=STRING (ambiguity) repository=Repository
	 *     discriminatorColumn=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorLength=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorLength=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorLength=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorLength=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorLength=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorLength=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorLength=STRING (ambiguity) '}' (rule end)
	 *     discriminatorLength=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorLength=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorLength=STRING (ambiguity) cache?='cache'
	 *     discriminatorLength=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorLength=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorLength=STRING (ambiguity) notImmutable?=NOT
	 *     discriminatorLength=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     discriminatorLength=STRING (ambiguity) notPersistent?=NOT
	 *     discriminatorLength=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorLength=STRING (ambiguity) persistent?='persistent'
	 *     discriminatorLength=STRING (ambiguity) references+=Reference
	 *     discriminatorLength=STRING (ambiguity) repository=Repository
	 *     discriminatorLength=STRING (ambiguity) scaffold?='scaffold'
	 *     discriminatorType=DiscriminatorType (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorType=DiscriminatorType (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorType=DiscriminatorType (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorType=DiscriminatorType (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorType=DiscriminatorType (ambiguity) '}' (rule end)
	 *     discriminatorType=DiscriminatorType (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorType=DiscriminatorType (ambiguity) attributes+=Attribute
	 *     discriminatorType=DiscriminatorType (ambiguity) cache?='cache'
	 *     discriminatorType=DiscriminatorType (ambiguity) gapClass?='gap'
	 *     discriminatorType=DiscriminatorType (ambiguity) noGapClass?='nogap'
	 *     discriminatorType=DiscriminatorType (ambiguity) notImmutable?=NOT
	 *     discriminatorType=DiscriminatorType (ambiguity) notOptimisticLocking?=NOT
	 *     discriminatorType=DiscriminatorType (ambiguity) notPersistent?=NOT
	 *     discriminatorType=DiscriminatorType (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorType=DiscriminatorType (ambiguity) persistent?='persistent'
	 *     discriminatorType=DiscriminatorType (ambiguity) references+=Reference
	 *     discriminatorType=DiscriminatorType (ambiguity) repository=Repository
	 *     discriminatorType=DiscriminatorType (ambiguity) scaffold?='scaffold'
	 *     discriminatorValue=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     discriminatorValue=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     discriminatorValue=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     discriminatorValue=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     discriminatorValue=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     discriminatorValue=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     discriminatorValue=STRING (ambiguity) '}' (rule end)
	 *     discriminatorValue=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     discriminatorValue=STRING (ambiguity) attributes+=Attribute
	 *     discriminatorValue=STRING (ambiguity) cache?='cache'
	 *     discriminatorValue=STRING (ambiguity) gapClass?='gap'
	 *     discriminatorValue=STRING (ambiguity) noGapClass?='nogap'
	 *     discriminatorValue=STRING (ambiguity) notImmutable?=NOT
	 *     discriminatorValue=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     discriminatorValue=STRING (ambiguity) notPersistent?=NOT
	 *     discriminatorValue=STRING (ambiguity) operations+=DomainObjectOperation
	 *     discriminatorValue=STRING (ambiguity) persistent?='persistent'
	 *     discriminatorValue=STRING (ambiguity) references+=Reference
	 *     discriminatorValue=STRING (ambiguity) repository=Repository
	 *     discriminatorValue=STRING (ambiguity) scaffold?='scaffold'
	 *     extends=[ValueObject|ID] '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     extends=[ValueObject|ID] '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     extends=[ValueObject|ID] '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     extends=[ValueObject|ID] '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     extends=[ValueObject|ID] '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     extends=[ValueObject|ID] '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     extends=[ValueObject|ID] '{' (ambiguity) 'hint' '=' hint=STRING
	 *     extends=[ValueObject|ID] '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     extends=[ValueObject|ID] '{' (ambiguity) 'validate' '=' validate=STRING
	 *     extends=[ValueObject|ID] '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     extends=[ValueObject|ID] '{' (ambiguity) attributes+=Attribute
	 *     extends=[ValueObject|ID] '{' (ambiguity) cache?='cache'
	 *     extends=[ValueObject|ID] '{' (ambiguity) gapClass?='gap'
	 *     extends=[ValueObject|ID] '{' (ambiguity) noGapClass?='nogap'
	 *     extends=[ValueObject|ID] '{' (ambiguity) notImmutable?=NOT
	 *     extends=[ValueObject|ID] '{' (ambiguity) notOptimisticLocking?=NOT
	 *     extends=[ValueObject|ID] '{' (ambiguity) notPersistent?=NOT
	 *     extends=[ValueObject|ID] '{' (ambiguity) operations+=DomainObjectOperation
	 *     extends=[ValueObject|ID] '{' (ambiguity) persistent?='persistent'
	 *     extends=[ValueObject|ID] '{' (ambiguity) references+=Reference
	 *     extends=[ValueObject|ID] '{' (ambiguity) repository=Repository
	 *     extends=[ValueObject|ID] '{' (ambiguity) scaffold?='scaffold'
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'hint' '=' hint=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     extendsName=JavaIdentifier '{' (ambiguity) 'validate' '=' validate=STRING
	 *     extendsName=JavaIdentifier '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     extendsName=JavaIdentifier '{' (ambiguity) attributes+=Attribute
	 *     extendsName=JavaIdentifier '{' (ambiguity) cache?='cache'
	 *     extendsName=JavaIdentifier '{' (ambiguity) gapClass?='gap'
	 *     extendsName=JavaIdentifier '{' (ambiguity) noGapClass?='nogap'
	 *     extendsName=JavaIdentifier '{' (ambiguity) notImmutable?=NOT
	 *     extendsName=JavaIdentifier '{' (ambiguity) notOptimisticLocking?=NOT
	 *     extendsName=JavaIdentifier '{' (ambiguity) notPersistent?=NOT
	 *     extendsName=JavaIdentifier '{' (ambiguity) operations+=DomainObjectOperation
	 *     extendsName=JavaIdentifier '{' (ambiguity) persistent?='persistent'
	 *     extendsName=JavaIdentifier '{' (ambiguity) references+=Reference
	 *     extendsName=JavaIdentifier '{' (ambiguity) repository=Repository
	 *     extendsName=JavaIdentifier '{' (ambiguity) scaffold?='scaffold'
	 *     gapClass?='gap' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     gapClass?='gap' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     gapClass?='gap' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     gapClass?='gap' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     gapClass?='gap' (ambiguity) 'hint' '=' hint=STRING
	 *     gapClass?='gap' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     gapClass?='gap' (ambiguity) 'validate' '=' validate=STRING
	 *     gapClass?='gap' (ambiguity) '}' (rule end)
	 *     gapClass?='gap' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     gapClass?='gap' (ambiguity) attributes+=Attribute
	 *     gapClass?='gap' (ambiguity) cache?='cache'
	 *     gapClass?='gap' (ambiguity) gapClass?='gap'
	 *     gapClass?='gap' (ambiguity) noGapClass?='nogap'
	 *     gapClass?='gap' (ambiguity) notImmutable?=NOT
	 *     gapClass?='gap' (ambiguity) notOptimisticLocking?=NOT
	 *     gapClass?='gap' (ambiguity) notPersistent?=NOT
	 *     gapClass?='gap' (ambiguity) operations+=DomainObjectOperation
	 *     gapClass?='gap' (ambiguity) persistent?='persistent'
	 *     gapClass?='gap' (ambiguity) references+=Reference
	 *     gapClass?='gap' (ambiguity) repository=Repository
	 *     gapClass?='gap' (ambiguity) scaffold?='scaffold'
	 *     hint=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     hint=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     hint=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     hint=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     hint=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     hint=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     hint=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     hint=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     hint=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     hint=STRING (ambiguity) '}' (rule end)
	 *     hint=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     hint=STRING (ambiguity) attributes+=Attribute
	 *     hint=STRING (ambiguity) cache?='cache'
	 *     hint=STRING (ambiguity) gapClass?='gap'
	 *     hint=STRING (ambiguity) noGapClass?='nogap'
	 *     hint=STRING (ambiguity) notImmutable?=NOT
	 *     hint=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     hint=STRING (ambiguity) notPersistent?=NOT
	 *     hint=STRING (ambiguity) operations+=DomainObjectOperation
	 *     hint=STRING (ambiguity) persistent?='persistent'
	 *     hint=STRING (ambiguity) references+=Reference
	 *     hint=STRING (ambiguity) repository=Repository
	 *     hint=STRING (ambiguity) scaffold?='scaffold'
	 *     inheritanceType=InheritanceType (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     inheritanceType=InheritanceType (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     inheritanceType=InheritanceType (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'hint' '=' hint=STRING
	 *     inheritanceType=InheritanceType (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     inheritanceType=InheritanceType (ambiguity) 'validate' '=' validate=STRING
	 *     inheritanceType=InheritanceType (ambiguity) '}' (rule end)
	 *     inheritanceType=InheritanceType (ambiguity) aggregateRoot?='aggregateRoot'
	 *     inheritanceType=InheritanceType (ambiguity) attributes+=Attribute
	 *     inheritanceType=InheritanceType (ambiguity) cache?='cache'
	 *     inheritanceType=InheritanceType (ambiguity) gapClass?='gap'
	 *     inheritanceType=InheritanceType (ambiguity) noGapClass?='nogap'
	 *     inheritanceType=InheritanceType (ambiguity) notImmutable?=NOT
	 *     inheritanceType=InheritanceType (ambiguity) notOptimisticLocking?=NOT
	 *     inheritanceType=InheritanceType (ambiguity) notPersistent?=NOT
	 *     inheritanceType=InheritanceType (ambiguity) operations+=DomainObjectOperation
	 *     inheritanceType=InheritanceType (ambiguity) persistent?='persistent'
	 *     inheritanceType=InheritanceType (ambiguity) references+=Reference
	 *     inheritanceType=InheritanceType (ambiguity) repository=Repository
	 *     inheritanceType=InheritanceType (ambiguity) scaffold?='scaffold'
	 *     name=ID '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     name=ID '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     name=ID '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     name=ID '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     name=ID '{' (ambiguity) 'hint' '=' hint=STRING
	 *     name=ID '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     name=ID '{' (ambiguity) 'validate' '=' validate=STRING
	 *     name=ID '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     name=ID '{' (ambiguity) attributes+=Attribute
	 *     name=ID '{' (ambiguity) cache?='cache'
	 *     name=ID '{' (ambiguity) gapClass?='gap'
	 *     name=ID '{' (ambiguity) noGapClass?='nogap'
	 *     name=ID '{' (ambiguity) notImmutable?=NOT
	 *     name=ID '{' (ambiguity) notOptimisticLocking?=NOT
	 *     name=ID '{' (ambiguity) notPersistent?=NOT
	 *     name=ID '{' (ambiguity) operations+=DomainObjectOperation
	 *     name=ID '{' (ambiguity) persistent?='persistent'
	 *     name=ID '{' (ambiguity) references+=Reference
	 *     name=ID '{' (ambiguity) repository=Repository
	 *     name=ID '{' (ambiguity) scaffold?='scaffold'
	 *     noGapClass?='nogap' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     noGapClass?='nogap' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     noGapClass?='nogap' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     noGapClass?='nogap' (ambiguity) 'hint' '=' hint=STRING
	 *     noGapClass?='nogap' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     noGapClass?='nogap' (ambiguity) 'validate' '=' validate=STRING
	 *     noGapClass?='nogap' (ambiguity) '}' (rule end)
	 *     noGapClass?='nogap' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     noGapClass?='nogap' (ambiguity) attributes+=Attribute
	 *     noGapClass?='nogap' (ambiguity) cache?='cache'
	 *     noGapClass?='nogap' (ambiguity) gapClass?='gap'
	 *     noGapClass?='nogap' (ambiguity) noGapClass?='nogap'
	 *     noGapClass?='nogap' (ambiguity) notImmutable?=NOT
	 *     noGapClass?='nogap' (ambiguity) notOptimisticLocking?=NOT
	 *     noGapClass?='nogap' (ambiguity) notPersistent?=NOT
	 *     noGapClass?='nogap' (ambiguity) operations+=DomainObjectOperation
	 *     noGapClass?='nogap' (ambiguity) persistent?='persistent'
	 *     noGapClass?='nogap' (ambiguity) references+=Reference
	 *     noGapClass?='nogap' (ambiguity) repository=Repository
	 *     noGapClass?='nogap' (ambiguity) scaffold?='scaffold'
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'hint' '=' hint=STRING
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     notImmutable?=NOT 'immutable' (ambiguity) 'validate' '=' validate=STRING
	 *     notImmutable?=NOT 'immutable' (ambiguity) '}' (rule end)
	 *     notImmutable?=NOT 'immutable' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     notImmutable?=NOT 'immutable' (ambiguity) attributes+=Attribute
	 *     notImmutable?=NOT 'immutable' (ambiguity) cache?='cache'
	 *     notImmutable?=NOT 'immutable' (ambiguity) gapClass?='gap'
	 *     notImmutable?=NOT 'immutable' (ambiguity) noGapClass?='nogap'
	 *     notImmutable?=NOT 'immutable' (ambiguity) notImmutable?=NOT
	 *     notImmutable?=NOT 'immutable' (ambiguity) notOptimisticLocking?=NOT
	 *     notImmutable?=NOT 'immutable' (ambiguity) notPersistent?=NOT
	 *     notImmutable?=NOT 'immutable' (ambiguity) operations+=DomainObjectOperation
	 *     notImmutable?=NOT 'immutable' (ambiguity) persistent?='persistent'
	 *     notImmutable?=NOT 'immutable' (ambiguity) references+=Reference
	 *     notImmutable?=NOT 'immutable' (ambiguity) repository=Repository
	 *     notImmutable?=NOT 'immutable' (ambiguity) scaffold?='scaffold'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'hint' '=' hint=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) 'validate' '=' validate=STRING
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) '}' (rule end)
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) attributes+=Attribute
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) cache?='cache'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) gapClass?='gap'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) noGapClass?='nogap'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) notImmutable?=NOT
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) notOptimisticLocking?=NOT
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) notPersistent?=NOT
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) operations+=DomainObjectOperation
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) persistent?='persistent'
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) references+=Reference
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) repository=Repository
	 *     notOptimisticLocking?=NOT 'optimisticLocking' (ambiguity) scaffold?='scaffold'
	 *     notPersistent?=NOT 'persistent' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     notPersistent?=NOT 'persistent' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     notPersistent?=NOT 'persistent' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     notPersistent?=NOT 'persistent' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     notPersistent?=NOT 'persistent' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     notPersistent?=NOT 'persistent' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     notPersistent?=NOT 'persistent' (ambiguity) 'hint' '=' hint=STRING
	 *     notPersistent?=NOT 'persistent' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     notPersistent?=NOT 'persistent' (ambiguity) 'validate' '=' validate=STRING
	 *     notPersistent?=NOT 'persistent' (ambiguity) '}' (rule end)
	 *     notPersistent?=NOT 'persistent' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     notPersistent?=NOT 'persistent' (ambiguity) attributes+=Attribute
	 *     notPersistent?=NOT 'persistent' (ambiguity) cache?='cache'
	 *     notPersistent?=NOT 'persistent' (ambiguity) gapClass?='gap'
	 *     notPersistent?=NOT 'persistent' (ambiguity) noGapClass?='nogap'
	 *     notPersistent?=NOT 'persistent' (ambiguity) notImmutable?=NOT
	 *     notPersistent?=NOT 'persistent' (ambiguity) notOptimisticLocking?=NOT
	 *     notPersistent?=NOT 'persistent' (ambiguity) notPersistent?=NOT
	 *     notPersistent?=NOT 'persistent' (ambiguity) operations+=DomainObjectOperation
	 *     notPersistent?=NOT 'persistent' (ambiguity) persistent?='persistent'
	 *     notPersistent?=NOT 'persistent' (ambiguity) references+=Reference
	 *     notPersistent?=NOT 'persistent' (ambiguity) repository=Repository
	 *     notPersistent?=NOT 'persistent' (ambiguity) scaffold?='scaffold'
	 *     package=JavaIdentifier (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     package=JavaIdentifier (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     package=JavaIdentifier (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     package=JavaIdentifier (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     package=JavaIdentifier (ambiguity) 'hint' '=' hint=STRING
	 *     package=JavaIdentifier (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     package=JavaIdentifier (ambiguity) 'validate' '=' validate=STRING
	 *     package=JavaIdentifier (ambiguity) '}' (rule end)
	 *     package=JavaIdentifier (ambiguity) aggregateRoot?='aggregateRoot'
	 *     package=JavaIdentifier (ambiguity) attributes+=Attribute
	 *     package=JavaIdentifier (ambiguity) cache?='cache'
	 *     package=JavaIdentifier (ambiguity) gapClass?='gap'
	 *     package=JavaIdentifier (ambiguity) noGapClass?='nogap'
	 *     package=JavaIdentifier (ambiguity) notImmutable?=NOT
	 *     package=JavaIdentifier (ambiguity) notOptimisticLocking?=NOT
	 *     package=JavaIdentifier (ambiguity) notPersistent?=NOT
	 *     package=JavaIdentifier (ambiguity) operations+=DomainObjectOperation
	 *     package=JavaIdentifier (ambiguity) persistent?='persistent'
	 *     package=JavaIdentifier (ambiguity) references+=Reference
	 *     package=JavaIdentifier (ambiguity) repository=Repository
	 *     package=JavaIdentifier (ambiguity) scaffold?='scaffold'
	 *     persistent?='persistent' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     persistent?='persistent' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     persistent?='persistent' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     persistent?='persistent' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     persistent?='persistent' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     persistent?='persistent' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     persistent?='persistent' (ambiguity) 'hint' '=' hint=STRING
	 *     persistent?='persistent' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     persistent?='persistent' (ambiguity) 'validate' '=' validate=STRING
	 *     persistent?='persistent' (ambiguity) '}' (rule end)
	 *     persistent?='persistent' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     persistent?='persistent' (ambiguity) attributes+=Attribute
	 *     persistent?='persistent' (ambiguity) cache?='cache'
	 *     persistent?='persistent' (ambiguity) gapClass?='gap'
	 *     persistent?='persistent' (ambiguity) noGapClass?='nogap'
	 *     persistent?='persistent' (ambiguity) notImmutable?=NOT
	 *     persistent?='persistent' (ambiguity) notOptimisticLocking?=NOT
	 *     persistent?='persistent' (ambiguity) notPersistent?=NOT
	 *     persistent?='persistent' (ambiguity) operations+=DomainObjectOperation
	 *     persistent?='persistent' (ambiguity) persistent?='persistent'
	 *     persistent?='persistent' (ambiguity) references+=Reference
	 *     persistent?='persistent' (ambiguity) repository=Repository
	 *     persistent?='persistent' (ambiguity) scaffold?='scaffold'
	 *     scaffold?='scaffold' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     scaffold?='scaffold' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     scaffold?='scaffold' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     scaffold?='scaffold' (ambiguity) 'hint' '=' hint=STRING
	 *     scaffold?='scaffold' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     scaffold?='scaffold' (ambiguity) 'validate' '=' validate=STRING
	 *     scaffold?='scaffold' (ambiguity) '}' (rule end)
	 *     scaffold?='scaffold' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     scaffold?='scaffold' (ambiguity) attributes+=Attribute
	 *     scaffold?='scaffold' (ambiguity) cache?='cache'
	 *     scaffold?='scaffold' (ambiguity) gapClass?='gap'
	 *     scaffold?='scaffold' (ambiguity) noGapClass?='nogap'
	 *     scaffold?='scaffold' (ambiguity) notImmutable?=NOT
	 *     scaffold?='scaffold' (ambiguity) notOptimisticLocking?=NOT
	 *     scaffold?='scaffold' (ambiguity) notPersistent?=NOT
	 *     scaffold?='scaffold' (ambiguity) operations+=DomainObjectOperation
	 *     scaffold?='scaffold' (ambiguity) persistent?='persistent'
	 *     scaffold?='scaffold' (ambiguity) references+=Reference
	 *     scaffold?='scaffold' (ambiguity) repository=Repository
	 *     scaffold?='scaffold' (ambiguity) scaffold?='scaffold'
	 *     traits+=[Trait|ID] '{' (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     traits+=[Trait|ID] '{' (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     traits+=[Trait|ID] '{' (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'hint' '=' hint=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     traits+=[Trait|ID] '{' (ambiguity) 'validate' '=' validate=STRING
	 *     traits+=[Trait|ID] '{' (ambiguity) aggregateRoot?='aggregateRoot'
	 *     traits+=[Trait|ID] '{' (ambiguity) attributes+=Attribute
	 *     traits+=[Trait|ID] '{' (ambiguity) cache?='cache'
	 *     traits+=[Trait|ID] '{' (ambiguity) gapClass?='gap'
	 *     traits+=[Trait|ID] '{' (ambiguity) noGapClass?='nogap'
	 *     traits+=[Trait|ID] '{' (ambiguity) notImmutable?=NOT
	 *     traits+=[Trait|ID] '{' (ambiguity) notOptimisticLocking?=NOT
	 *     traits+=[Trait|ID] '{' (ambiguity) notPersistent?=NOT
	 *     traits+=[Trait|ID] '{' (ambiguity) operations+=DomainObjectOperation
	 *     traits+=[Trait|ID] '{' (ambiguity) persistent?='persistent'
	 *     traits+=[Trait|ID] '{' (ambiguity) references+=Reference
	 *     traits+=[Trait|ID] '{' (ambiguity) repository=Repository
	 *     traits+=[Trait|ID] '{' (ambiguity) scaffold?='scaffold'
	 *     validate=STRING (ambiguity) 'belongsTo' '@'? belongsTo=[DomainObject|ID]
	 *     validate=STRING (ambiguity) 'databaseTable' '=' databaseTable=STRING
	 *     validate=STRING (ambiguity) 'discriminatorColumn' '=' discriminatorColumn=STRING
	 *     validate=STRING (ambiguity) 'discriminatorLength' '=' discriminatorLength=STRING
	 *     validate=STRING (ambiguity) 'discriminatorType' '=' discriminatorType=DiscriminatorType
	 *     validate=STRING (ambiguity) 'discriminatorValue' '=' discriminatorValue=STRING
	 *     validate=STRING (ambiguity) 'hint' '=' hint=STRING
	 *     validate=STRING (ambiguity) 'inheritanceType' '=' inheritanceType=InheritanceType
	 *     validate=STRING (ambiguity) 'validate' '=' validate=STRING
	 *     validate=STRING (ambiguity) '}' (rule end)
	 *     validate=STRING (ambiguity) aggregateRoot?='aggregateRoot'
	 *     validate=STRING (ambiguity) attributes+=Attribute
	 *     validate=STRING (ambiguity) cache?='cache'
	 *     validate=STRING (ambiguity) gapClass?='gap'
	 *     validate=STRING (ambiguity) noGapClass?='nogap'
	 *     validate=STRING (ambiguity) notImmutable?=NOT
	 *     validate=STRING (ambiguity) notOptimisticLocking?=NOT
	 *     validate=STRING (ambiguity) notPersistent?=NOT
	 *     validate=STRING (ambiguity) operations+=DomainObjectOperation
	 *     validate=STRING (ambiguity) persistent?='persistent'
	 *     validate=STRING (ambiguity) references+=Reference
	 *     validate=STRING (ambiguity) repository=Repository
	 *     validate=STRING (ambiguity) scaffold?='scaffold'
	 */
	protected void emit_ValueObject_____ImmutableKeyword_7_2_1_1_or_OptimisticLockingKeyword_7_2_0_1__q___NOTTerminalRuleCall_7_2_2_1_0_CacheKeyword_7_2_2_1_1__q__p(EObject semanticObject, ISynNavigable transition, List nodes) {
		acceptNodes(transition, nodes);
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy