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

org.contextmapper.tactic.dsl.serializer.TacticDDDLanguageSyntacticSequencer Maven / Gradle / Ivy

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

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

	protected TacticDDDLanguageGrammarAccess grammarAccess;
	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_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_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_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_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_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_Trait___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_4__q;
	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 = (TacticDDDLanguageGrammarAccess) access;
		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_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_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_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_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_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_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_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.getDELEGATERule())
			return getDELEGATEToken(semanticObject, ruleCall, node);
		else if (ruleCall.getRule() == grammarAccess.getNOTRule())
			return getNOTToken(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 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 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_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_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_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_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_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_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_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_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:
	 *     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:
	 *     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:
	 *     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:
	 *     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:
	 *     '@'?
	 *
	 * 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:
	 *     '>' | '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 (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:
	 *     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