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

io.pelle.mango.dsl.services.MangoGrammarAccess Maven / Gradle / Ivy

/*
* generated by Xtext
*/
package io.pelle.mango.dsl.services;

import com.google.inject.Singleton;
import com.google.inject.Inject;

import java.util.List;

import org.eclipse.xtext.*;
import org.eclipse.xtext.service.GrammarProvider;
import org.eclipse.xtext.service.AbstractElementFinder.*;

import org.eclipse.xtext.xbase.services.XbaseGrammarAccess;
import org.eclipse.xtext.xbase.services.XtypeGrammarAccess;

@Singleton
public class MangoGrammarAccess extends AbstractGrammarElementFinder {
	
	
	public class ModelRootElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModelRoot");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
		private final Assignment cImportSectionAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0);
		private final RuleCall cImportSectionXImportSectionParserRuleCall_0_0_0 = (RuleCall)cImportSectionAssignment_0_0.eContents().get(0);
		private final Assignment cModelRootAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
		private final RuleCall cModelRootModelParserRuleCall_0_1_0 = (RuleCall)cModelRootAssignment_0_1.eContents().get(0);
		private final RuleCall cPackageDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//ModelRoot:
		//	importSection=XImportSection? modelRoot=Model | PackageDeclaration;
		public ParserRule getRule() { return rule; }

		//importSection=XImportSection? modelRoot=Model | PackageDeclaration
		public Alternatives getAlternatives() { return cAlternatives; }

		//importSection=XImportSection? modelRoot=Model
		public Group getGroup_0() { return cGroup_0; }

		//importSection=XImportSection?
		public Assignment getImportSectionAssignment_0_0() { return cImportSectionAssignment_0_0; }

		//XImportSection
		public RuleCall getImportSectionXImportSectionParserRuleCall_0_0_0() { return cImportSectionXImportSectionParserRuleCall_0_0_0; }

		//modelRoot=Model
		public Assignment getModelRootAssignment_0_1() { return cModelRootAssignment_0_1; }

		//Model
		public RuleCall getModelRootModelParserRuleCall_0_1_0() { return cModelRootModelParserRuleCall_0_1_0; }

		//PackageDeclaration
		public RuleCall getPackageDeclarationParserRuleCall_1() { return cPackageDeclarationParserRuleCall_1; }
	}

	public class ModelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Model");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cProjectKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cModelNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cModelNameValidIDParserRuleCall_1_0 = (RuleCall)cModelNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cElementsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cElementsPackageDeclarationParserRuleCall_3_0 = (RuleCall)cElementsAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Model:
		//	"project" modelName=ValidID "{" elements+=PackageDeclaration* "}";
		public ParserRule getRule() { return rule; }

		//"project" modelName=ValidID "{" elements+=PackageDeclaration* "}"
		public Group getGroup() { return cGroup; }

		//"project"
		public Keyword getProjectKeyword_0() { return cProjectKeyword_0; }

		//modelName=ValidID
		public Assignment getModelNameAssignment_1() { return cModelNameAssignment_1; }

		//ValidID
		public RuleCall getModelNameValidIDParserRuleCall_1_0() { return cModelNameValidIDParserRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//elements+=PackageDeclaration*
		public Assignment getElementsAssignment_3() { return cElementsAssignment_3; }

		//PackageDeclaration
		public RuleCall getElementsPackageDeclarationParserRuleCall_3_0() { return cElementsPackageDeclarationParserRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class PackageDeclarationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PackageDeclaration");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPackageKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cPackageNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cPackageNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cPackageNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cElementsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cElementsAbstractElementParserRuleCall_3_0 = (RuleCall)cElementsAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//PackageDeclaration:
		//	"package" packageName=QualifiedName "{" elements+=AbstractElement* "}";
		public ParserRule getRule() { return rule; }

		//"package" packageName=QualifiedName "{" elements+=AbstractElement* "}"
		public Group getGroup() { return cGroup; }

		//"package"
		public Keyword getPackageKeyword_0() { return cPackageKeyword_0; }

		//packageName=QualifiedName
		public Assignment getPackageNameAssignment_1() { return cPackageNameAssignment_1; }

		//QualifiedName
		public RuleCall getPackageNameQualifiedNameParserRuleCall_1_0() { return cPackageNameQualifiedNameParserRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//elements+=AbstractElement*
		public Assignment getElementsAssignment_3() { return cElementsAssignment_3; }

		//AbstractElement
		public RuleCall getElementsAbstractElementParserRuleCall_3_0() { return cElementsAbstractElementParserRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class AbstractElementElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AbstractElement");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cPackageDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cValueObjectParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cDatatypeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cEntityParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cEnumerationParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cModuleDefinitionParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cModuleParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		private final RuleCall cServiceParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
		private final RuleCall cDictionaryParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
		private final RuleCall cNavigationNodeParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
		
		//AbstractElement:
		//	PackageDeclaration | ValueObject | Datatype | Entity | Enumeration | ModuleDefinition | Module | Service | Dictionary
		//	| NavigationNode;
		public ParserRule getRule() { return rule; }

		//PackageDeclaration | ValueObject | Datatype | Entity | Enumeration | ModuleDefinition | Module | Service | Dictionary |
		//NavigationNode
		public Alternatives getAlternatives() { return cAlternatives; }

		//PackageDeclaration
		public RuleCall getPackageDeclarationParserRuleCall_0() { return cPackageDeclarationParserRuleCall_0; }

		//ValueObject
		public RuleCall getValueObjectParserRuleCall_1() { return cValueObjectParserRuleCall_1; }

		//Datatype
		public RuleCall getDatatypeParserRuleCall_2() { return cDatatypeParserRuleCall_2; }

		//Entity
		public RuleCall getEntityParserRuleCall_3() { return cEntityParserRuleCall_3; }

		//Enumeration
		public RuleCall getEnumerationParserRuleCall_4() { return cEnumerationParserRuleCall_4; }

		//ModuleDefinition
		public RuleCall getModuleDefinitionParserRuleCall_5() { return cModuleDefinitionParserRuleCall_5; }

		//Module
		public RuleCall getModuleParserRuleCall_6() { return cModuleParserRuleCall_6; }

		//Service
		public RuleCall getServiceParserRuleCall_7() { return cServiceParserRuleCall_7; }

		//Dictionary
		public RuleCall getDictionaryParserRuleCall_8() { return cDictionaryParserRuleCall_8; }

		//NavigationNode
		public RuleCall getNavigationNodeParserRuleCall_9() { return cNavigationNodeParserRuleCall_9; }
	}

	public class EnumerationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Enumeration");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cEnumerationKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cEnumerationValuesAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cEnumerationValuesEnumerationValueParserRuleCall_3_0 = (RuleCall)cEnumerationValuesAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		////-----------------------------------------------------------------------------
		//// enumeration
		////-----------------------------------------------------------------------------
		//Enumeration:
		//	"enumeration" name=ID "{" enumerationValues+=EnumerationValue* "}";
		public ParserRule getRule() { return rule; }

		//"enumeration" name=ID "{" enumerationValues+=EnumerationValue* "}"
		public Group getGroup() { return cGroup; }

		//"enumeration"
		public Keyword getEnumerationKeyword_0() { return cEnumerationKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//enumerationValues+=EnumerationValue*
		public Assignment getEnumerationValuesAssignment_3() { return cEnumerationValuesAssignment_3; }

		//EnumerationValue
		public RuleCall getEnumerationValuesEnumerationValueParserRuleCall_3_0() { return cEnumerationValuesEnumerationValueParserRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class EnumerationValueElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EnumerationValue");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cEqualsSignGreaterThanSignKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cValueAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cValueSTRINGTerminalRuleCall_1_1_0 = (RuleCall)cValueAssignment_1_1.eContents().get(0);
		
		//EnumerationValue:
		//	name=ID ("=>" value=STRING)?;
		public ParserRule getRule() { return rule; }

		//name=ID ("=>" value=STRING)?
		public Group getGroup() { return cGroup; }

		//name=ID
		public Assignment getNameAssignment_0() { return cNameAssignment_0; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; }

		//("=>" value=STRING)?
		public Group getGroup_1() { return cGroup_1; }

		//"=>"
		public Keyword getEqualsSignGreaterThanSignKeyword_1_0() { return cEqualsSignGreaterThanSignKeyword_1_0; }

		//value=STRING
		public Assignment getValueAssignment_1_1() { return cValueAssignment_1_1; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_1_1_0() { return cValueSTRINGTerminalRuleCall_1_1_0; }
	}

	public class EntityOptionsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityOptions");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cEntityDisableIdFieldParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cEntityLabelFieldParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cEntityPluralLabelFieldParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cEntityNaturalKeyFieldsParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cEntityHierarchicalParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		
		//EntityOptions:
		//	EntityDisableIdField | EntityLabelField | EntityPluralLabelField | EntityNaturalKeyFields | EntityHierarchical;
		public ParserRule getRule() { return rule; }

		//EntityDisableIdField | EntityLabelField | EntityPluralLabelField | EntityNaturalKeyFields | EntityHierarchical
		public Alternatives getAlternatives() { return cAlternatives; }

		//EntityDisableIdField
		public RuleCall getEntityDisableIdFieldParserRuleCall_0() { return cEntityDisableIdFieldParserRuleCall_0; }

		//EntityLabelField
		public RuleCall getEntityLabelFieldParserRuleCall_1() { return cEntityLabelFieldParserRuleCall_1; }

		//EntityPluralLabelField
		public RuleCall getEntityPluralLabelFieldParserRuleCall_2() { return cEntityPluralLabelFieldParserRuleCall_2; }

		//EntityNaturalKeyFields
		public RuleCall getEntityNaturalKeyFieldsParserRuleCall_3() { return cEntityNaturalKeyFieldsParserRuleCall_3; }

		//EntityHierarchical
		public RuleCall getEntityHierarchicalParserRuleCall_4() { return cEntityHierarchicalParserRuleCall_4; }
	}

	public class EntityNaturalKeyFieldsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityNaturalKeyFields");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cEntityNaturalKeyFieldsAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cNaturalkeyKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cNaturalKeyAttributesAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final CrossReference cNaturalKeyAttributesEntityAttributeCrossReference_3_0 = (CrossReference)cNaturalKeyAttributesAssignment_3.eContents().get(0);
		private final RuleCall cNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_3_0_1 = (RuleCall)cNaturalKeyAttributesEntityAttributeCrossReference_3_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cCommaSpaceKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cNaturalKeyAttributesAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final CrossReference cNaturalKeyAttributesEntityAttributeCrossReference_4_1_0 = (CrossReference)cNaturalKeyAttributesAssignment_4_1.eContents().get(0);
		private final RuleCall cNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cNaturalKeyAttributesEntityAttributeCrossReference_4_1_0.eContents().get(1);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//EntityNaturalKeyFields:
		//	{EntityNaturalKeyFields} "naturalkey" "{" naturalKeyAttributes+=[EntityAttribute|QualifiedName] (", "
		//	naturalKeyAttributes+=[EntityAttribute|QualifiedName])* "}";
		public ParserRule getRule() { return rule; }

		//{EntityNaturalKeyFields} "naturalkey" "{" naturalKeyAttributes+=[EntityAttribute|QualifiedName] (", "
		//naturalKeyAttributes+=[EntityAttribute|QualifiedName])* "}"
		public Group getGroup() { return cGroup; }

		//{EntityNaturalKeyFields}
		public Action getEntityNaturalKeyFieldsAction_0() { return cEntityNaturalKeyFieldsAction_0; }

		//"naturalkey"
		public Keyword getNaturalkeyKeyword_1() { return cNaturalkeyKeyword_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//naturalKeyAttributes+=[EntityAttribute|QualifiedName]
		public Assignment getNaturalKeyAttributesAssignment_3() { return cNaturalKeyAttributesAssignment_3; }

		//[EntityAttribute|QualifiedName]
		public CrossReference getNaturalKeyAttributesEntityAttributeCrossReference_3_0() { return cNaturalKeyAttributesEntityAttributeCrossReference_3_0; }

		//QualifiedName
		public RuleCall getNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_3_0_1() { return cNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_3_0_1; }

		//(", " naturalKeyAttributes+=[EntityAttribute|QualifiedName])*
		public Group getGroup_4() { return cGroup_4; }

		//", "
		public Keyword getCommaSpaceKeyword_4_0() { return cCommaSpaceKeyword_4_0; }

		//naturalKeyAttributes+=[EntityAttribute|QualifiedName]
		public Assignment getNaturalKeyAttributesAssignment_4_1() { return cNaturalKeyAttributesAssignment_4_1; }

		//[EntityAttribute|QualifiedName]
		public CrossReference getNaturalKeyAttributesEntityAttributeCrossReference_4_1_0() { return cNaturalKeyAttributesEntityAttributeCrossReference_4_1_0; }

		//QualifiedName
		public RuleCall getNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_4_1_0_1() { return cNaturalKeyAttributesEntityAttributeQualifiedNameParserRuleCall_4_1_0_1; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class EntityHierarchicalElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityHierarchical");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cEntityHierarchicalAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cHierarchicalEntityKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cHierarchicalAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cHierarchicalXBooleanLiteralParserRuleCall_2_0 = (RuleCall)cHierarchicalAssignment_2.eContents().get(0);
		
		//EntityHierarchical:
		//	{EntityHierarchical} "hierarchicalEntity" hierarchical?=XBooleanLiteral;
		public ParserRule getRule() { return rule; }

		//{EntityHierarchical} "hierarchicalEntity" hierarchical?=XBooleanLiteral
		public Group getGroup() { return cGroup; }

		//{EntityHierarchical}
		public Action getEntityHierarchicalAction_0() { return cEntityHierarchicalAction_0; }

		//"hierarchicalEntity"
		public Keyword getHierarchicalEntityKeyword_1() { return cHierarchicalEntityKeyword_1; }

		//hierarchical?=XBooleanLiteral
		public Assignment getHierarchicalAssignment_2() { return cHierarchicalAssignment_2; }

		//XBooleanLiteral
		public RuleCall getHierarchicalXBooleanLiteralParserRuleCall_2_0() { return cHierarchicalXBooleanLiteralParserRuleCall_2_0; }
	}

	public class EntityDisableIdFieldElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityDisableIdField");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cEntityDisableIdFieldAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cDisableIdFieldKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cDisableIdFieldAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cDisableIdFieldXBooleanLiteralParserRuleCall_2_0 = (RuleCall)cDisableIdFieldAssignment_2.eContents().get(0);
		
		//EntityDisableIdField:
		//	{EntityDisableIdField} "disableIdField" disableIdField?=XBooleanLiteral;
		public ParserRule getRule() { return rule; }

		//{EntityDisableIdField} "disableIdField" disableIdField?=XBooleanLiteral
		public Group getGroup() { return cGroup; }

		//{EntityDisableIdField}
		public Action getEntityDisableIdFieldAction_0() { return cEntityDisableIdFieldAction_0; }

		//"disableIdField"
		public Keyword getDisableIdFieldKeyword_1() { return cDisableIdFieldKeyword_1; }

		//disableIdField?=XBooleanLiteral
		public Assignment getDisableIdFieldAssignment_2() { return cDisableIdFieldAssignment_2; }

		//XBooleanLiteral
		public RuleCall getDisableIdFieldXBooleanLiteralParserRuleCall_2_0() { return cDisableIdFieldXBooleanLiteralParserRuleCall_2_0; }
	}

	public class EntityLabelFieldElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityLabelField");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cEntityLabelFieldAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cLabelKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cLabelAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cLabelSTRINGTerminalRuleCall_2_0 = (RuleCall)cLabelAssignment_2.eContents().get(0);
		
		//EntityLabelField:
		//	{EntityLabelField} "label" label=STRING?;
		public ParserRule getRule() { return rule; }

		//{EntityLabelField} "label" label=STRING?
		public Group getGroup() { return cGroup; }

		//{EntityLabelField}
		public Action getEntityLabelFieldAction_0() { return cEntityLabelFieldAction_0; }

		//"label"
		public Keyword getLabelKeyword_1() { return cLabelKeyword_1; }

		//label=STRING?
		public Assignment getLabelAssignment_2() { return cLabelAssignment_2; }

		//STRING
		public RuleCall getLabelSTRINGTerminalRuleCall_2_0() { return cLabelSTRINGTerminalRuleCall_2_0; }
	}

	public class EntityPluralLabelFieldElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityPluralLabelField");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cEntityPluralLabelFieldAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cPluralLabelKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cPluralLabelAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cPluralLabelSTRINGTerminalRuleCall_2_0 = (RuleCall)cPluralLabelAssignment_2.eContents().get(0);
		
		//EntityPluralLabelField:
		//	{EntityPluralLabelField} "pluralLabel" pluralLabel=STRING;
		public ParserRule getRule() { return rule; }

		//{EntityPluralLabelField} "pluralLabel" pluralLabel=STRING
		public Group getGroup() { return cGroup; }

		//{EntityPluralLabelField}
		public Action getEntityPluralLabelFieldAction_0() { return cEntityPluralLabelFieldAction_0; }

		//"pluralLabel"
		public Keyword getPluralLabelKeyword_1() { return cPluralLabelKeyword_1; }

		//pluralLabel=STRING
		public Assignment getPluralLabelAssignment_2() { return cPluralLabelAssignment_2; }

		//STRING
		public RuleCall getPluralLabelSTRINGTerminalRuleCall_2_0() { return cPluralLabelSTRINGTerminalRuleCall_2_0; }
	}

	public class EntityIdGenerationStrategyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityIdGenerationStrategy");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cEntityIdGenerationStrategyAction_0 = (Action)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cIdGeneratorStrategyKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cIdGeneratorStrategyAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cIdGeneratorStrategyIdGeneratorStrategyEnumRuleCall_1_1_0 = (RuleCall)cIdGeneratorStrategyAssignment_1_1.eContents().get(0);
		
		//EntityIdGenerationStrategy:
		//	{EntityIdGenerationStrategy} ("idGeneratorStrategy" idGeneratorStrategy=IdGeneratorStrategy)?;
		public ParserRule getRule() { return rule; }

		//{EntityIdGenerationStrategy} ("idGeneratorStrategy" idGeneratorStrategy=IdGeneratorStrategy)?
		public Group getGroup() { return cGroup; }

		//{EntityIdGenerationStrategy}
		public Action getEntityIdGenerationStrategyAction_0() { return cEntityIdGenerationStrategyAction_0; }

		//("idGeneratorStrategy" idGeneratorStrategy=IdGeneratorStrategy)?
		public Group getGroup_1() { return cGroup_1; }

		//"idGeneratorStrategy"
		public Keyword getIdGeneratorStrategyKeyword_1_0() { return cIdGeneratorStrategyKeyword_1_0; }

		//idGeneratorStrategy=IdGeneratorStrategy
		public Assignment getIdGeneratorStrategyAssignment_1_1() { return cIdGeneratorStrategyAssignment_1_1; }

		//IdGeneratorStrategy
		public RuleCall getIdGeneratorStrategyIdGeneratorStrategyEnumRuleCall_1_1_0() { return cIdGeneratorStrategyIdGeneratorStrategyEnumRuleCall_1_1_0; }
	}

	public class EntityOptionsContainerElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityOptionsContainer");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cEntityOptionsContainerAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cEntityoptionsKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cOptionsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cOptionsEntityOptionsParserRuleCall_3_0 = (RuleCall)cOptionsAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//EntityOptionsContainer:
		//	{EntityOptionsContainer} "entityoptions" "{" options+=EntityOptions* "}";
		public ParserRule getRule() { return rule; }

		//{EntityOptionsContainer} "entityoptions" "{" options+=EntityOptions* "}"
		public Group getGroup() { return cGroup; }

		//{EntityOptionsContainer}
		public Action getEntityOptionsContainerAction_0() { return cEntityOptionsContainerAction_0; }

		//"entityoptions"
		public Keyword getEntityoptionsKeyword_1() { return cEntityoptionsKeyword_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//options+=EntityOptions*
		public Assignment getOptionsAssignment_3() { return cOptionsAssignment_3; }

		//EntityOptions
		public RuleCall getOptionsEntityOptionsParserRuleCall_3_0() { return cOptionsEntityOptionsParserRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class EntityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Entity");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cEntityKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cExtendsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cExtendsEntityCrossReference_2_1_0 = (CrossReference)cExtendsAssignment_2_1.eContents().get(0);
		private final RuleCall cExtendsEntityQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cExtendsEntityCrossReference_2_1_0.eContents().get(1);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cJvmtypeKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cJvmtypeAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cJvmtypeJvmTypeReferenceParserRuleCall_3_1_0 = (RuleCall)cJvmtypeAssignment_3_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cEntityOptionsAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cEntityOptionsEntityOptionsContainerParserRuleCall_5_0 = (RuleCall)cEntityOptionsAssignment_5.eContents().get(0);
		private final Assignment cAttributesAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cAttributesEntityAttributeParserRuleCall_6_0 = (RuleCall)cAttributesAssignment_6.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		//Entity:
		//	"entity" name=ID ("extends" extends=[Entity|QualifiedName])? ("jvmtype" jvmtype=JvmTypeReference)? "{"
		//	entityOptions=EntityOptionsContainer? attributes+=EntityAttribute* "}";
		public ParserRule getRule() { return rule; }

		//"entity" name=ID ("extends" extends=[Entity|QualifiedName])? ("jvmtype" jvmtype=JvmTypeReference)? "{"
		//entityOptions=EntityOptionsContainer? attributes+=EntityAttribute* "}"
		public Group getGroup() { return cGroup; }

		//"entity"
		public Keyword getEntityKeyword_0() { return cEntityKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" extends=[Entity|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//extends=[Entity|QualifiedName]
		public Assignment getExtendsAssignment_2_1() { return cExtendsAssignment_2_1; }

		//[Entity|QualifiedName]
		public CrossReference getExtendsEntityCrossReference_2_1_0() { return cExtendsEntityCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getExtendsEntityQualifiedNameParserRuleCall_2_1_0_1() { return cExtendsEntityQualifiedNameParserRuleCall_2_1_0_1; }

		//("jvmtype" jvmtype=JvmTypeReference)?
		public Group getGroup_3() { return cGroup_3; }

		//"jvmtype"
		public Keyword getJvmtypeKeyword_3_0() { return cJvmtypeKeyword_3_0; }

		//jvmtype=JvmTypeReference
		public Assignment getJvmtypeAssignment_3_1() { return cJvmtypeAssignment_3_1; }

		//JvmTypeReference
		public RuleCall getJvmtypeJvmTypeReferenceParserRuleCall_3_1_0() { return cJvmtypeJvmTypeReferenceParserRuleCall_3_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }

		//entityOptions=EntityOptionsContainer?
		public Assignment getEntityOptionsAssignment_5() { return cEntityOptionsAssignment_5; }

		//EntityOptionsContainer
		public RuleCall getEntityOptionsEntityOptionsContainerParserRuleCall_5_0() { return cEntityOptionsEntityOptionsContainerParserRuleCall_5_0; }

		//attributes+=EntityAttribute*
		public Assignment getAttributesAssignment_6() { return cAttributesAssignment_6; }

		//EntityAttribute
		public RuleCall getAttributesEntityAttributeParserRuleCall_6_0() { return cAttributesEntityAttributeParserRuleCall_6_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
	}

	public class ValueObjectElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ValueObject");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cValueobjectKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cExtendsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cExtendsValueObjectCrossReference_2_1_0 = (CrossReference)cExtendsAssignment_2_1.eContents().get(0);
		private final RuleCall cExtendsValueObjectQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cExtendsValueObjectCrossReference_2_1_0.eContents().get(1);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cJvmtypeKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cJvmtypeAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cJvmtypeJvmTypeReferenceParserRuleCall_3_1_0 = (RuleCall)cJvmtypeAssignment_3_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cAttributesAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cAttributesEntityAttributeParserRuleCall_5_0 = (RuleCall)cAttributesAssignment_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		////-----------------------------------------------------------------------------
		//// Value Object
		////-----------------------------------------------------------------------------
		//ValueObject:
		//	"valueobject" name=ID ("extends" extends=[ValueObject|QualifiedName])? ("jvmtype" jvmtype=JvmTypeReference)? "{"
		//	attributes+=EntityAttribute* "}";
		public ParserRule getRule() { return rule; }

		//"valueobject" name=ID ("extends" extends=[ValueObject|QualifiedName])? ("jvmtype" jvmtype=JvmTypeReference)? "{"
		//attributes+=EntityAttribute* "}"
		public Group getGroup() { return cGroup; }

		//"valueobject"
		public Keyword getValueobjectKeyword_0() { return cValueobjectKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" extends=[ValueObject|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//extends=[ValueObject|QualifiedName]
		public Assignment getExtendsAssignment_2_1() { return cExtendsAssignment_2_1; }

		//[ValueObject|QualifiedName]
		public CrossReference getExtendsValueObjectCrossReference_2_1_0() { return cExtendsValueObjectCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getExtendsValueObjectQualifiedNameParserRuleCall_2_1_0_1() { return cExtendsValueObjectQualifiedNameParserRuleCall_2_1_0_1; }

		//("jvmtype" jvmtype=JvmTypeReference)?
		public Group getGroup_3() { return cGroup_3; }

		//"jvmtype"
		public Keyword getJvmtypeKeyword_3_0() { return cJvmtypeKeyword_3_0; }

		//jvmtype=JvmTypeReference
		public Assignment getJvmtypeAssignment_3_1() { return cJvmtypeAssignment_3_1; }

		//JvmTypeReference
		public RuleCall getJvmtypeJvmTypeReferenceParserRuleCall_3_1_0() { return cJvmtypeJvmTypeReferenceParserRuleCall_3_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }

		//attributes+=EntityAttribute*
		public Assignment getAttributesAssignment_5() { return cAttributesAssignment_5; }

		//EntityAttribute
		public RuleCall getAttributesEntityAttributeParserRuleCall_5_0() { return cAttributesEntityAttributeParserRuleCall_5_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class ValueObjectTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ValueObjectType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cValueobjectKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeValueObjectCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeValueObjectQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeValueObjectCrossReference_1_0.eContents().get(1);
		private final Assignment cCardinalityAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cCardinalityCardinalityEnumRuleCall_2_0 = (RuleCall)cCardinalityAssignment_2.eContents().get(0);
		
		//ValueObjectType:
		//	"valueobject" type=[ValueObject|QualifiedName] cardinality=Cardinality?;
		public ParserRule getRule() { return rule; }

		//"valueobject" type=[ValueObject|QualifiedName] cardinality=Cardinality?
		public Group getGroup() { return cGroup; }

		//"valueobject"
		public Keyword getValueobjectKeyword_0() { return cValueobjectKeyword_0; }

		//type=[ValueObject|QualifiedName]
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[ValueObject|QualifiedName]
		public CrossReference getTypeValueObjectCrossReference_1_0() { return cTypeValueObjectCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeValueObjectQualifiedNameParserRuleCall_1_0_1() { return cTypeValueObjectQualifiedNameParserRuleCall_1_0_1; }

		//cardinality=Cardinality?
		public Assignment getCardinalityAssignment_2() { return cCardinalityAssignment_2; }

		//Cardinality
		public RuleCall getCardinalityCardinalityEnumRuleCall_2_0() { return cCardinalityCardinalityEnumRuleCall_2_0; }
	}

	public class DatatypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Datatype");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSimpleDataTypeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cEntityDataTypeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//Datatype:
		//	SimpleDataType | EntityDataType;
		public ParserRule getRule() { return rule; }

		//SimpleDataType | EntityDataType
		public Alternatives getAlternatives() { return cAlternatives; }

		//SimpleDataType
		public RuleCall getSimpleDataTypeParserRuleCall_0() { return cSimpleDataTypeParserRuleCall_0; }

		//EntityDataType
		public RuleCall getEntityDataTypeParserRuleCall_1() { return cEntityDataTypeParserRuleCall_1; }
	}

	public class SimpleDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SimpleDataType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cStringDataTypeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cDecimalDataTypeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cDateDataTypeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cIntegerDataTypeParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cBinaryDataTypeParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cEnumerationDataTypeParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cBooleanDataTypeParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		private final RuleCall cDoubleDataTypeParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
		private final RuleCall cFloatDataTypeParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
		private final RuleCall cLongDataTypeParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
		
		//SimpleDataType:
		//	StringDataType | DecimalDataType | DateDataType | IntegerDataType | BinaryDataType | EnumerationDataType |
		//	BooleanDataType | DoubleDataType | FloatDataType | LongDataType;
		public ParserRule getRule() { return rule; }

		//StringDataType | DecimalDataType | DateDataType | IntegerDataType | BinaryDataType | EnumerationDataType |
		//BooleanDataType | DoubleDataType | FloatDataType | LongDataType
		public Alternatives getAlternatives() { return cAlternatives; }

		//StringDataType
		public RuleCall getStringDataTypeParserRuleCall_0() { return cStringDataTypeParserRuleCall_0; }

		//DecimalDataType
		public RuleCall getDecimalDataTypeParserRuleCall_1() { return cDecimalDataTypeParserRuleCall_1; }

		//DateDataType
		public RuleCall getDateDataTypeParserRuleCall_2() { return cDateDataTypeParserRuleCall_2; }

		//IntegerDataType
		public RuleCall getIntegerDataTypeParserRuleCall_3() { return cIntegerDataTypeParserRuleCall_3; }

		//BinaryDataType
		public RuleCall getBinaryDataTypeParserRuleCall_4() { return cBinaryDataTypeParserRuleCall_4; }

		//EnumerationDataType
		public RuleCall getEnumerationDataTypeParserRuleCall_5() { return cEnumerationDataTypeParserRuleCall_5; }

		//BooleanDataType
		public RuleCall getBooleanDataTypeParserRuleCall_6() { return cBooleanDataTypeParserRuleCall_6; }

		//DoubleDataType
		public RuleCall getDoubleDataTypeParserRuleCall_7() { return cDoubleDataTypeParserRuleCall_7; }

		//FloatDataType
		public RuleCall getFloatDataTypeParserRuleCall_8() { return cFloatDataTypeParserRuleCall_8; }

		//LongDataType
		public RuleCall getLongDataTypeParserRuleCall_9() { return cLongDataTypeParserRuleCall_9; }
	}

	public class EntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityAttribute");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSimpleDatatypeEntityAttributeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cEntityEntityAttributeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cValueObjectEntityAttributeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		
		//EntityAttribute:
		//	SimpleDatatypeEntityAttribute | EntityEntityAttribute | ValueObjectEntityAttribute;
		public ParserRule getRule() { return rule; }

		//SimpleDatatypeEntityAttribute | EntityEntityAttribute | ValueObjectEntityAttribute
		public Alternatives getAlternatives() { return cAlternatives; }

		//SimpleDatatypeEntityAttribute
		public RuleCall getSimpleDatatypeEntityAttributeParserRuleCall_0() { return cSimpleDatatypeEntityAttributeParserRuleCall_0; }

		//EntityEntityAttribute
		public RuleCall getEntityEntityAttributeParserRuleCall_1() { return cEntityEntityAttributeParserRuleCall_1; }

		//ValueObjectEntityAttribute
		public RuleCall getValueObjectEntityAttributeParserRuleCall_2() { return cValueObjectEntityAttributeParserRuleCall_2; }
	}

	public class SimpleDatatypeEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SimpleDatatypeEntityAttribute");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cMapEntityAttributeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cLongEntityAttributeParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cDateEntityAttributeParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cDecimalEntityAttributeParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cDoubleEntityAttributeParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cFloatEntityAttributeParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cStringEntityAttributeParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		private final RuleCall cBooleanEntityAttributeParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
		private final RuleCall cIntegerEntityAttributeParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
		private final RuleCall cBinaryEntityAttributeParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
		private final RuleCall cEnumerationEntityAttributeParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
		
		//SimpleDatatypeEntityAttribute:
		//	MapEntityAttribute | LongEntityAttribute | DateEntityAttribute | DecimalEntityAttribute | DoubleEntityAttribute |
		//	FloatEntityAttribute | StringEntityAttribute | BooleanEntityAttribute | IntegerEntityAttribute | BinaryEntityAttribute
		//	| EnumerationEntityAttribute;
		public ParserRule getRule() { return rule; }

		//MapEntityAttribute | LongEntityAttribute | DateEntityAttribute | DecimalEntityAttribute | DoubleEntityAttribute |
		//FloatEntityAttribute | StringEntityAttribute | BooleanEntityAttribute | IntegerEntityAttribute | BinaryEntityAttribute
		//| EnumerationEntityAttribute
		public Alternatives getAlternatives() { return cAlternatives; }

		//MapEntityAttribute
		public RuleCall getMapEntityAttributeParserRuleCall_0() { return cMapEntityAttributeParserRuleCall_0; }

		//LongEntityAttribute
		public RuleCall getLongEntityAttributeParserRuleCall_1() { return cLongEntityAttributeParserRuleCall_1; }

		//DateEntityAttribute
		public RuleCall getDateEntityAttributeParserRuleCall_2() { return cDateEntityAttributeParserRuleCall_2; }

		//DecimalEntityAttribute
		public RuleCall getDecimalEntityAttributeParserRuleCall_3() { return cDecimalEntityAttributeParserRuleCall_3; }

		//DoubleEntityAttribute
		public RuleCall getDoubleEntityAttributeParserRuleCall_4() { return cDoubleEntityAttributeParserRuleCall_4; }

		//FloatEntityAttribute
		public RuleCall getFloatEntityAttributeParserRuleCall_5() { return cFloatEntityAttributeParserRuleCall_5; }

		//StringEntityAttribute
		public RuleCall getStringEntityAttributeParserRuleCall_6() { return cStringEntityAttributeParserRuleCall_6; }

		//BooleanEntityAttribute
		public RuleCall getBooleanEntityAttributeParserRuleCall_7() { return cBooleanEntityAttributeParserRuleCall_7; }

		//IntegerEntityAttribute
		public RuleCall getIntegerEntityAttributeParserRuleCall_8() { return cIntegerEntityAttributeParserRuleCall_8; }

		//BinaryEntityAttribute
		public RuleCall getBinaryEntityAttributeParserRuleCall_9() { return cBinaryEntityAttributeParserRuleCall_9; }

		//EnumerationEntityAttribute
		public RuleCall getEnumerationEntityAttributeParserRuleCall_10() { return cEnumerationEntityAttributeParserRuleCall_10; }
	}

	public class SimpleTypeTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SimpleTypeType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cSimpleTypeTypeAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cSimpletypeKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cTypeAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cTypeSimpleTypesEnumRuleCall_2_0 = (RuleCall)cTypeAssignment_2.eContents().get(0);
		private final Assignment cCardinalityAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cCardinalityCardinalityEnumRuleCall_3_0 = (RuleCall)cCardinalityAssignment_3.eContents().get(0);
		
		//SimpleTypeType:
		//	{SimpleTypeType} "simpletype" type=SimpleTypes? cardinality=Cardinality?;
		public ParserRule getRule() { return rule; }

		//{SimpleTypeType} "simpletype" type=SimpleTypes? cardinality=Cardinality?
		public Group getGroup() { return cGroup; }

		//{SimpleTypeType}
		public Action getSimpleTypeTypeAction_0() { return cSimpleTypeTypeAction_0; }

		//"simpletype"
		public Keyword getSimpletypeKeyword_1() { return cSimpletypeKeyword_1; }

		//type=SimpleTypes?
		public Assignment getTypeAssignment_2() { return cTypeAssignment_2; }

		//SimpleTypes
		public RuleCall getTypeSimpleTypesEnumRuleCall_2_0() { return cTypeSimpleTypesEnumRuleCall_2_0; }

		//cardinality=Cardinality?
		public Assignment getCardinalityAssignment_3() { return cCardinalityAssignment_3; }

		//Cardinality
		public RuleCall getCardinalityCardinalityEnumRuleCall_3_0() { return cCardinalityCardinalityEnumRuleCall_3_0; }
	}

	public class BaseDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BaseDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cBaseDataTypeAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cBaseDatatypePropertiesAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cBaseDatatypePropertiesBaseDataTypePropertiesParserRuleCall_1_0 = (RuleCall)cBaseDatatypePropertiesAssignment_1.eContents().get(0);
		
		//BaseDataType:
		//	{BaseDataType} baseDatatypeProperties+=BaseDataTypeProperties*;
		public ParserRule getRule() { return rule; }

		//{BaseDataType} baseDatatypeProperties+=BaseDataTypeProperties*
		public Group getGroup() { return cGroup; }

		//{BaseDataType}
		public Action getBaseDataTypeAction_0() { return cBaseDataTypeAction_0; }

		//baseDatatypeProperties+=BaseDataTypeProperties*
		public Assignment getBaseDatatypePropertiesAssignment_1() { return cBaseDatatypePropertiesAssignment_1; }

		//BaseDataTypeProperties
		public RuleCall getBaseDatatypePropertiesBaseDataTypePropertiesParserRuleCall_1_0() { return cBaseDatatypePropertiesBaseDataTypePropertiesParserRuleCall_1_0; }
	}

	public class BaseDataTypePropertiesElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BaseDataTypeProperties");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cBaseDataTypeWidthParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cBaseDataTypeLabelParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//BaseDataTypeProperties:
		//	BaseDataTypeWidth | BaseDataTypeLabel;
		public ParserRule getRule() { return rule; }

		//BaseDataTypeWidth | BaseDataTypeLabel
		public Alternatives getAlternatives() { return cAlternatives; }

		//BaseDataTypeWidth
		public RuleCall getBaseDataTypeWidthParserRuleCall_0() { return cBaseDataTypeWidthParserRuleCall_0; }

		//BaseDataTypeLabel
		public RuleCall getBaseDataTypeLabelParserRuleCall_1() { return cBaseDataTypeLabelParserRuleCall_1; }
	}

	public class BaseDataTypeWidthElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BaseDataTypeWidth");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cBaseDataTypeWidthAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cWidthKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cWidthAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cWidthINTTerminalRuleCall_2_0 = (RuleCall)cWidthAssignment_2.eContents().get(0);
		
		//BaseDataTypeWidth:
		//	{BaseDataTypeWidth} "width" width=INT?;
		public ParserRule getRule() { return rule; }

		//{BaseDataTypeWidth} "width" width=INT?
		public Group getGroup() { return cGroup; }

		//{BaseDataTypeWidth}
		public Action getBaseDataTypeWidthAction_0() { return cBaseDataTypeWidthAction_0; }

		//"width"
		public Keyword getWidthKeyword_1() { return cWidthKeyword_1; }

		//width=INT?
		public Assignment getWidthAssignment_2() { return cWidthAssignment_2; }

		//INT
		public RuleCall getWidthINTTerminalRuleCall_2_0() { return cWidthINTTerminalRuleCall_2_0; }
	}

	public class BaseDataTypeLabelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BaseDataTypeLabel");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cBaseDataTypeLabelAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cLabelKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cLabelAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cLabelSTRINGTerminalRuleCall_2_0 = (RuleCall)cLabelAssignment_2.eContents().get(0);
		
		//BaseDataTypeLabel:
		//	{BaseDataTypeLabel} "label" label=STRING;
		public ParserRule getRule() { return rule; }

		//{BaseDataTypeLabel} "label" label=STRING
		public Group getGroup() { return cGroup; }

		//{BaseDataTypeLabel}
		public Action getBaseDataTypeLabelAction_0() { return cBaseDataTypeLabelAction_0; }

		//"label"
		public Keyword getLabelKeyword_1() { return cLabelKeyword_1; }

		//label=STRING
		public Assignment getLabelAssignment_2() { return cLabelAssignment_2; }

		//STRING
		public RuleCall getLabelSTRINGTerminalRuleCall_2_0() { return cLabelSTRINGTerminalRuleCall_2_0; }
	}

	public class StringDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StringDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cStringdatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefStringDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefStringDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefStringDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cMaxLengthKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cMaxLengthAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cMaxLengthINTTerminalRuleCall_5_1_0 = (RuleCall)cMaxLengthAssignment_5_1.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cMinLengthKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cMinLengthAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cMinLengthINTTerminalRuleCall_6_1_0 = (RuleCall)cMinLengthAssignment_6_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		////-----------------------------------------------------------------------------
		//// string
		////-----------------------------------------------------------------------------
		//StringDataType:
		//	"stringdatatype" name=ID ("extends" ref=[StringDataType|QualifiedName])? "{" baseDataType=BaseDataType ("maxLength"
		//	maxLength=INT)? ("minLength" minLength=INT)? "}";
		public ParserRule getRule() { return rule; }

		//"stringdatatype" name=ID ("extends" ref=[StringDataType|QualifiedName])? "{" baseDataType=BaseDataType ("maxLength"
		//maxLength=INT)? ("minLength" minLength=INT)? "}"
		public Group getGroup() { return cGroup; }

		//"stringdatatype"
		public Keyword getStringdatatypeKeyword_0() { return cStringdatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[StringDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[StringDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[StringDataType|QualifiedName]
		public CrossReference getRefStringDataTypeCrossReference_2_1_0() { return cRefStringDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefStringDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefStringDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//("maxLength" maxLength=INT)?
		public Group getGroup_5() { return cGroup_5; }

		//"maxLength"
		public Keyword getMaxLengthKeyword_5_0() { return cMaxLengthKeyword_5_0; }

		//maxLength=INT
		public Assignment getMaxLengthAssignment_5_1() { return cMaxLengthAssignment_5_1; }

		//INT
		public RuleCall getMaxLengthINTTerminalRuleCall_5_1_0() { return cMaxLengthINTTerminalRuleCall_5_1_0; }

		//("minLength" minLength=INT)?
		public Group getGroup_6() { return cGroup_6; }

		//"minLength"
		public Keyword getMinLengthKeyword_6_0() { return cMinLengthKeyword_6_0; }

		//minLength=INT
		public Assignment getMinLengthAssignment_6_1() { return cMinLengthAssignment_6_1; }

		//INT
		public RuleCall getMinLengthINTTerminalRuleCall_6_1_0() { return cMinLengthINTTerminalRuleCall_6_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
	}

	public class StringEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StringEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cStringKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeStringDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeStringDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeStringDataTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cCardinalityAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cCardinalityCardinalityEnumRuleCall_2_0 = (RuleCall)cCardinalityAssignment_2.eContents().get(0);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		
		//StringEntityAttribute:
		//	"string" type=[StringDataType|QualifiedName]? cardinality=Cardinality? name=ID;
		public ParserRule getRule() { return rule; }

		//"string" type=[StringDataType|QualifiedName]? cardinality=Cardinality? name=ID
		public Group getGroup() { return cGroup; }

		//"string"
		public Keyword getStringKeyword_0() { return cStringKeyword_0; }

		//type=[StringDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[StringDataType|QualifiedName]
		public CrossReference getTypeStringDataTypeCrossReference_1_0() { return cTypeStringDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeStringDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeStringDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//cardinality=Cardinality?
		public Assignment getCardinalityAssignment_2() { return cCardinalityAssignment_2; }

		//Cardinality
		public RuleCall getCardinalityCardinalityEnumRuleCall_2_0() { return cCardinalityCardinalityEnumRuleCall_2_0; }

		//name=ID
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; }
	}

	public class MapDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MapDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cMapdatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefMapDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefMapDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefMapDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Assignment cKeyTypeAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cKeyTypeSimpleTypesEnumRuleCall_5_0 = (RuleCall)cKeyTypeAssignment_5.eContents().get(0);
		private final Assignment cValueTypeAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cValueTypeSimpleTypesEnumRuleCall_6_0 = (RuleCall)cValueTypeAssignment_6.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		////-----------------------------------------------------------------------------
		//// map
		////-----------------------------------------------------------------------------
		//MapDataType:
		//	"mapdatatype" name=ID ("extends" ref=[MapDataType|QualifiedName])? "{" baseDataType=BaseDataType keyType=SimpleTypes
		//	valueType=SimpleTypes "}";
		public ParserRule getRule() { return rule; }

		//"mapdatatype" name=ID ("extends" ref=[MapDataType|QualifiedName])? "{" baseDataType=BaseDataType keyType=SimpleTypes
		//valueType=SimpleTypes "}"
		public Group getGroup() { return cGroup; }

		//"mapdatatype"
		public Keyword getMapdatatypeKeyword_0() { return cMapdatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[MapDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[MapDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[MapDataType|QualifiedName]
		public CrossReference getRefMapDataTypeCrossReference_2_1_0() { return cRefMapDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefMapDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefMapDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//keyType=SimpleTypes
		public Assignment getKeyTypeAssignment_5() { return cKeyTypeAssignment_5; }

		//SimpleTypes
		public RuleCall getKeyTypeSimpleTypesEnumRuleCall_5_0() { return cKeyTypeSimpleTypesEnumRuleCall_5_0; }

		//valueType=SimpleTypes
		public Assignment getValueTypeAssignment_6() { return cValueTypeAssignment_6; }

		//SimpleTypes
		public RuleCall getValueTypeSimpleTypesEnumRuleCall_6_0() { return cValueTypeSimpleTypesEnumRuleCall_6_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
	}

	public class MapEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MapEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cMapKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeMapDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeMapDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeMapDataTypeCrossReference_1_0.eContents().get(1);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Assignment cKeyTypeAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
		private final RuleCall cKeyTypeSimpleTypesEnumRuleCall_2_0_0 = (RuleCall)cKeyTypeAssignment_2_0.eContents().get(0);
		private final Assignment cValueTypeAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cValueTypeSimpleTypesEnumRuleCall_2_1_0 = (RuleCall)cValueTypeAssignment_2_1.eContents().get(0);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		
		//MapEntityAttribute:
		//	"map" type=[MapDataType|QualifiedName]? (keyType=SimpleTypes valueType=SimpleTypes)? name=ID;
		public ParserRule getRule() { return rule; }

		//"map" type=[MapDataType|QualifiedName]? (keyType=SimpleTypes valueType=SimpleTypes)? name=ID
		public Group getGroup() { return cGroup; }

		//"map"
		public Keyword getMapKeyword_0() { return cMapKeyword_0; }

		//type=[MapDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[MapDataType|QualifiedName]
		public CrossReference getTypeMapDataTypeCrossReference_1_0() { return cTypeMapDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeMapDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeMapDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//(keyType=SimpleTypes valueType=SimpleTypes)?
		public Group getGroup_2() { return cGroup_2; }

		//keyType=SimpleTypes
		public Assignment getKeyTypeAssignment_2_0() { return cKeyTypeAssignment_2_0; }

		//SimpleTypes
		public RuleCall getKeyTypeSimpleTypesEnumRuleCall_2_0_0() { return cKeyTypeSimpleTypesEnumRuleCall_2_0_0; }

		//valueType=SimpleTypes
		public Assignment getValueTypeAssignment_2_1() { return cValueTypeAssignment_2_1; }

		//SimpleTypes
		public RuleCall getValueTypeSimpleTypesEnumRuleCall_2_1_0() { return cValueTypeSimpleTypesEnumRuleCall_2_1_0; }

		//name=ID
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; }
	}

	public class BooleanDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BooleanDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cBooleandatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefBooleanDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefBooleanDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefBooleanDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		////-----------------------------------------------------------------------------
		//// boolean
		////-----------------------------------------------------------------------------
		//BooleanDataType:
		//	"booleandatatype" name=ID ("extends" ref=[BooleanDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
		public ParserRule getRule() { return rule; }

		//"booleandatatype" name=ID ("extends" ref=[BooleanDataType|QualifiedName])? "{" baseDataType=BaseDataType "}"
		public Group getGroup() { return cGroup; }

		//"booleandatatype"
		public Keyword getBooleandatatypeKeyword_0() { return cBooleandatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[BooleanDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[BooleanDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[BooleanDataType|QualifiedName]
		public CrossReference getRefBooleanDataTypeCrossReference_2_1_0() { return cRefBooleanDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefBooleanDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefBooleanDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class BooleanEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BooleanEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cBooleanKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeBooleanDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeBooleanDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeBooleanDataTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		
		//BooleanEntityAttribute:
		//	"boolean" type=[BooleanDataType|QualifiedName]? name=ID;
		public ParserRule getRule() { return rule; }

		//"boolean" type=[BooleanDataType|QualifiedName]? name=ID
		public Group getGroup() { return cGroup; }

		//"boolean"
		public Keyword getBooleanKeyword_0() { return cBooleanKeyword_0; }

		//type=[BooleanDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[BooleanDataType|QualifiedName]
		public CrossReference getTypeBooleanDataTypeCrossReference_1_0() { return cTypeBooleanDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeBooleanDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeBooleanDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
	}

	public class IntegerDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "IntegerDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cIntegerdatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefIntegerDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefIntegerDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefIntegerDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		////-----------------------------------------------------------------------------
		//// integer
		////-----------------------------------------------------------------------------
		//IntegerDataType:
		//	"integerdatatype" name=ID ("extends" ref=[IntegerDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
		public ParserRule getRule() { return rule; }

		//"integerdatatype" name=ID ("extends" ref=[IntegerDataType|QualifiedName])? "{" baseDataType=BaseDataType "}"
		public Group getGroup() { return cGroup; }

		//"integerdatatype"
		public Keyword getIntegerdatatypeKeyword_0() { return cIntegerdatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[IntegerDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[IntegerDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[IntegerDataType|QualifiedName]
		public CrossReference getRefIntegerDataTypeCrossReference_2_1_0() { return cRefIntegerDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefIntegerDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefIntegerDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class IntegerEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "IntegerEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cIntegerKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeIntegerDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeIntegerDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeIntegerDataTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		
		//IntegerEntityAttribute:
		//	"integer" type=[IntegerDataType|QualifiedName]? name=ID;
		public ParserRule getRule() { return rule; }

		//"integer" type=[IntegerDataType|QualifiedName]? name=ID
		public Group getGroup() { return cGroup; }

		//"integer"
		public Keyword getIntegerKeyword_0() { return cIntegerKeyword_0; }

		//type=[IntegerDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[IntegerDataType|QualifiedName]
		public CrossReference getTypeIntegerDataTypeCrossReference_1_0() { return cTypeIntegerDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeIntegerDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeIntegerDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
	}

	public class DateDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DateDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDatedatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefDateDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefDateDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefDateDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		////-----------------------------------------------------------------------------
		//// decimal
		////-----------------------------------------------------------------------------
		//DateDataType:
		//	"datedatatype" name=ID ("extends" ref=[DateDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
		public ParserRule getRule() { return rule; }

		//"datedatatype" name=ID ("extends" ref=[DateDataType|QualifiedName])? "{" baseDataType=BaseDataType "}"
		public Group getGroup() { return cGroup; }

		//"datedatatype"
		public Keyword getDatedatatypeKeyword_0() { return cDatedatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[DateDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[DateDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[DateDataType|QualifiedName]
		public CrossReference getRefDateDataTypeCrossReference_2_1_0() { return cRefDateDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefDateDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefDateDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class DateEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DateEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDateKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeDateDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeDateDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeDateDataTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		
		//DateEntityAttribute:
		//	"date" type=[DateDataType|QualifiedName]? name=ID;
		public ParserRule getRule() { return rule; }

		//"date" type=[DateDataType|QualifiedName]? name=ID
		public Group getGroup() { return cGroup; }

		//"date"
		public Keyword getDateKeyword_0() { return cDateKeyword_0; }

		//type=[DateDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[DateDataType|QualifiedName]
		public CrossReference getTypeDateDataTypeCrossReference_1_0() { return cTypeDateDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeDateDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeDateDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
	}

	public class DecimalDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DecimalDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDecimaldatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefDecimalDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefDecimalDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefDecimalDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		////-----------------------------------------------------------------------------
		//// decimal
		////-----------------------------------------------------------------------------
		//DecimalDataType:
		//	"decimaldatatype" name=ID ("extends" ref=[DecimalDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
		public ParserRule getRule() { return rule; }

		//"decimaldatatype" name=ID ("extends" ref=[DecimalDataType|QualifiedName])? "{" baseDataType=BaseDataType "}"
		public Group getGroup() { return cGroup; }

		//"decimaldatatype"
		public Keyword getDecimaldatatypeKeyword_0() { return cDecimaldatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[DecimalDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[DecimalDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[DecimalDataType|QualifiedName]
		public CrossReference getRefDecimalDataTypeCrossReference_2_1_0() { return cRefDecimalDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefDecimalDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefDecimalDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class DecimalEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DecimalEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDecimalKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeDecimalDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeDecimalDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeDecimalDataTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		
		//DecimalEntityAttribute:
		//	"decimal" type=[DecimalDataType|QualifiedName]? name=ID;
		public ParserRule getRule() { return rule; }

		//"decimal" type=[DecimalDataType|QualifiedName]? name=ID
		public Group getGroup() { return cGroup; }

		//"decimal"
		public Keyword getDecimalKeyword_0() { return cDecimalKeyword_0; }

		//type=[DecimalDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[DecimalDataType|QualifiedName]
		public CrossReference getTypeDecimalDataTypeCrossReference_1_0() { return cTypeDecimalDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeDecimalDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeDecimalDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
	}

	public class LongDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LongDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLongdatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefLongDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefLongDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefLongDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		////-----------------------------------------------------------------------------
		//// long
		////-----------------------------------------------------------------------------
		//LongDataType:
		//	"longdatatype" name=ID ("extends" ref=[LongDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
		public ParserRule getRule() { return rule; }

		//"longdatatype" name=ID ("extends" ref=[LongDataType|QualifiedName])? "{" baseDataType=BaseDataType "}"
		public Group getGroup() { return cGroup; }

		//"longdatatype"
		public Keyword getLongdatatypeKeyword_0() { return cLongdatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[LongDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[LongDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[LongDataType|QualifiedName]
		public CrossReference getRefLongDataTypeCrossReference_2_1_0() { return cRefLongDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefLongDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefLongDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class LongEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LongEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLongKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeLongDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeLongDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeLongDataTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		
		//LongEntityAttribute:
		//	"long" type=[LongDataType|QualifiedName]? name=ID;
		public ParserRule getRule() { return rule; }

		//"long" type=[LongDataType|QualifiedName]? name=ID
		public Group getGroup() { return cGroup; }

		//"long"
		public Keyword getLongKeyword_0() { return cLongKeyword_0; }

		//type=[LongDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[LongDataType|QualifiedName]
		public CrossReference getTypeLongDataTypeCrossReference_1_0() { return cTypeLongDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeLongDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeLongDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
	}

	public class FloatDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FloatDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cFloatdatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefFloatDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefFloatDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefFloatDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		////-----------------------------------------------------------------------------
		//// float
		////-----------------------------------------------------------------------------
		//FloatDataType:
		//	"floatdatatype" name=ID ("extends" ref=[FloatDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
		public ParserRule getRule() { return rule; }

		//"floatdatatype" name=ID ("extends" ref=[FloatDataType|QualifiedName])? "{" baseDataType=BaseDataType "}"
		public Group getGroup() { return cGroup; }

		//"floatdatatype"
		public Keyword getFloatdatatypeKeyword_0() { return cFloatdatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[FloatDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[FloatDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[FloatDataType|QualifiedName]
		public CrossReference getRefFloatDataTypeCrossReference_2_1_0() { return cRefFloatDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefFloatDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefFloatDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class FloatEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FloatEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cFloatKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeFloatDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeFloatDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeFloatDataTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		
		//FloatEntityAttribute:
		//	"float" type=[FloatDataType|QualifiedName]? name=ID;
		public ParserRule getRule() { return rule; }

		//"float" type=[FloatDataType|QualifiedName]? name=ID
		public Group getGroup() { return cGroup; }

		//"float"
		public Keyword getFloatKeyword_0() { return cFloatKeyword_0; }

		//type=[FloatDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[FloatDataType|QualifiedName]
		public CrossReference getTypeFloatDataTypeCrossReference_1_0() { return cTypeFloatDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeFloatDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeFloatDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
	}

	public class DoubleDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DoubleDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDoubledatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefDoubleDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefDoubleDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefDoubleDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		////-----------------------------------------------------------------------------
		//// double
		////-----------------------------------------------------------------------------
		//DoubleDataType:
		//	"doubledatatype" name=ID ("extends" ref=[DoubleDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
		public ParserRule getRule() { return rule; }

		//"doubledatatype" name=ID ("extends" ref=[DoubleDataType|QualifiedName])? "{" baseDataType=BaseDataType "}"
		public Group getGroup() { return cGroup; }

		//"doubledatatype"
		public Keyword getDoubledatatypeKeyword_0() { return cDoubledatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[DoubleDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[DoubleDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[DoubleDataType|QualifiedName]
		public CrossReference getRefDoubleDataTypeCrossReference_2_1_0() { return cRefDoubleDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefDoubleDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefDoubleDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class DoubleEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DoubleEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDoubleKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeDoubleDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeDoubleDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeDoubleDataTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		
		//DoubleEntityAttribute:
		//	"double" type=[DoubleDataType|QualifiedName]? name=ID;
		public ParserRule getRule() { return rule; }

		//"double" type=[DoubleDataType|QualifiedName]? name=ID
		public Group getGroup() { return cGroup; }

		//"double"
		public Keyword getDoubleKeyword_0() { return cDoubleKeyword_0; }

		//type=[DoubleDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[DoubleDataType|QualifiedName]
		public CrossReference getTypeDoubleDataTypeCrossReference_1_0() { return cTypeDoubleDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeDoubleDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeDoubleDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
	}

	public class BinaryDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BinaryDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cBinarydatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefBinaryDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefBinaryDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefBinaryDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		////-----------------------------------------------------------------------------
		//// binary
		////-----------------------------------------------------------------------------
		//BinaryDataType:
		//	"binarydatatype" name=ID ("extends" ref=[BinaryDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
		public ParserRule getRule() { return rule; }

		//"binarydatatype" name=ID ("extends" ref=[BinaryDataType|QualifiedName])? "{" baseDataType=BaseDataType "}"
		public Group getGroup() { return cGroup; }

		//"binarydatatype"
		public Keyword getBinarydatatypeKeyword_0() { return cBinarydatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[BinaryDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[BinaryDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[BinaryDataType|QualifiedName]
		public CrossReference getRefBinaryDataTypeCrossReference_2_1_0() { return cRefBinaryDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefBinaryDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefBinaryDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class BinaryEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BinaryEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cBinaryKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeBinaryDataTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeBinaryDataTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeBinaryDataTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		
		//BinaryEntityAttribute:
		//	"binary" type=[BinaryDataType|QualifiedName]? name=ID;
		public ParserRule getRule() { return rule; }

		//"binary" type=[BinaryDataType|QualifiedName]? name=ID
		public Group getGroup() { return cGroup; }

		//"binary"
		public Keyword getBinaryKeyword_0() { return cBinaryKeyword_0; }

		//type=[BinaryDataType|QualifiedName]?
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[BinaryDataType|QualifiedName]
		public CrossReference getTypeBinaryDataTypeCrossReference_1_0() { return cTypeBinaryDataTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeBinaryDataTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeBinaryDataTypeQualifiedNameParserRuleCall_1_0_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
	}

	public class EntityDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cEntitydatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefEntityDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefEntityDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefEntityDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cEntityKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cEntityAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final CrossReference cEntityEntityCrossReference_6_0 = (CrossReference)cEntityAssignment_6.eContents().get(0);
		private final RuleCall cEntityEntityQualifiedNameParserRuleCall_6_0_1 = (RuleCall)cEntityEntityCrossReference_6_0.eContents().get(1);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		////-----------------------------------------------------------------------------
		//// entity
		////-----------------------------------------------------------------------------
		//EntityDataType:
		//	"entitydatatype" name=ID ("extends" ref=[EntityDataType|QualifiedName])? "{" baseDataType=BaseDataType "entity"
		//	entity=[Entity|QualifiedName] "}";
		public ParserRule getRule() { return rule; }

		//"entitydatatype" name=ID ("extends" ref=[EntityDataType|QualifiedName])? "{" baseDataType=BaseDataType "entity"
		//entity=[Entity|QualifiedName] "}"
		public Group getGroup() { return cGroup; }

		//"entitydatatype"
		public Keyword getEntitydatatypeKeyword_0() { return cEntitydatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[EntityDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[EntityDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[EntityDataType|QualifiedName]
		public CrossReference getRefEntityDataTypeCrossReference_2_1_0() { return cRefEntityDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefEntityDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefEntityDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"entity"
		public Keyword getEntityKeyword_5() { return cEntityKeyword_5; }

		//entity=[Entity|QualifiedName]
		public Assignment getEntityAssignment_6() { return cEntityAssignment_6; }

		//[Entity|QualifiedName]
		public CrossReference getEntityEntityCrossReference_6_0() { return cEntityEntityCrossReference_6_0; }

		//QualifiedName
		public RuleCall getEntityEntityQualifiedNameParserRuleCall_6_0_1() { return cEntityEntityQualifiedNameParserRuleCall_6_0_1; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
	}

	public class EntityAttributeTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityAttributeType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cEntityDataTypeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cEntityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//EntityAttributeType:
		//	EntityDataType | Entity;
		public ParserRule getRule() { return rule; }

		//EntityDataType | Entity
		public Alternatives getAlternatives() { return cAlternatives; }

		//EntityDataType
		public RuleCall getEntityDataTypeParserRuleCall_0() { return cEntityDataTypeParserRuleCall_0; }

		//Entity
		public RuleCall getEntityParserRuleCall_1() { return cEntityParserRuleCall_1; }
	}

	public class EntityEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EntityEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cEntityKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeEntityAttributeTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeEntityAttributeTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeEntityAttributeTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cCardinalityAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cCardinalityCardinalityEnumRuleCall_2_0 = (RuleCall)cCardinalityAssignment_2.eContents().get(0);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		
		//EntityEntityAttribute:
		//	"entity" type=[EntityAttributeType|QualifiedName] cardinality=Cardinality? name=ID;
		public ParserRule getRule() { return rule; }

		//"entity" type=[EntityAttributeType|QualifiedName] cardinality=Cardinality? name=ID
		public Group getGroup() { return cGroup; }

		//"entity"
		public Keyword getEntityKeyword_0() { return cEntityKeyword_0; }

		//type=[EntityAttributeType|QualifiedName]
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[EntityAttributeType|QualifiedName]
		public CrossReference getTypeEntityAttributeTypeCrossReference_1_0() { return cTypeEntityAttributeTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeEntityAttributeTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeEntityAttributeTypeQualifiedNameParserRuleCall_1_0_1; }

		//cardinality=Cardinality?
		public Assignment getCardinalityAssignment_2() { return cCardinalityAssignment_2; }

		//Cardinality
		public RuleCall getCardinalityCardinalityEnumRuleCall_2_0() { return cCardinalityCardinalityEnumRuleCall_2_0; }

		//name=ID
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; }
	}

	public class ValueObjectEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ValueObjectEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cValueobjectKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeValueObjectCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeValueObjectQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeValueObjectCrossReference_1_0.eContents().get(1);
		private final Assignment cCardinalityAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cCardinalityCardinalityEnumRuleCall_2_0 = (RuleCall)cCardinalityAssignment_2.eContents().get(0);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		
		////-----------------------------------------------------------------------------
		//// entity
		////-----------------------------------------------------------------------------
		//ValueObjectEntityAttribute:
		//	"valueobject" type=[ValueObject|QualifiedName] cardinality=Cardinality? name=ID;
		public ParserRule getRule() { return rule; }

		//"valueobject" type=[ValueObject|QualifiedName] cardinality=Cardinality? name=ID
		public Group getGroup() { return cGroup; }

		//"valueobject"
		public Keyword getValueobjectKeyword_0() { return cValueobjectKeyword_0; }

		//type=[ValueObject|QualifiedName]
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[ValueObject|QualifiedName]
		public CrossReference getTypeValueObjectCrossReference_1_0() { return cTypeValueObjectCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeValueObjectQualifiedNameParserRuleCall_1_0_1() { return cTypeValueObjectQualifiedNameParserRuleCall_1_0_1; }

		//cardinality=Cardinality?
		public Assignment getCardinalityAssignment_2() { return cCardinalityAssignment_2; }

		//Cardinality
		public RuleCall getCardinalityCardinalityEnumRuleCall_2_0() { return cCardinalityCardinalityEnumRuleCall_2_0; }

		//name=ID
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; }
	}

	public class EnumerationDataTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EnumerationDataType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cEnumerationdatatypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cRefAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cRefEnumerationDataTypeCrossReference_2_1_0 = (CrossReference)cRefAssignment_2_1.eContents().get(0);
		private final RuleCall cRefEnumerationDataTypeQualifiedNameParserRuleCall_2_1_0_1 = (RuleCall)cRefEnumerationDataTypeCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cBaseDataTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cBaseDataTypeBaseDataTypeParserRuleCall_4_0 = (RuleCall)cBaseDataTypeAssignment_4.eContents().get(0);
		private final Keyword cEnumerationKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cEnumerationAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final CrossReference cEnumerationEnumerationCrossReference_6_0 = (CrossReference)cEnumerationAssignment_6.eContents().get(0);
		private final RuleCall cEnumerationEnumerationQualifiedNameParserRuleCall_6_0_1 = (RuleCall)cEnumerationEnumerationCrossReference_6_0.eContents().get(1);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		////-----------------------------------------------------------------------------
		//// enumeration
		////-----------------------------------------------------------------------------
		//EnumerationDataType:
		//	"enumerationdatatype" name=ID ("extends" ref=[EnumerationDataType|QualifiedName])? "{" baseDataType=BaseDataType
		//	"enumeration" enumeration=[Enumeration|QualifiedName] "}";
		public ParserRule getRule() { return rule; }

		//"enumerationdatatype" name=ID ("extends" ref=[EnumerationDataType|QualifiedName])? "{" baseDataType=BaseDataType
		//"enumeration" enumeration=[Enumeration|QualifiedName] "}"
		public Group getGroup() { return cGroup; }

		//"enumerationdatatype"
		public Keyword getEnumerationdatatypeKeyword_0() { return cEnumerationdatatypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" ref=[EnumerationDataType|QualifiedName])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//ref=[EnumerationDataType|QualifiedName]
		public Assignment getRefAssignment_2_1() { return cRefAssignment_2_1; }

		//[EnumerationDataType|QualifiedName]
		public CrossReference getRefEnumerationDataTypeCrossReference_2_1_0() { return cRefEnumerationDataTypeCrossReference_2_1_0; }

		//QualifiedName
		public RuleCall getRefEnumerationDataTypeQualifiedNameParserRuleCall_2_1_0_1() { return cRefEnumerationDataTypeQualifiedNameParserRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//baseDataType=BaseDataType
		public Assignment getBaseDataTypeAssignment_4() { return cBaseDataTypeAssignment_4; }

		//BaseDataType
		public RuleCall getBaseDataTypeBaseDataTypeParserRuleCall_4_0() { return cBaseDataTypeBaseDataTypeParserRuleCall_4_0; }

		//"enumeration"
		public Keyword getEnumerationKeyword_5() { return cEnumerationKeyword_5; }

		//enumeration=[Enumeration|QualifiedName]
		public Assignment getEnumerationAssignment_6() { return cEnumerationAssignment_6; }

		//[Enumeration|QualifiedName]
		public CrossReference getEnumerationEnumerationCrossReference_6_0() { return cEnumerationEnumerationCrossReference_6_0; }

		//QualifiedName
		public RuleCall getEnumerationEnumerationQualifiedNameParserRuleCall_6_0_1() { return cEnumerationEnumerationQualifiedNameParserRuleCall_6_0_1; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
	}

	public class EnumerationAttributeTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EnumerationAttributeType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cEnumerationDataTypeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cEnumerationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//EnumerationAttributeType:
		//	EnumerationDataType | Enumeration;
		public ParserRule getRule() { return rule; }

		//EnumerationDataType | Enumeration
		public Alternatives getAlternatives() { return cAlternatives; }

		//EnumerationDataType
		public RuleCall getEnumerationDataTypeParserRuleCall_0() { return cEnumerationDataTypeParserRuleCall_0; }

		//Enumeration
		public RuleCall getEnumerationParserRuleCall_1() { return cEnumerationParserRuleCall_1; }
	}

	public class EnumerationEntityAttributeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EnumerationEntityAttribute");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cEnumerationKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cTypeEnumerationAttributeTypeCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
		private final RuleCall cTypeEnumerationAttributeTypeQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeEnumerationAttributeTypeCrossReference_1_0.eContents().get(1);
		private final Assignment cCardinalityAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cCardinalityCardinalityEnumRuleCall_2_0 = (RuleCall)cCardinalityAssignment_2.eContents().get(0);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		
		//EnumerationEntityAttribute:
		//	"enumeration" type=[EnumerationAttributeType|QualifiedName] cardinality=Cardinality? name=ID;
		public ParserRule getRule() { return rule; }

		//"enumeration" type=[EnumerationAttributeType|QualifiedName] cardinality=Cardinality? name=ID
		public Group getGroup() { return cGroup; }

		//"enumeration"
		public Keyword getEnumerationKeyword_0() { return cEnumerationKeyword_0; }

		//type=[EnumerationAttributeType|QualifiedName]
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//[EnumerationAttributeType|QualifiedName]
		public CrossReference getTypeEnumerationAttributeTypeCrossReference_1_0() { return cTypeEnumerationAttributeTypeCrossReference_1_0; }

		//QualifiedName
		public RuleCall getTypeEnumerationAttributeTypeQualifiedNameParserRuleCall_1_0_1() { return cTypeEnumerationAttributeTypeQualifiedNameParserRuleCall_1_0_1; }

		//cardinality=Cardinality?
		public Assignment getCardinalityAssignment_2() { return cCardinalityAssignment_2; }

		//Cardinality
		public RuleCall getCardinalityCardinalityEnumRuleCall_2_0() { return cCardinalityCardinalityEnumRuleCall_2_0; }

		//name=ID
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; }
	}

	public class DictionaryElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Dictionary");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDictionaryKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cEntityKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cEntityAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final CrossReference cEntityEntityCrossReference_4_0 = (CrossReference)cEntityAssignment_4.eContents().get(0);
		private final RuleCall cEntityEntityQualifiedNameParserRuleCall_4_0_1 = (RuleCall)cEntityEntityCrossReference_4_0.eContents().get(1);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cLabelKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cLabelAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cLabelSTRINGTerminalRuleCall_5_1_0 = (RuleCall)cLabelAssignment_5_1.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cPluralLabelKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cPluralLabelAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cPluralLabelSTRINGTerminalRuleCall_6_1_0 = (RuleCall)cPluralLabelAssignment_6_1.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cDictionarycontrolsKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
		private final Assignment cDictionarycontrolsAssignment_7_2 = (Assignment)cGroup_7.eContents().get(2);
		private final RuleCall cDictionarycontrolsDictionaryControlParserRuleCall_7_2_0 = (RuleCall)cDictionarycontrolsAssignment_7_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7_3 = (Keyword)cGroup_7.eContents().get(3);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cLabelcontrolsKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1);
		private final Assignment cLabelcontrolsAssignment_8_2 = (Assignment)cGroup_8.eContents().get(2);
		private final RuleCall cLabelcontrolsDictionaryControlParserRuleCall_8_2_0 = (RuleCall)cLabelcontrolsAssignment_8_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_8_3 = (Keyword)cGroup_8.eContents().get(3);
		private final Assignment cDictionarysearchAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cDictionarysearchDictionarySearchParserRuleCall_9_0 = (RuleCall)cDictionarysearchAssignment_9.eContents().get(0);
		private final Assignment cDictionaryeditorAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cDictionaryeditorDictionaryEditorParserRuleCall_10_0 = (RuleCall)cDictionaryeditorAssignment_10.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
		
		////- dictionary ----------------------------------------------------------------
		//Dictionary:
		//	"dictionary" name=ID "{" "entity" entity=[Entity|QualifiedName] ("label" label=STRING)? ("pluralLabel"
		//	pluralLabel=STRING)? ("dictionarycontrols" "{" dictionarycontrols+=DictionaryControl* "}")? ("labelcontrols" "{"
		//	labelcontrols+=DictionaryControl* "}")? dictionarysearch=DictionarySearch? dictionaryeditor=DictionaryEditor? "}";
		public ParserRule getRule() { return rule; }

		//"dictionary" name=ID "{" "entity" entity=[Entity|QualifiedName] ("label" label=STRING)? ("pluralLabel"
		//pluralLabel=STRING)? ("dictionarycontrols" "{" dictionarycontrols+=DictionaryControl* "}")? ("labelcontrols" "{"
		//labelcontrols+=DictionaryControl* "}")? dictionarysearch=DictionarySearch? dictionaryeditor=DictionaryEditor? "}"
		public Group getGroup() { return cGroup; }

		//"dictionary"
		public Keyword getDictionaryKeyword_0() { return cDictionaryKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//"entity"
		public Keyword getEntityKeyword_3() { return cEntityKeyword_3; }

		//entity=[Entity|QualifiedName]
		public Assignment getEntityAssignment_4() { return cEntityAssignment_4; }

		//[Entity|QualifiedName]
		public CrossReference getEntityEntityCrossReference_4_0() { return cEntityEntityCrossReference_4_0; }

		//QualifiedName
		public RuleCall getEntityEntityQualifiedNameParserRuleCall_4_0_1() { return cEntityEntityQualifiedNameParserRuleCall_4_0_1; }

		//("label" label=STRING)?
		public Group getGroup_5() { return cGroup_5; }

		//"label"
		public Keyword getLabelKeyword_5_0() { return cLabelKeyword_5_0; }

		//label=STRING
		public Assignment getLabelAssignment_5_1() { return cLabelAssignment_5_1; }

		//STRING
		public RuleCall getLabelSTRINGTerminalRuleCall_5_1_0() { return cLabelSTRINGTerminalRuleCall_5_1_0; }

		//("pluralLabel" pluralLabel=STRING)?
		public Group getGroup_6() { return cGroup_6; }

		//"pluralLabel"
		public Keyword getPluralLabelKeyword_6_0() { return cPluralLabelKeyword_6_0; }

		//pluralLabel=STRING
		public Assignment getPluralLabelAssignment_6_1() { return cPluralLabelAssignment_6_1; }

		//STRING
		public RuleCall getPluralLabelSTRINGTerminalRuleCall_6_1_0() { return cPluralLabelSTRINGTerminalRuleCall_6_1_0; }

		//("dictionarycontrols" "{" dictionarycontrols+=DictionaryControl* "}")?
		public Group getGroup_7() { return cGroup_7; }

		//"dictionarycontrols"
		public Keyword getDictionarycontrolsKeyword_7_0() { return cDictionarycontrolsKeyword_7_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_7_1() { return cLeftCurlyBracketKeyword_7_1; }

		//dictionarycontrols+=DictionaryControl*
		public Assignment getDictionarycontrolsAssignment_7_2() { return cDictionarycontrolsAssignment_7_2; }

		//DictionaryControl
		public RuleCall getDictionarycontrolsDictionaryControlParserRuleCall_7_2_0() { return cDictionarycontrolsDictionaryControlParserRuleCall_7_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_7_3() { return cRightCurlyBracketKeyword_7_3; }

		//("labelcontrols" "{" labelcontrols+=DictionaryControl* "}")?
		public Group getGroup_8() { return cGroup_8; }

		//"labelcontrols"
		public Keyword getLabelcontrolsKeyword_8_0() { return cLabelcontrolsKeyword_8_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_8_1() { return cLeftCurlyBracketKeyword_8_1; }

		//labelcontrols+=DictionaryControl*
		public Assignment getLabelcontrolsAssignment_8_2() { return cLabelcontrolsAssignment_8_2; }

		//DictionaryControl
		public RuleCall getLabelcontrolsDictionaryControlParserRuleCall_8_2_0() { return cLabelcontrolsDictionaryControlParserRuleCall_8_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_8_3() { return cRightCurlyBracketKeyword_8_3; }

		//dictionarysearch=DictionarySearch?
		public Assignment getDictionarysearchAssignment_9() { return cDictionarysearchAssignment_9; }

		//DictionarySearch
		public RuleCall getDictionarysearchDictionarySearchParserRuleCall_9_0() { return cDictionarysearchDictionarySearchParserRuleCall_9_0; }

		//dictionaryeditor=DictionaryEditor?
		public Assignment getDictionaryeditorAssignment_10() { return cDictionaryeditorAssignment_10; }

		//DictionaryEditor
		public RuleCall getDictionaryeditorDictionaryEditorParserRuleCall_10_0() { return cDictionaryeditorDictionaryEditorParserRuleCall_10_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_11() { return cRightCurlyBracketKeyword_11; }
	}

	public class DictionarySearchElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionarySearch");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDictionarysearchKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cLabelKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cLabelAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cLabelSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cLabelAssignment_3_1.eContents().get(0);
		private final Assignment cDictionaryfiltersAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cDictionaryfiltersDictionaryFilterParserRuleCall_4_0 = (RuleCall)cDictionaryfiltersAssignment_4.eContents().get(0);
		private final Assignment cDictionaryresultAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cDictionaryresultDictionaryResultParserRuleCall_5_0 = (RuleCall)cDictionaryresultAssignment_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//DictionarySearch:
		//	"dictionarysearch" name=ID "{" ("label" label=STRING)? dictionaryfilters+=DictionaryFilter*
		//	dictionaryresult=DictionaryResult "}";
		public ParserRule getRule() { return rule; }

		//"dictionarysearch" name=ID "{" ("label" label=STRING)? dictionaryfilters+=DictionaryFilter*
		//dictionaryresult=DictionaryResult "}"
		public Group getGroup() { return cGroup; }

		//"dictionarysearch"
		public Keyword getDictionarysearchKeyword_0() { return cDictionarysearchKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//("label" label=STRING)?
		public Group getGroup_3() { return cGroup_3; }

		//"label"
		public Keyword getLabelKeyword_3_0() { return cLabelKeyword_3_0; }

		//label=STRING
		public Assignment getLabelAssignment_3_1() { return cLabelAssignment_3_1; }

		//STRING
		public RuleCall getLabelSTRINGTerminalRuleCall_3_1_0() { return cLabelSTRINGTerminalRuleCall_3_1_0; }

		//dictionaryfilters+=DictionaryFilter*
		public Assignment getDictionaryfiltersAssignment_4() { return cDictionaryfiltersAssignment_4; }

		//DictionaryFilter
		public RuleCall getDictionaryfiltersDictionaryFilterParserRuleCall_4_0() { return cDictionaryfiltersDictionaryFilterParserRuleCall_4_0; }

		//dictionaryresult=DictionaryResult
		public Assignment getDictionaryresultAssignment_5() { return cDictionaryresultAssignment_5; }

		//DictionaryResult
		public RuleCall getDictionaryresultDictionaryResultParserRuleCall_5_0() { return cDictionaryresultDictionaryResultParserRuleCall_5_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class DictionaryEditorElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryEditor");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDictionaryeditorKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cLabelKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cLabelAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cLabelSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cLabelAssignment_3_1.eContents().get(0);
		private final Assignment cLayoutdataAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cLayoutdataColumnLayoutDataParserRuleCall_4_0 = (RuleCall)cLayoutdataAssignment_4.eContents().get(0);
		private final Assignment cLayoutAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cLayoutColumnLayoutParserRuleCall_5_0 = (RuleCall)cLayoutAssignment_5.eContents().get(0);
		private final Assignment cContainercontentsAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cContainercontentsDictionaryContainerContentParserRuleCall_6_0 = (RuleCall)cContainercontentsAssignment_6.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		//DictionaryEditor:
		//	"dictionaryeditor" name=ID "{" ("label" label=STRING)? layoutdata=ColumnLayoutData? layout=ColumnLayout?
		//	containercontents+=DictionaryContainerContent* "}";
		public ParserRule getRule() { return rule; }

		//"dictionaryeditor" name=ID "{" ("label" label=STRING)? layoutdata=ColumnLayoutData? layout=ColumnLayout?
		//containercontents+=DictionaryContainerContent* "}"
		public Group getGroup() { return cGroup; }

		//"dictionaryeditor"
		public Keyword getDictionaryeditorKeyword_0() { return cDictionaryeditorKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//("label" label=STRING)?
		public Group getGroup_3() { return cGroup_3; }

		//"label"
		public Keyword getLabelKeyword_3_0() { return cLabelKeyword_3_0; }

		//label=STRING
		public Assignment getLabelAssignment_3_1() { return cLabelAssignment_3_1; }

		//STRING
		public RuleCall getLabelSTRINGTerminalRuleCall_3_1_0() { return cLabelSTRINGTerminalRuleCall_3_1_0; }

		//layoutdata=ColumnLayoutData?
		public Assignment getLayoutdataAssignment_4() { return cLayoutdataAssignment_4; }

		//ColumnLayoutData
		public RuleCall getLayoutdataColumnLayoutDataParserRuleCall_4_0() { return cLayoutdataColumnLayoutDataParserRuleCall_4_0; }

		//layout=ColumnLayout?
		public Assignment getLayoutAssignment_5() { return cLayoutAssignment_5; }

		//ColumnLayout
		public RuleCall getLayoutColumnLayoutParserRuleCall_5_0() { return cLayoutColumnLayoutParserRuleCall_5_0; }

		//containercontents+=DictionaryContainerContent*
		public Assignment getContainercontentsAssignment_6() { return cContainercontentsAssignment_6; }

		//DictionaryContainerContent
		public RuleCall getContainercontentsDictionaryContainerContentParserRuleCall_6_0() { return cContainercontentsDictionaryContainerContentParserRuleCall_6_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
	}

	public class DictionaryFilterElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryFilter");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDictionaryfilterKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cLayoutdataAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cLayoutdataColumnLayoutDataParserRuleCall_3_0 = (RuleCall)cLayoutdataAssignment_3.eContents().get(0);
		private final Assignment cLayoutAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cLayoutColumnLayoutParserRuleCall_4_0 = (RuleCall)cLayoutAssignment_4.eContents().get(0);
		private final Assignment cContainercontentsAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cContainercontentsDictionaryContainerContentParserRuleCall_5_0 = (RuleCall)cContainercontentsAssignment_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//DictionaryFilter:
		//	"dictionaryfilter" name=ID "{" layoutdata=ColumnLayoutData? layout=ColumnLayout?
		//	containercontents+=DictionaryContainerContent* "}";
		public ParserRule getRule() { return rule; }

		//"dictionaryfilter" name=ID "{" layoutdata=ColumnLayoutData? layout=ColumnLayout?
		//containercontents+=DictionaryContainerContent* "}"
		public Group getGroup() { return cGroup; }

		//"dictionaryfilter"
		public Keyword getDictionaryfilterKeyword_0() { return cDictionaryfilterKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//layoutdata=ColumnLayoutData?
		public Assignment getLayoutdataAssignment_3() { return cLayoutdataAssignment_3; }

		//ColumnLayoutData
		public RuleCall getLayoutdataColumnLayoutDataParserRuleCall_3_0() { return cLayoutdataColumnLayoutDataParserRuleCall_3_0; }

		//layout=ColumnLayout?
		public Assignment getLayoutAssignment_4() { return cLayoutAssignment_4; }

		//ColumnLayout
		public RuleCall getLayoutColumnLayoutParserRuleCall_4_0() { return cLayoutColumnLayoutParserRuleCall_4_0; }

		//containercontents+=DictionaryContainerContent*
		public Assignment getContainercontentsAssignment_5() { return cContainercontentsAssignment_5; }

		//DictionaryContainerContent
		public RuleCall getContainercontentsDictionaryContainerContentParserRuleCall_5_0() { return cContainercontentsDictionaryContainerContentParserRuleCall_5_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class DictionaryResultElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryResult");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDictionaryresultKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cResultcolumnsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cResultcolumnsDictionaryControlParserRuleCall_3_0 = (RuleCall)cResultcolumnsAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//DictionaryResult:
		//	"dictionaryresult" name=ID "{" resultcolumns+=DictionaryControl* "}";
		public ParserRule getRule() { return rule; }

		//"dictionaryresult" name=ID "{" resultcolumns+=DictionaryControl* "}"
		public Group getGroup() { return cGroup; }

		//"dictionaryresult"
		public Keyword getDictionaryresultKeyword_0() { return cDictionaryresultKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//resultcolumns+=DictionaryControl*
		public Assignment getResultcolumnsAssignment_3() { return cResultcolumnsAssignment_3; }

		//DictionaryControl
		public RuleCall getResultcolumnsDictionaryControlParserRuleCall_3_0() { return cResultcolumnsDictionaryControlParserRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class ColumnLayoutElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ColumnLayout");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLayoutKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cColumnsKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cColumnsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cColumnsINTTerminalRuleCall_3_0 = (RuleCall)cColumnsAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		////- layout --------------------------------------------------------------------
		//ColumnLayout:
		//	"layout" "{" "columns" columns=INT "}";
		public ParserRule getRule() { return rule; }

		//"layout" "{" "columns" columns=INT "}"
		public Group getGroup() { return cGroup; }

		//"layout"
		public Keyword getLayoutKeyword_0() { return cLayoutKeyword_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//"columns"
		public Keyword getColumnsKeyword_2() { return cColumnsKeyword_2; }

		//columns=INT
		public Assignment getColumnsAssignment_3() { return cColumnsAssignment_3; }

		//INT
		public RuleCall getColumnsINTTerminalRuleCall_3_0() { return cColumnsINTTerminalRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class ColumnLayoutDataElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ColumnLayoutData");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLayoutdataKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cColumnspanKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cColumnspanAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cColumnspanINTTerminalRuleCall_3_0 = (RuleCall)cColumnspanAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//ColumnLayoutData:
		//	"layoutdata" "{" "columnspan" columnspan=INT "}";
		public ParserRule getRule() { return rule; }

		//"layoutdata" "{" "columnspan" columnspan=INT "}"
		public Group getGroup() { return cGroup; }

		//"layoutdata"
		public Keyword getLayoutdataKeyword_0() { return cLayoutdataKeyword_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//"columnspan"
		public Keyword getColumnspanKeyword_2() { return cColumnspanKeyword_2; }

		//columnspan=INT
		public Assignment getColumnspanAssignment_3() { return cColumnspanAssignment_3; }

		//INT
		public RuleCall getColumnspanINTTerminalRuleCall_3_0() { return cColumnspanINTTerminalRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class DictionaryContainerElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryContainer");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cDictionaryCompositeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cDictionaryEditableTableParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cDictionaryAssignmentTableParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		
		////- /layout -------------------------------------------------------------------
		////- container -----------------------------------------------------------------
		//DictionaryContainer:
		//	DictionaryComposite | DictionaryEditableTable | DictionaryAssignmentTable;
		public ParserRule getRule() { return rule; }

		//DictionaryComposite | DictionaryEditableTable | DictionaryAssignmentTable
		public Alternatives getAlternatives() { return cAlternatives; }

		//DictionaryComposite
		public RuleCall getDictionaryCompositeParserRuleCall_0() { return cDictionaryCompositeParserRuleCall_0; }

		//DictionaryEditableTable
		public RuleCall getDictionaryEditableTableParserRuleCall_1() { return cDictionaryEditableTableParserRuleCall_1; }

		//DictionaryAssignmentTable
		public RuleCall getDictionaryAssignmentTableParserRuleCall_2() { return cDictionaryAssignmentTableParserRuleCall_2; }
	}

	public class DictionaryCompositeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryComposite");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCompositeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cLayoutdataAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cLayoutdataColumnLayoutDataParserRuleCall_3_0 = (RuleCall)cLayoutdataAssignment_3.eContents().get(0);
		private final Assignment cLayoutAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cLayoutColumnLayoutParserRuleCall_4_0 = (RuleCall)cLayoutAssignment_4.eContents().get(0);
		private final Assignment cContainercontentsAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cContainercontentsDictionaryContainerContentParserRuleCall_5_0 = (RuleCall)cContainercontentsAssignment_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//DictionaryComposite:
		//	"composite" name=ID "{" layoutdata=ColumnLayoutData? layout=ColumnLayout?
		//	containercontents+=DictionaryContainerContent* "}";
		public ParserRule getRule() { return rule; }

		//"composite" name=ID "{" layoutdata=ColumnLayoutData? layout=ColumnLayout? containercontents+=DictionaryContainerContent*
		//"}"
		public Group getGroup() { return cGroup; }

		//"composite"
		public Keyword getCompositeKeyword_0() { return cCompositeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//layoutdata=ColumnLayoutData?
		public Assignment getLayoutdataAssignment_3() { return cLayoutdataAssignment_3; }

		//ColumnLayoutData
		public RuleCall getLayoutdataColumnLayoutDataParserRuleCall_3_0() { return cLayoutdataColumnLayoutDataParserRuleCall_3_0; }

		//layout=ColumnLayout?
		public Assignment getLayoutAssignment_4() { return cLayoutAssignment_4; }

		//ColumnLayout
		public RuleCall getLayoutColumnLayoutParserRuleCall_4_0() { return cLayoutColumnLayoutParserRuleCall_4_0; }

		//containercontents+=DictionaryContainerContent*
		public Assignment getContainercontentsAssignment_5() { return cContainercontentsAssignment_5; }

		//DictionaryContainerContent
		public RuleCall getContainercontentsDictionaryContainerContentParserRuleCall_5_0() { return cContainercontentsDictionaryContainerContentParserRuleCall_5_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class DictionaryEditableTableElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryEditableTable");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cEditabletableKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cLayoutdataKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cLayoutdataAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cLayoutdataColumnLayoutDataParserRuleCall_3_1_0 = (RuleCall)cLayoutdataAssignment_3_1.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLayoutKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cLayoutAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cLayoutColumnLayoutParserRuleCall_4_1_0 = (RuleCall)cLayoutAssignment_4_1.eContents().get(0);
		private final Assignment cContainercontentsAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cContainercontentsDictionaryContainerContentParserRuleCall_5_0 = (RuleCall)cContainercontentsAssignment_5.eContents().get(0);
		private final Keyword cEntityattributeKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cEntityattributeAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final CrossReference cEntityattributeEntityAttributeCrossReference_7_0 = (CrossReference)cEntityattributeAssignment_7.eContents().get(0);
		private final RuleCall cEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1 = (RuleCall)cEntityattributeEntityAttributeCrossReference_7_0.eContents().get(1);
		private final Keyword cColumncontrolsKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cLeftCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Assignment cColumncontrolsAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cColumncontrolsDictionaryControlParserRuleCall_10_0 = (RuleCall)cColumncontrolsAssignment_10.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
		private final Keyword cRightCurlyBracketKeyword_12 = (Keyword)cGroup.eContents().get(12);
		
		//DictionaryEditableTable:
		//	"editabletable" name=ID "{" ("layoutdata" layoutdata=ColumnLayoutData)? ("layout" layout=ColumnLayout)?
		//	containercontents+=DictionaryContainerContent* "entityattribute" entityattribute=[EntityAttribute|QualifiedName]
		//	"columncontrols" "{" columncontrols+=DictionaryControl* "}" "}";
		public ParserRule getRule() { return rule; }

		//"editabletable" name=ID "{" ("layoutdata" layoutdata=ColumnLayoutData)? ("layout" layout=ColumnLayout)?
		//containercontents+=DictionaryContainerContent* "entityattribute" entityattribute=[EntityAttribute|QualifiedName]
		//"columncontrols" "{" columncontrols+=DictionaryControl* "}" "}"
		public Group getGroup() { return cGroup; }

		//"editabletable"
		public Keyword getEditabletableKeyword_0() { return cEditabletableKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//("layoutdata" layoutdata=ColumnLayoutData)?
		public Group getGroup_3() { return cGroup_3; }

		//"layoutdata"
		public Keyword getLayoutdataKeyword_3_0() { return cLayoutdataKeyword_3_0; }

		//layoutdata=ColumnLayoutData
		public Assignment getLayoutdataAssignment_3_1() { return cLayoutdataAssignment_3_1; }

		//ColumnLayoutData
		public RuleCall getLayoutdataColumnLayoutDataParserRuleCall_3_1_0() { return cLayoutdataColumnLayoutDataParserRuleCall_3_1_0; }

		//("layout" layout=ColumnLayout)?
		public Group getGroup_4() { return cGroup_4; }

		//"layout"
		public Keyword getLayoutKeyword_4_0() { return cLayoutKeyword_4_0; }

		//layout=ColumnLayout
		public Assignment getLayoutAssignment_4_1() { return cLayoutAssignment_4_1; }

		//ColumnLayout
		public RuleCall getLayoutColumnLayoutParserRuleCall_4_1_0() { return cLayoutColumnLayoutParserRuleCall_4_1_0; }

		//containercontents+=DictionaryContainerContent*
		public Assignment getContainercontentsAssignment_5() { return cContainercontentsAssignment_5; }

		//DictionaryContainerContent
		public RuleCall getContainercontentsDictionaryContainerContentParserRuleCall_5_0() { return cContainercontentsDictionaryContainerContentParserRuleCall_5_0; }

		//"entityattribute"
		public Keyword getEntityattributeKeyword_6() { return cEntityattributeKeyword_6; }

		//entityattribute=[EntityAttribute|QualifiedName]
		public Assignment getEntityattributeAssignment_7() { return cEntityattributeAssignment_7; }

		//[EntityAttribute|QualifiedName]
		public CrossReference getEntityattributeEntityAttributeCrossReference_7_0() { return cEntityattributeEntityAttributeCrossReference_7_0; }

		//QualifiedName
		public RuleCall getEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1() { return cEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1; }

		//"columncontrols"
		public Keyword getColumncontrolsKeyword_8() { return cColumncontrolsKeyword_8; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_9() { return cLeftCurlyBracketKeyword_9; }

		//columncontrols+=DictionaryControl*
		public Assignment getColumncontrolsAssignment_10() { return cColumncontrolsAssignment_10; }

		//DictionaryControl
		public RuleCall getColumncontrolsDictionaryControlParserRuleCall_10_0() { return cColumncontrolsDictionaryControlParserRuleCall_10_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_11() { return cRightCurlyBracketKeyword_11; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_12() { return cRightCurlyBracketKeyword_12; }
	}

	public class DictionaryAssignmentTableElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryAssignmentTable");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cAssignmenttableKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cLayoutdataKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cLayoutdataAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cLayoutdataColumnLayoutDataParserRuleCall_3_1_0 = (RuleCall)cLayoutdataAssignment_3_1.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLayoutKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cLayoutAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cLayoutColumnLayoutParserRuleCall_4_1_0 = (RuleCall)cLayoutAssignment_4_1.eContents().get(0);
		private final Assignment cContainercontentsAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cContainercontentsDictionaryContainerContentParserRuleCall_5_0 = (RuleCall)cContainercontentsAssignment_5.eContents().get(0);
		private final Keyword cEntityattributeKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cEntityattributeAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final CrossReference cEntityattributeEntityAttributeCrossReference_7_0 = (CrossReference)cEntityattributeAssignment_7.eContents().get(0);
		private final RuleCall cEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1 = (RuleCall)cEntityattributeEntityAttributeCrossReference_7_0.eContents().get(1);
		private final Keyword cDictionaryKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Assignment cDictionaryAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final CrossReference cDictionaryDictionaryCrossReference_9_0 = (CrossReference)cDictionaryAssignment_9.eContents().get(0);
		private final RuleCall cDictionaryDictionaryQualifiedNameParserRuleCall_9_0_1 = (RuleCall)cDictionaryDictionaryCrossReference_9_0.eContents().get(1);
		private final Keyword cColumncontrolsKeyword_10 = (Keyword)cGroup.eContents().get(10);
		private final Keyword cLeftCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
		private final Assignment cColumncontrolsAssignment_12 = (Assignment)cGroup.eContents().get(12);
		private final RuleCall cColumncontrolsDictionaryControlParserRuleCall_12_0 = (RuleCall)cColumncontrolsAssignment_12.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_13 = (Keyword)cGroup.eContents().get(13);
		private final Keyword cRightCurlyBracketKeyword_14 = (Keyword)cGroup.eContents().get(14);
		
		//DictionaryAssignmentTable:
		//	"assignmenttable" name=ID "{" ("layoutdata" layoutdata=ColumnLayoutData)? ("layout" layout=ColumnLayout)?
		//	containercontents+=DictionaryContainerContent* "entityattribute" entityattribute=[EntityAttribute|QualifiedName]
		//	"dictionary" dictionary=[Dictionary|QualifiedName] "columncontrols" "{" columncontrols+=DictionaryControl* "}" "}";
		public ParserRule getRule() { return rule; }

		//"assignmenttable" name=ID "{" ("layoutdata" layoutdata=ColumnLayoutData)? ("layout" layout=ColumnLayout)?
		//containercontents+=DictionaryContainerContent* "entityattribute" entityattribute=[EntityAttribute|QualifiedName]
		//"dictionary" dictionary=[Dictionary|QualifiedName] "columncontrols" "{" columncontrols+=DictionaryControl* "}" "}"
		public Group getGroup() { return cGroup; }

		//"assignmenttable"
		public Keyword getAssignmenttableKeyword_0() { return cAssignmenttableKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//("layoutdata" layoutdata=ColumnLayoutData)?
		public Group getGroup_3() { return cGroup_3; }

		//"layoutdata"
		public Keyword getLayoutdataKeyword_3_0() { return cLayoutdataKeyword_3_0; }

		//layoutdata=ColumnLayoutData
		public Assignment getLayoutdataAssignment_3_1() { return cLayoutdataAssignment_3_1; }

		//ColumnLayoutData
		public RuleCall getLayoutdataColumnLayoutDataParserRuleCall_3_1_0() { return cLayoutdataColumnLayoutDataParserRuleCall_3_1_0; }

		//("layout" layout=ColumnLayout)?
		public Group getGroup_4() { return cGroup_4; }

		//"layout"
		public Keyword getLayoutKeyword_4_0() { return cLayoutKeyword_4_0; }

		//layout=ColumnLayout
		public Assignment getLayoutAssignment_4_1() { return cLayoutAssignment_4_1; }

		//ColumnLayout
		public RuleCall getLayoutColumnLayoutParserRuleCall_4_1_0() { return cLayoutColumnLayoutParserRuleCall_4_1_0; }

		//containercontents+=DictionaryContainerContent*
		public Assignment getContainercontentsAssignment_5() { return cContainercontentsAssignment_5; }

		//DictionaryContainerContent
		public RuleCall getContainercontentsDictionaryContainerContentParserRuleCall_5_0() { return cContainercontentsDictionaryContainerContentParserRuleCall_5_0; }

		//"entityattribute"
		public Keyword getEntityattributeKeyword_6() { return cEntityattributeKeyword_6; }

		//entityattribute=[EntityAttribute|QualifiedName]
		public Assignment getEntityattributeAssignment_7() { return cEntityattributeAssignment_7; }

		//[EntityAttribute|QualifiedName]
		public CrossReference getEntityattributeEntityAttributeCrossReference_7_0() { return cEntityattributeEntityAttributeCrossReference_7_0; }

		//QualifiedName
		public RuleCall getEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1() { return cEntityattributeEntityAttributeQualifiedNameParserRuleCall_7_0_1; }

		//"dictionary"
		public Keyword getDictionaryKeyword_8() { return cDictionaryKeyword_8; }

		//dictionary=[Dictionary|QualifiedName]
		public Assignment getDictionaryAssignment_9() { return cDictionaryAssignment_9; }

		//[Dictionary|QualifiedName]
		public CrossReference getDictionaryDictionaryCrossReference_9_0() { return cDictionaryDictionaryCrossReference_9_0; }

		//QualifiedName
		public RuleCall getDictionaryDictionaryQualifiedNameParserRuleCall_9_0_1() { return cDictionaryDictionaryQualifiedNameParserRuleCall_9_0_1; }

		//"columncontrols"
		public Keyword getColumncontrolsKeyword_10() { return cColumncontrolsKeyword_10; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_11() { return cLeftCurlyBracketKeyword_11; }

		//columncontrols+=DictionaryControl*
		public Assignment getColumncontrolsAssignment_12() { return cColumncontrolsAssignment_12; }

		//DictionaryControl
		public RuleCall getColumncontrolsDictionaryControlParserRuleCall_12_0() { return cColumncontrolsDictionaryControlParserRuleCall_12_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_13() { return cRightCurlyBracketKeyword_13; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_14() { return cRightCurlyBracketKeyword_14; }
	}

	public class DictionaryContainerContentElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryContainerContent");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cDictionaryContainerParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cDictionaryControlParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//DictionaryContainerContent:
		//	DictionaryContainer | DictionaryControl;
		public ParserRule getRule() { return rule; }

		//DictionaryContainer | DictionaryControl
		public Alternatives getAlternatives() { return cAlternatives; }

		//DictionaryContainer
		public RuleCall getDictionaryContainerParserRuleCall_0() { return cDictionaryContainerParserRuleCall_0; }

		//DictionaryControl
		public RuleCall getDictionaryControlParserRuleCall_1() { return cDictionaryControlParserRuleCall_1; }
	}

	public class LabelsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Labels");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cLabelsAction_0 = (Action)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cLabelKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cLabelAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cLabelSTRINGTerminalRuleCall_1_1_0 = (RuleCall)cLabelAssignment_1_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cFilterLabelKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cFilterLabelAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cFilterLabelSTRINGTerminalRuleCall_2_1_0 = (RuleCall)cFilterLabelAssignment_2_1.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cColumnLabelKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cColumnLabelAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cColumnLabelSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cColumnLabelAssignment_3_1.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cEditorLabelKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cEditorLabelAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cEditorLabelSTRINGTerminalRuleCall_4_1_0 = (RuleCall)cEditorLabelAssignment_4_1.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cToolTipKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cToolTipAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cToolTipSTRINGTerminalRuleCall_5_1_0 = (RuleCall)cToolTipAssignment_5_1.eContents().get(0);
		
		////- labels --------------------------------------------------------------------
		//Labels:
		//	{Labels} ("label" label=STRING)? ("filterLabel" filterLabel=STRING)? ("columnLabel" columnLabel=STRING)?
		//	("editorLabel" editorLabel=STRING)? ("toolTip" toolTip=STRING)?;
		public ParserRule getRule() { return rule; }

		//{Labels} ("label" label=STRING)? ("filterLabel" filterLabel=STRING)? ("columnLabel" columnLabel=STRING)? ("editorLabel"
		//editorLabel=STRING)? ("toolTip" toolTip=STRING)?
		public Group getGroup() { return cGroup; }

		//{Labels}
		public Action getLabelsAction_0() { return cLabelsAction_0; }

		//("label" label=STRING)?
		public Group getGroup_1() { return cGroup_1; }

		//"label"
		public Keyword getLabelKeyword_1_0() { return cLabelKeyword_1_0; }

		//label=STRING
		public Assignment getLabelAssignment_1_1() { return cLabelAssignment_1_1; }

		//STRING
		public RuleCall getLabelSTRINGTerminalRuleCall_1_1_0() { return cLabelSTRINGTerminalRuleCall_1_1_0; }

		//("filterLabel" filterLabel=STRING)?
		public Group getGroup_2() { return cGroup_2; }

		//"filterLabel"
		public Keyword getFilterLabelKeyword_2_0() { return cFilterLabelKeyword_2_0; }

		//filterLabel=STRING
		public Assignment getFilterLabelAssignment_2_1() { return cFilterLabelAssignment_2_1; }

		//STRING
		public RuleCall getFilterLabelSTRINGTerminalRuleCall_2_1_0() { return cFilterLabelSTRINGTerminalRuleCall_2_1_0; }

		//("columnLabel" columnLabel=STRING)?
		public Group getGroup_3() { return cGroup_3; }

		//"columnLabel"
		public Keyword getColumnLabelKeyword_3_0() { return cColumnLabelKeyword_3_0; }

		//columnLabel=STRING
		public Assignment getColumnLabelAssignment_3_1() { return cColumnLabelAssignment_3_1; }

		//STRING
		public RuleCall getColumnLabelSTRINGTerminalRuleCall_3_1_0() { return cColumnLabelSTRINGTerminalRuleCall_3_1_0; }

		//("editorLabel" editorLabel=STRING)?
		public Group getGroup_4() { return cGroup_4; }

		//"editorLabel"
		public Keyword getEditorLabelKeyword_4_0() { return cEditorLabelKeyword_4_0; }

		//editorLabel=STRING
		public Assignment getEditorLabelAssignment_4_1() { return cEditorLabelAssignment_4_1; }

		//STRING
		public RuleCall getEditorLabelSTRINGTerminalRuleCall_4_1_0() { return cEditorLabelSTRINGTerminalRuleCall_4_1_0; }

		//("toolTip" toolTip=STRING)?
		public Group getGroup_5() { return cGroup_5; }

		//"toolTip"
		public Keyword getToolTipKeyword_5_0() { return cToolTipKeyword_5_0; }

		//toolTip=STRING
		public Assignment getToolTipAssignment_5_1() { return cToolTipAssignment_5_1; }

		//STRING
		public RuleCall getToolTipSTRINGTerminalRuleCall_5_1_0() { return cToolTipSTRINGTerminalRuleCall_5_1_0; }
	}

	public class BaseDictionaryControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BaseDictionaryControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
		private final Keyword cEntityattributeKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
		private final Assignment cEntityattributeAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
		private final CrossReference cEntityattributeEntityAttributeCrossReference_0_1_0 = (CrossReference)cEntityattributeAssignment_0_1.eContents().get(0);
		private final RuleCall cEntityattributeEntityAttributeQualifiedNameParserRuleCall_0_1_0_1 = (RuleCall)cEntityattributeEntityAttributeCrossReference_0_1_0.eContents().get(1);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cTypeKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cTypeAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final CrossReference cTypeDatatypeCrossReference_1_1_0 = (CrossReference)cTypeAssignment_1_1.eContents().get(0);
		private final RuleCall cTypeDatatypeQualifiedNameParserRuleCall_1_1_0_1 = (RuleCall)cTypeDatatypeCrossReference_1_1_0.eContents().get(1);
		private final Assignment cLabelsAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cLabelsLabelsParserRuleCall_2_0 = (RuleCall)cLabelsAssignment_2.eContents().get(0);
		private final Assignment cMandatoryAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Keyword cMandatoryMandatoryKeyword_3_0 = (Keyword)cMandatoryAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cWidthKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cWidthAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cWidthINTTerminalRuleCall_4_1_0 = (RuleCall)cWidthAssignment_4_1.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cReadonlyKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cReadonlyAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final RuleCall cReadonlyXBooleanLiteralParserRuleCall_5_1_0 = (RuleCall)cReadonlyAssignment_5_1.eContents().get(0);
		
		////- controls ------------------------------------------------------------------
		//BaseDictionaryControl:
		//	("entityattribute" entityattribute=[EntityAttribute|QualifiedName])? ("type" type=[Datatype|QualifiedName])?
		//	labels=Labels mandatory?="mandatory"? ("width" width=INT)? ("readonly" readonly?=XBooleanLiteral)?;
		public ParserRule getRule() { return rule; }

		//("entityattribute" entityattribute=[EntityAttribute|QualifiedName])? ("type" type=[Datatype|QualifiedName])?
		//labels=Labels mandatory?="mandatory"? ("width" width=INT)? ("readonly" readonly?=XBooleanLiteral)?
		public Group getGroup() { return cGroup; }

		//("entityattribute" entityattribute=[EntityAttribute|QualifiedName])?
		public Group getGroup_0() { return cGroup_0; }

		//"entityattribute"
		public Keyword getEntityattributeKeyword_0_0() { return cEntityattributeKeyword_0_0; }

		//entityattribute=[EntityAttribute|QualifiedName]
		public Assignment getEntityattributeAssignment_0_1() { return cEntityattributeAssignment_0_1; }

		//[EntityAttribute|QualifiedName]
		public CrossReference getEntityattributeEntityAttributeCrossReference_0_1_0() { return cEntityattributeEntityAttributeCrossReference_0_1_0; }

		//QualifiedName
		public RuleCall getEntityattributeEntityAttributeQualifiedNameParserRuleCall_0_1_0_1() { return cEntityattributeEntityAttributeQualifiedNameParserRuleCall_0_1_0_1; }

		//("type" type=[Datatype|QualifiedName])?
		public Group getGroup_1() { return cGroup_1; }

		//"type"
		public Keyword getTypeKeyword_1_0() { return cTypeKeyword_1_0; }

		//type=[Datatype|QualifiedName]
		public Assignment getTypeAssignment_1_1() { return cTypeAssignment_1_1; }

		//[Datatype|QualifiedName]
		public CrossReference getTypeDatatypeCrossReference_1_1_0() { return cTypeDatatypeCrossReference_1_1_0; }

		//QualifiedName
		public RuleCall getTypeDatatypeQualifiedNameParserRuleCall_1_1_0_1() { return cTypeDatatypeQualifiedNameParserRuleCall_1_1_0_1; }

		//labels=Labels
		public Assignment getLabelsAssignment_2() { return cLabelsAssignment_2; }

		//Labels
		public RuleCall getLabelsLabelsParserRuleCall_2_0() { return cLabelsLabelsParserRuleCall_2_0; }

		//mandatory?="mandatory"?
		public Assignment getMandatoryAssignment_3() { return cMandatoryAssignment_3; }

		//"mandatory"
		public Keyword getMandatoryMandatoryKeyword_3_0() { return cMandatoryMandatoryKeyword_3_0; }

		//("width" width=INT)?
		public Group getGroup_4() { return cGroup_4; }

		//"width"
		public Keyword getWidthKeyword_4_0() { return cWidthKeyword_4_0; }

		//width=INT
		public Assignment getWidthAssignment_4_1() { return cWidthAssignment_4_1; }

		//INT
		public RuleCall getWidthINTTerminalRuleCall_4_1_0() { return cWidthINTTerminalRuleCall_4_1_0; }

		//("readonly" readonly?=XBooleanLiteral)?
		public Group getGroup_5() { return cGroup_5; }

		//"readonly"
		public Keyword getReadonlyKeyword_5_0() { return cReadonlyKeyword_5_0; }

		//readonly?=XBooleanLiteral
		public Assignment getReadonlyAssignment_5_1() { return cReadonlyAssignment_5_1; }

		//XBooleanLiteral
		public RuleCall getReadonlyXBooleanLiteralParserRuleCall_5_1_0() { return cReadonlyXBooleanLiteralParserRuleCall_5_1_0; }
	}

	public class DictionaryControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryControl");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cDictionaryControlGroupParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cDictionaryTextControlParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cDictionaryIntegerControlParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cDictionaryHierarchicalControlParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cDictionaryBigDecimalControlParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cDictionaryBooleanControlParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cDictionaryDateControlParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		private final RuleCall cDictionaryEnumerationControlParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
		private final RuleCall cDictionaryFileControlParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
		private final RuleCall cDictionaryReferenceControlParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
		
		//DictionaryControl:
		//	DictionaryControlGroup | DictionaryTextControl | DictionaryIntegerControl | DictionaryHierarchicalControl |
		//	DictionaryBigDecimalControl | DictionaryBooleanControl | DictionaryDateControl | DictionaryEnumerationControl |
		//	DictionaryFileControl | DictionaryReferenceControl;
		public ParserRule getRule() { return rule; }

		//DictionaryControlGroup | DictionaryTextControl | DictionaryIntegerControl | DictionaryHierarchicalControl |
		//DictionaryBigDecimalControl | DictionaryBooleanControl | DictionaryDateControl | DictionaryEnumerationControl |
		//DictionaryFileControl | DictionaryReferenceControl
		public Alternatives getAlternatives() { return cAlternatives; }

		//DictionaryControlGroup
		public RuleCall getDictionaryControlGroupParserRuleCall_0() { return cDictionaryControlGroupParserRuleCall_0; }

		//DictionaryTextControl
		public RuleCall getDictionaryTextControlParserRuleCall_1() { return cDictionaryTextControlParserRuleCall_1; }

		//DictionaryIntegerControl
		public RuleCall getDictionaryIntegerControlParserRuleCall_2() { return cDictionaryIntegerControlParserRuleCall_2; }

		//DictionaryHierarchicalControl
		public RuleCall getDictionaryHierarchicalControlParserRuleCall_3() { return cDictionaryHierarchicalControlParserRuleCall_3; }

		//DictionaryBigDecimalControl
		public RuleCall getDictionaryBigDecimalControlParserRuleCall_4() { return cDictionaryBigDecimalControlParserRuleCall_4; }

		//DictionaryBooleanControl
		public RuleCall getDictionaryBooleanControlParserRuleCall_5() { return cDictionaryBooleanControlParserRuleCall_5; }

		//DictionaryDateControl
		public RuleCall getDictionaryDateControlParserRuleCall_6() { return cDictionaryDateControlParserRuleCall_6; }

		//DictionaryEnumerationControl
		public RuleCall getDictionaryEnumerationControlParserRuleCall_7() { return cDictionaryEnumerationControlParserRuleCall_7; }

		//DictionaryFileControl
		public RuleCall getDictionaryFileControlParserRuleCall_8() { return cDictionaryFileControlParserRuleCall_8; }

		//DictionaryReferenceControl
		public RuleCall getDictionaryReferenceControlParserRuleCall_9() { return cDictionaryReferenceControlParserRuleCall_9; }
	}

	public class DictionaryControlGroupOptionsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryControlGroupOptions");
		private final RuleCall cDictionaryControlGroupOptionMultiFilterFieldParserRuleCall = (RuleCall)rule.eContents().get(1);
		
		//DictionaryControlGroupOptions:
		//	DictionaryControlGroupOptionMultiFilterField;
		public ParserRule getRule() { return rule; }

		//DictionaryControlGroupOptionMultiFilterField
		public RuleCall getDictionaryControlGroupOptionMultiFilterFieldParserRuleCall() { return cDictionaryControlGroupOptionMultiFilterFieldParserRuleCall; }
	}

	public class DictionaryControlGroupOptionMultiFilterFieldElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryControlGroupOptionMultiFilterField");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryControlGroupOptionMultiFilterFieldAction_0 = (Action)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cMultiFilterFieldKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cMultiFilterFieldAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cMultiFilterFieldXBooleanLiteralParserRuleCall_1_1_0 = (RuleCall)cMultiFilterFieldAssignment_1_1.eContents().get(0);
		
		//DictionaryControlGroupOptionMultiFilterField:
		//	{DictionaryControlGroupOptionMultiFilterField} ("multiFilterField" multiFilterField?=XBooleanLiteral)?;
		public ParserRule getRule() { return rule; }

		//{DictionaryControlGroupOptionMultiFilterField} ("multiFilterField" multiFilterField?=XBooleanLiteral)?
		public Group getGroup() { return cGroup; }

		//{DictionaryControlGroupOptionMultiFilterField}
		public Action getDictionaryControlGroupOptionMultiFilterFieldAction_0() { return cDictionaryControlGroupOptionMultiFilterFieldAction_0; }

		//("multiFilterField" multiFilterField?=XBooleanLiteral)?
		public Group getGroup_1() { return cGroup_1; }

		//"multiFilterField"
		public Keyword getMultiFilterFieldKeyword_1_0() { return cMultiFilterFieldKeyword_1_0; }

		//multiFilterField?=XBooleanLiteral
		public Assignment getMultiFilterFieldAssignment_1_1() { return cMultiFilterFieldAssignment_1_1; }

		//XBooleanLiteral
		public RuleCall getMultiFilterFieldXBooleanLiteralParserRuleCall_1_1_0() { return cMultiFilterFieldXBooleanLiteralParserRuleCall_1_1_0; }
	}

	public class DictionaryControlGroupOptionsContainerElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryControlGroupOptionsContainer");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryControlGroupOptionsContainerAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cGroupoptionsKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cOptionsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cOptionsDictionaryControlGroupOptionsParserRuleCall_3_0 = (RuleCall)cOptionsAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//DictionaryControlGroupOptionsContainer:
		//	{DictionaryControlGroupOptionsContainer} "groupoptions" "{" options+=DictionaryControlGroupOptions "}";
		public ParserRule getRule() { return rule; }

		//{DictionaryControlGroupOptionsContainer} "groupoptions" "{" options+=DictionaryControlGroupOptions "}"
		public Group getGroup() { return cGroup; }

		//{DictionaryControlGroupOptionsContainer}
		public Action getDictionaryControlGroupOptionsContainerAction_0() { return cDictionaryControlGroupOptionsContainerAction_0; }

		//"groupoptions"
		public Keyword getGroupoptionsKeyword_1() { return cGroupoptionsKeyword_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//options+=DictionaryControlGroupOptions
		public Assignment getOptionsAssignment_3() { return cOptionsAssignment_3; }

		//DictionaryControlGroupOptions
		public RuleCall getOptionsDictionaryControlGroupOptionsParserRuleCall_3_0() { return cOptionsDictionaryControlGroupOptionsParserRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class DictionaryControlGroupElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryControlGroup");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryControlGroupAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cControlgroupKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryControlGroupCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryControlGroupQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryControlGroupCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cControlGroupOptionsAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cControlGroupOptionsDictionaryControlGroupOptionsContainerParserRuleCall_4_1_0 = (RuleCall)cControlGroupOptionsAssignment_4_1.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_2_0 = (RuleCall)cBaseControlAssignment_4_2.eContents().get(0);
		private final Assignment cGroupcontrolsAssignment_4_3 = (Assignment)cGroup_4.eContents().get(3);
		private final RuleCall cGroupcontrolsDictionaryControlParserRuleCall_4_3_0 = (RuleCall)cGroupcontrolsAssignment_4_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_4 = (Keyword)cGroup_4.eContents().get(4);
		
		//DictionaryControlGroup:
		//	{DictionaryControlGroup} "controlgroup" name=ID? ("ref" ref=[DictionaryControlGroup|QualifiedName])? ("{"
		//	controlGroupOptions=DictionaryControlGroupOptionsContainer? baseControl=BaseDictionaryControl
		//	groupcontrols+=DictionaryControl* "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryControlGroup} "controlgroup" name=ID? ("ref" ref=[DictionaryControlGroup|QualifiedName])? ("{"
		//controlGroupOptions=DictionaryControlGroupOptionsContainer? baseControl=BaseDictionaryControl
		//groupcontrols+=DictionaryControl* "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryControlGroup}
		public Action getDictionaryControlGroupAction_0() { return cDictionaryControlGroupAction_0; }

		//"controlgroup"
		public Keyword getControlgroupKeyword_1() { return cControlgroupKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryControlGroup|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryControlGroup|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryControlGroup|QualifiedName]
		public CrossReference getRefDictionaryControlGroupCrossReference_3_1_0() { return cRefDictionaryControlGroupCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryControlGroupQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryControlGroupQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" controlGroupOptions=DictionaryControlGroupOptionsContainer? baseControl=BaseDictionaryControl
		//groupcontrols+=DictionaryControl* "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//controlGroupOptions=DictionaryControlGroupOptionsContainer?
		public Assignment getControlGroupOptionsAssignment_4_1() { return cControlGroupOptionsAssignment_4_1; }

		//DictionaryControlGroupOptionsContainer
		public RuleCall getControlGroupOptionsDictionaryControlGroupOptionsContainerParserRuleCall_4_1_0() { return cControlGroupOptionsDictionaryControlGroupOptionsContainerParserRuleCall_4_1_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_2() { return cBaseControlAssignment_4_2; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_2_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_2_0; }

		//groupcontrols+=DictionaryControl*
		public Assignment getGroupcontrolsAssignment_4_3() { return cGroupcontrolsAssignment_4_3; }

		//DictionaryControl
		public RuleCall getGroupcontrolsDictionaryControlParserRuleCall_4_3_0() { return cGroupcontrolsDictionaryControlParserRuleCall_4_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_4() { return cRightCurlyBracketKeyword_4_4; }
	}

	public class DictionaryHierarchicalControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryHierarchicalControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryHierarchicalControlAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cHierarchicalcontrolKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryHierarchicalControlCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryHierarchicalControlQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryHierarchicalControlCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_1_0 = (RuleCall)cBaseControlAssignment_4_1.eContents().get(0);
		private final Keyword cHierarchicalIdKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		private final Assignment cHierarchicalIdAssignment_4_3 = (Assignment)cGroup_4.eContents().get(3);
		private final RuleCall cHierarchicalIdSTRINGTerminalRuleCall_4_3_0 = (RuleCall)cHierarchicalIdAssignment_4_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_4 = (Keyword)cGroup_4.eContents().get(4);
		
		//DictionaryHierarchicalControl:
		//	{DictionaryHierarchicalControl} "hierarchicalcontrol" name=ID? ("ref"
		//	ref=[DictionaryHierarchicalControl|QualifiedName])? ("{" baseControl=BaseDictionaryControl "hierarchicalId"
		//	hierarchicalId=STRING "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryHierarchicalControl} "hierarchicalcontrol" name=ID? ("ref"
		//ref=[DictionaryHierarchicalControl|QualifiedName])? ("{" baseControl=BaseDictionaryControl "hierarchicalId"
		//hierarchicalId=STRING "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryHierarchicalControl}
		public Action getDictionaryHierarchicalControlAction_0() { return cDictionaryHierarchicalControlAction_0; }

		//"hierarchicalcontrol"
		public Keyword getHierarchicalcontrolKeyword_1() { return cHierarchicalcontrolKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryHierarchicalControl|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryHierarchicalControl|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryHierarchicalControl|QualifiedName]
		public CrossReference getRefDictionaryHierarchicalControlCrossReference_3_1_0() { return cRefDictionaryHierarchicalControlCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryHierarchicalControlQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryHierarchicalControlQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" baseControl=BaseDictionaryControl "hierarchicalId" hierarchicalId=STRING "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_1() { return cBaseControlAssignment_4_1; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_1_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_1_0; }

		//"hierarchicalId"
		public Keyword getHierarchicalIdKeyword_4_2() { return cHierarchicalIdKeyword_4_2; }

		//hierarchicalId=STRING
		public Assignment getHierarchicalIdAssignment_4_3() { return cHierarchicalIdAssignment_4_3; }

		//STRING
		public RuleCall getHierarchicalIdSTRINGTerminalRuleCall_4_3_0() { return cHierarchicalIdSTRINGTerminalRuleCall_4_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_4() { return cRightCurlyBracketKeyword_4_4; }
	}

	public class DictionaryTextControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryTextControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryTextControlAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cTextcontrolKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryTextControlCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryTextControlQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryTextControlCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_1_0 = (RuleCall)cBaseControlAssignment_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		
		//DictionaryTextControl:
		//	{DictionaryTextControl} "textcontrol" name=ID? ("ref" ref=[DictionaryTextControl|QualifiedName])? ("{"
		//	baseControl=BaseDictionaryControl "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryTextControl} "textcontrol" name=ID? ("ref" ref=[DictionaryTextControl|QualifiedName])? ("{"
		//baseControl=BaseDictionaryControl "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryTextControl}
		public Action getDictionaryTextControlAction_0() { return cDictionaryTextControlAction_0; }

		//"textcontrol"
		public Keyword getTextcontrolKeyword_1() { return cTextcontrolKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryTextControl|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryTextControl|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryTextControl|QualifiedName]
		public CrossReference getRefDictionaryTextControlCrossReference_3_1_0() { return cRefDictionaryTextControlCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryTextControlQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryTextControlQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" baseControl=BaseDictionaryControl "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_1() { return cBaseControlAssignment_4_1; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_1_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_2() { return cRightCurlyBracketKeyword_4_2; }
	}

	public class DictionaryIntegerControlInputTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryIntegerControlInputType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryIntegerControlInputTypeAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cInputtypeKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cInputtypeAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cInputtypeIntegerControlInputTypeEnumRuleCall_2_0 = (RuleCall)cInputtypeAssignment_2.eContents().get(0);
		
		//DictionaryIntegerControlInputType:
		//	{DictionaryIntegerControlInputType} "inputtype" inputtype=IntegerControlInputType;
		public ParserRule getRule() { return rule; }

		//{DictionaryIntegerControlInputType} "inputtype" inputtype=IntegerControlInputType
		public Group getGroup() { return cGroup; }

		//{DictionaryIntegerControlInputType}
		public Action getDictionaryIntegerControlInputTypeAction_0() { return cDictionaryIntegerControlInputTypeAction_0; }

		//"inputtype"
		public Keyword getInputtypeKeyword_1() { return cInputtypeKeyword_1; }

		//inputtype=IntegerControlInputType
		public Assignment getInputtypeAssignment_2() { return cInputtypeAssignment_2; }

		//IntegerControlInputType
		public RuleCall getInputtypeIntegerControlInputTypeEnumRuleCall_2_0() { return cInputtypeIntegerControlInputTypeEnumRuleCall_2_0; }
	}

	public class DictionaryIntegerControlOptionsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryIntegerControlOptions");
		private final RuleCall cDictionaryIntegerControlInputTypeParserRuleCall = (RuleCall)rule.eContents().get(1);
		
		//DictionaryIntegerControlOptions:
		//	DictionaryIntegerControlInputType;
		public ParserRule getRule() { return rule; }

		//DictionaryIntegerControlInputType
		public RuleCall getDictionaryIntegerControlInputTypeParserRuleCall() { return cDictionaryIntegerControlInputTypeParserRuleCall; }
	}

	public class DictionaryIntegerControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryIntegerControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryIntegerControlAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cIntegercontrolKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryIntegerControlCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryIntegerControlQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryIntegerControlCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_1_0 = (RuleCall)cBaseControlAssignment_4_1.eContents().get(0);
		private final Assignment cOptionsAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final RuleCall cOptionsDictionaryIntegerControlOptionsParserRuleCall_4_2_0 = (RuleCall)cOptionsAssignment_4_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_3 = (Keyword)cGroup_4.eContents().get(3);
		
		//DictionaryIntegerControl:
		//	{DictionaryIntegerControl} "integercontrol" name=ID? ("ref" ref=[DictionaryIntegerControl|QualifiedName])? ("{"
		//	baseControl=BaseDictionaryControl options+=DictionaryIntegerControlOptions* "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryIntegerControl} "integercontrol" name=ID? ("ref" ref=[DictionaryIntegerControl|QualifiedName])? ("{"
		//baseControl=BaseDictionaryControl options+=DictionaryIntegerControlOptions* "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryIntegerControl}
		public Action getDictionaryIntegerControlAction_0() { return cDictionaryIntegerControlAction_0; }

		//"integercontrol"
		public Keyword getIntegercontrolKeyword_1() { return cIntegercontrolKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryIntegerControl|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryIntegerControl|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryIntegerControl|QualifiedName]
		public CrossReference getRefDictionaryIntegerControlCrossReference_3_1_0() { return cRefDictionaryIntegerControlCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryIntegerControlQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryIntegerControlQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" baseControl=BaseDictionaryControl options+=DictionaryIntegerControlOptions* "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_1() { return cBaseControlAssignment_4_1; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_1_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_1_0; }

		//options+=DictionaryIntegerControlOptions*
		public Assignment getOptionsAssignment_4_2() { return cOptionsAssignment_4_2; }

		//DictionaryIntegerControlOptions
		public RuleCall getOptionsDictionaryIntegerControlOptionsParserRuleCall_4_2_0() { return cOptionsDictionaryIntegerControlOptionsParserRuleCall_4_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_3() { return cRightCurlyBracketKeyword_4_3; }
	}

	public class DictionaryBigDecimalControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryBigDecimalControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryBigDecimalControlAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cBigdecimalcontrolKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryBigDecimalControlCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryBigDecimalControlQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryBigDecimalControlCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_1_0 = (RuleCall)cBaseControlAssignment_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		
		//DictionaryBigDecimalControl:
		//	{DictionaryBigDecimalControl} "bigdecimalcontrol" name=ID? ("ref" ref=[DictionaryBigDecimalControl|QualifiedName])?
		//	("{" baseControl=BaseDictionaryControl "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryBigDecimalControl} "bigdecimalcontrol" name=ID? ("ref" ref=[DictionaryBigDecimalControl|QualifiedName])? ("{"
		//baseControl=BaseDictionaryControl "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryBigDecimalControl}
		public Action getDictionaryBigDecimalControlAction_0() { return cDictionaryBigDecimalControlAction_0; }

		//"bigdecimalcontrol"
		public Keyword getBigdecimalcontrolKeyword_1() { return cBigdecimalcontrolKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryBigDecimalControl|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryBigDecimalControl|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryBigDecimalControl|QualifiedName]
		public CrossReference getRefDictionaryBigDecimalControlCrossReference_3_1_0() { return cRefDictionaryBigDecimalControlCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryBigDecimalControlQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryBigDecimalControlQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" baseControl=BaseDictionaryControl "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_1() { return cBaseControlAssignment_4_1; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_1_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_2() { return cRightCurlyBracketKeyword_4_2; }
	}

	public class DictionaryBooleanControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryBooleanControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryBooleanControlAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cBooleancontrolKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryBooleanControlCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryBooleanControlQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryBooleanControlCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_1_0 = (RuleCall)cBaseControlAssignment_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		
		//DictionaryBooleanControl:
		//	{DictionaryBooleanControl} "booleancontrol" name=ID? ("ref" ref=[DictionaryBooleanControl|QualifiedName])? ("{"
		//	baseControl=BaseDictionaryControl "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryBooleanControl} "booleancontrol" name=ID? ("ref" ref=[DictionaryBooleanControl|QualifiedName])? ("{"
		//baseControl=BaseDictionaryControl "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryBooleanControl}
		public Action getDictionaryBooleanControlAction_0() { return cDictionaryBooleanControlAction_0; }

		//"booleancontrol"
		public Keyword getBooleancontrolKeyword_1() { return cBooleancontrolKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryBooleanControl|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryBooleanControl|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryBooleanControl|QualifiedName]
		public CrossReference getRefDictionaryBooleanControlCrossReference_3_1_0() { return cRefDictionaryBooleanControlCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryBooleanControlQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryBooleanControlQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" baseControl=BaseDictionaryControl "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_1() { return cBaseControlAssignment_4_1; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_1_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_2() { return cRightCurlyBracketKeyword_4_2; }
	}

	public class DictionaryDateControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryDateControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryDateControlAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cDatecontrolKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryDateControlCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryDateControlQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryDateControlCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_1_0 = (RuleCall)cBaseControlAssignment_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		
		//DictionaryDateControl:
		//	{DictionaryDateControl} "datecontrol" name=ID? ("ref" ref=[DictionaryDateControl|QualifiedName])? ("{"
		//	baseControl=BaseDictionaryControl "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryDateControl} "datecontrol" name=ID? ("ref" ref=[DictionaryDateControl|QualifiedName])? ("{"
		//baseControl=BaseDictionaryControl "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryDateControl}
		public Action getDictionaryDateControlAction_0() { return cDictionaryDateControlAction_0; }

		//"datecontrol"
		public Keyword getDatecontrolKeyword_1() { return cDatecontrolKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryDateControl|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryDateControl|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryDateControl|QualifiedName]
		public CrossReference getRefDictionaryDateControlCrossReference_3_1_0() { return cRefDictionaryDateControlCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryDateControlQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryDateControlQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" baseControl=BaseDictionaryControl "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_1() { return cBaseControlAssignment_4_1; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_1_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_2() { return cRightCurlyBracketKeyword_4_2; }
	}

	public class DictionaryEnumerationControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryEnumerationControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryEnumerationControlAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cEnumerationcontrolKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryEnumerationControlCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryEnumerationControlQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryEnumerationControlCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_1_0 = (RuleCall)cBaseControlAssignment_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		
		//DictionaryEnumerationControl:
		//	{DictionaryEnumerationControl} "enumerationcontrol" name=ID? ("ref" ref=[DictionaryEnumerationControl|QualifiedName])?
		//	("{" baseControl=BaseDictionaryControl "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryEnumerationControl} "enumerationcontrol" name=ID? ("ref" ref=[DictionaryEnumerationControl|QualifiedName])?
		//("{" baseControl=BaseDictionaryControl "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryEnumerationControl}
		public Action getDictionaryEnumerationControlAction_0() { return cDictionaryEnumerationControlAction_0; }

		//"enumerationcontrol"
		public Keyword getEnumerationcontrolKeyword_1() { return cEnumerationcontrolKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryEnumerationControl|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryEnumerationControl|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryEnumerationControl|QualifiedName]
		public CrossReference getRefDictionaryEnumerationControlCrossReference_3_1_0() { return cRefDictionaryEnumerationControlCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryEnumerationControlQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryEnumerationControlQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" baseControl=BaseDictionaryControl "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_1() { return cBaseControlAssignment_4_1; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_1_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_2() { return cRightCurlyBracketKeyword_4_2; }
	}

	public class DictionaryReferenceControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryReferenceControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryReferenceControlAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cReferencecontrolKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryReferenceControlCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryReferenceControlQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryReferenceControlCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_1_0 = (RuleCall)cBaseControlAssignment_4_1.eContents().get(0);
		private final Group cGroup_4_2 = (Group)cGroup_4.eContents().get(2);
		private final Keyword cDictionaryKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
		private final Assignment cDictionaryAssignment_4_2_1 = (Assignment)cGroup_4_2.eContents().get(1);
		private final CrossReference cDictionaryDictionaryCrossReference_4_2_1_0 = (CrossReference)cDictionaryAssignment_4_2_1.eContents().get(0);
		private final RuleCall cDictionaryDictionaryQualifiedNameParserRuleCall_4_2_1_0_1 = (RuleCall)cDictionaryDictionaryCrossReference_4_2_1_0.eContents().get(1);
		private final Group cGroup_4_3 = (Group)cGroup_4.eContents().get(3);
		private final Keyword cControlTypeKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0);
		private final Assignment cControlTypeAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1);
		private final RuleCall cControlTypeReferenceControlTypeEnumRuleCall_4_3_1_0 = (RuleCall)cControlTypeAssignment_4_3_1.eContents().get(0);
		private final Group cGroup_4_4 = (Group)cGroup_4.eContents().get(4);
		private final Keyword cLabelcontrolsKeyword_4_4_0 = (Keyword)cGroup_4_4.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_4_4_1 = (Keyword)cGroup_4_4.eContents().get(1);
		private final Assignment cLabelcontrolsAssignment_4_4_2 = (Assignment)cGroup_4_4.eContents().get(2);
		private final RuleCall cLabelcontrolsDictionaryControlParserRuleCall_4_4_2_0 = (RuleCall)cLabelcontrolsAssignment_4_4_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_4_3 = (Keyword)cGroup_4_4.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4_5 = (Keyword)cGroup_4.eContents().get(5);
		
		//DictionaryReferenceControl:
		//	{DictionaryReferenceControl} "referencecontrol" name=ID? ("ref" ref=[DictionaryReferenceControl|QualifiedName])? ("{"
		//	baseControl=BaseDictionaryControl ("dictionary" dictionary=[Dictionary|QualifiedName])? ("controlType"
		//	controlType=ReferenceControlType)? ("labelcontrols" "{" labelcontrols+=DictionaryControl* "}")? "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryReferenceControl} "referencecontrol" name=ID? ("ref" ref=[DictionaryReferenceControl|QualifiedName])? ("{"
		//baseControl=BaseDictionaryControl ("dictionary" dictionary=[Dictionary|QualifiedName])? ("controlType"
		//controlType=ReferenceControlType)? ("labelcontrols" "{" labelcontrols+=DictionaryControl* "}")? "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryReferenceControl}
		public Action getDictionaryReferenceControlAction_0() { return cDictionaryReferenceControlAction_0; }

		//"referencecontrol"
		public Keyword getReferencecontrolKeyword_1() { return cReferencecontrolKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryReferenceControl|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryReferenceControl|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryReferenceControl|QualifiedName]
		public CrossReference getRefDictionaryReferenceControlCrossReference_3_1_0() { return cRefDictionaryReferenceControlCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryReferenceControlQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryReferenceControlQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" baseControl=BaseDictionaryControl ("dictionary" dictionary=[Dictionary|QualifiedName])? ("controlType"
		//controlType=ReferenceControlType)? ("labelcontrols" "{" labelcontrols+=DictionaryControl* "}")? "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_1() { return cBaseControlAssignment_4_1; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_1_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_1_0; }

		//("dictionary" dictionary=[Dictionary|QualifiedName])?
		public Group getGroup_4_2() { return cGroup_4_2; }

		//"dictionary"
		public Keyword getDictionaryKeyword_4_2_0() { return cDictionaryKeyword_4_2_0; }

		//dictionary=[Dictionary|QualifiedName]
		public Assignment getDictionaryAssignment_4_2_1() { return cDictionaryAssignment_4_2_1; }

		//[Dictionary|QualifiedName]
		public CrossReference getDictionaryDictionaryCrossReference_4_2_1_0() { return cDictionaryDictionaryCrossReference_4_2_1_0; }

		//QualifiedName
		public RuleCall getDictionaryDictionaryQualifiedNameParserRuleCall_4_2_1_0_1() { return cDictionaryDictionaryQualifiedNameParserRuleCall_4_2_1_0_1; }

		//("controlType" controlType=ReferenceControlType)?
		public Group getGroup_4_3() { return cGroup_4_3; }

		//"controlType"
		public Keyword getControlTypeKeyword_4_3_0() { return cControlTypeKeyword_4_3_0; }

		//controlType=ReferenceControlType
		public Assignment getControlTypeAssignment_4_3_1() { return cControlTypeAssignment_4_3_1; }

		//ReferenceControlType
		public RuleCall getControlTypeReferenceControlTypeEnumRuleCall_4_3_1_0() { return cControlTypeReferenceControlTypeEnumRuleCall_4_3_1_0; }

		//("labelcontrols" "{" labelcontrols+=DictionaryControl* "}")?
		public Group getGroup_4_4() { return cGroup_4_4; }

		//"labelcontrols"
		public Keyword getLabelcontrolsKeyword_4_4_0() { return cLabelcontrolsKeyword_4_4_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_4_1() { return cLeftCurlyBracketKeyword_4_4_1; }

		//labelcontrols+=DictionaryControl*
		public Assignment getLabelcontrolsAssignment_4_4_2() { return cLabelcontrolsAssignment_4_4_2; }

		//DictionaryControl
		public RuleCall getLabelcontrolsDictionaryControlParserRuleCall_4_4_2_0() { return cLabelcontrolsDictionaryControlParserRuleCall_4_4_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_4_3() { return cRightCurlyBracketKeyword_4_4_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_5() { return cRightCurlyBracketKeyword_4_5; }
	}

	public class DictionaryFileControlElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DictionaryFileControl");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDictionaryFileControlAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cFilecontrolKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cRefKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cRefAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final CrossReference cRefDictionaryFileControlCrossReference_3_1_0 = (CrossReference)cRefAssignment_3_1.eContents().get(0);
		private final RuleCall cRefDictionaryFileControlQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cRefDictionaryFileControlCrossReference_3_1_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cBaseControlAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cBaseControlBaseDictionaryControlParserRuleCall_4_1_0 = (RuleCall)cBaseControlAssignment_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		
		//DictionaryFileControl:
		//	{DictionaryFileControl} "filecontrol" name=ID? ("ref" ref=[DictionaryFileControl|QualifiedName])? ("{"
		//	baseControl=BaseDictionaryControl "}")?;
		public ParserRule getRule() { return rule; }

		//{DictionaryFileControl} "filecontrol" name=ID? ("ref" ref=[DictionaryFileControl|QualifiedName])? ("{"
		//baseControl=BaseDictionaryControl "}")?
		public Group getGroup() { return cGroup; }

		//{DictionaryFileControl}
		public Action getDictionaryFileControlAction_0() { return cDictionaryFileControlAction_0; }

		//"filecontrol"
		public Keyword getFilecontrolKeyword_1() { return cFilecontrolKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//("ref" ref=[DictionaryFileControl|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"ref"
		public Keyword getRefKeyword_3_0() { return cRefKeyword_3_0; }

		//ref=[DictionaryFileControl|QualifiedName]
		public Assignment getRefAssignment_3_1() { return cRefAssignment_3_1; }

		//[DictionaryFileControl|QualifiedName]
		public CrossReference getRefDictionaryFileControlCrossReference_3_1_0() { return cRefDictionaryFileControlCrossReference_3_1_0; }

		//QualifiedName
		public RuleCall getRefDictionaryFileControlQualifiedNameParserRuleCall_3_1_0_1() { return cRefDictionaryFileControlQualifiedNameParserRuleCall_3_1_0_1; }

		//("{" baseControl=BaseDictionaryControl "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_0() { return cLeftCurlyBracketKeyword_4_0; }

		//baseControl=BaseDictionaryControl
		public Assignment getBaseControlAssignment_4_1() { return cBaseControlAssignment_4_1; }

		//BaseDictionaryControl
		public RuleCall getBaseControlBaseDictionaryControlParserRuleCall_4_1_0() { return cBaseControlBaseDictionaryControlParserRuleCall_4_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_2() { return cRightCurlyBracketKeyword_4_2; }
	}

	public class ModuleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Module");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cModuleKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cModuledefinitionKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cModuledefinitionAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final CrossReference cModuledefinitionModuleDefinitionCrossReference_4_0 = (CrossReference)cModuledefinitionAssignment_4.eContents().get(0);
		private final RuleCall cModuledefinitionModuleDefinitionQualifiedNameParserRuleCall_4_0_1 = (RuleCall)cModuledefinitionModuleDefinitionCrossReference_4_0.eContents().get(1);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cParametersKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
		private final Assignment cModuleParametersAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2);
		private final RuleCall cModuleParametersModuleParameterParserRuleCall_5_2_0 = (RuleCall)cModuleParametersAssignment_5_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5_3 = (Keyword)cGroup_5.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		////- module --------------------------------------------------------------------
		//Module:
		//	"module" name=ID "{" "moduledefinition" moduledefinition=[ModuleDefinition|QualifiedName] ("parameters" "{"
		//	moduleParameters+=ModuleParameter* "}")? "}";
		public ParserRule getRule() { return rule; }

		//"module" name=ID "{" "moduledefinition" moduledefinition=[ModuleDefinition|QualifiedName] ("parameters" "{"
		//moduleParameters+=ModuleParameter* "}")? "}"
		public Group getGroup() { return cGroup; }

		//"module"
		public Keyword getModuleKeyword_0() { return cModuleKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//"moduledefinition"
		public Keyword getModuledefinitionKeyword_3() { return cModuledefinitionKeyword_3; }

		//moduledefinition=[ModuleDefinition|QualifiedName]
		public Assignment getModuledefinitionAssignment_4() { return cModuledefinitionAssignment_4; }

		//[ModuleDefinition|QualifiedName]
		public CrossReference getModuledefinitionModuleDefinitionCrossReference_4_0() { return cModuledefinitionModuleDefinitionCrossReference_4_0; }

		//QualifiedName
		public RuleCall getModuledefinitionModuleDefinitionQualifiedNameParserRuleCall_4_0_1() { return cModuledefinitionModuleDefinitionQualifiedNameParserRuleCall_4_0_1; }

		//("parameters" "{" moduleParameters+=ModuleParameter* "}")?
		public Group getGroup_5() { return cGroup_5; }

		//"parameters"
		public Keyword getParametersKeyword_5_0() { return cParametersKeyword_5_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_5_1() { return cLeftCurlyBracketKeyword_5_1; }

		//moduleParameters+=ModuleParameter*
		public Assignment getModuleParametersAssignment_5_2() { return cModuleParametersAssignment_5_2; }

		//ModuleParameter
		public RuleCall getModuleParametersModuleParameterParserRuleCall_5_2_0() { return cModuleParametersModuleParameterParserRuleCall_5_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5_3() { return cRightCurlyBracketKeyword_5_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class ModuleParameterElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModuleParameter");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cModuleDefinitionParameterAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final CrossReference cModuleDefinitionParameterModuleDefinitionParameterCrossReference_0_0 = (CrossReference)cModuleDefinitionParameterAssignment_0.eContents().get(0);
		private final RuleCall cModuleDefinitionParameterModuleDefinitionParameterQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cModuleDefinitionParameterModuleDefinitionParameterCrossReference_0_0.eContents().get(1);
		private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cValueSTRINGTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
		
		//ModuleParameter:
		//	moduleDefinitionParameter=[ModuleDefinitionParameter|QualifiedName] "=" value=STRING;
		public ParserRule getRule() { return rule; }

		//moduleDefinitionParameter=[ModuleDefinitionParameter|QualifiedName] "=" value=STRING
		public Group getGroup() { return cGroup; }

		//moduleDefinitionParameter=[ModuleDefinitionParameter|QualifiedName]
		public Assignment getModuleDefinitionParameterAssignment_0() { return cModuleDefinitionParameterAssignment_0; }

		//[ModuleDefinitionParameter|QualifiedName]
		public CrossReference getModuleDefinitionParameterModuleDefinitionParameterCrossReference_0_0() { return cModuleDefinitionParameterModuleDefinitionParameterCrossReference_0_0; }

		//QualifiedName
		public RuleCall getModuleDefinitionParameterModuleDefinitionParameterQualifiedNameParserRuleCall_0_0_1() { return cModuleDefinitionParameterModuleDefinitionParameterQualifiedNameParserRuleCall_0_0_1; }

		//"="
		public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; }

		//value=STRING
		public Assignment getValueAssignment_2() { return cValueAssignment_2; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_2_0() { return cValueSTRINGTerminalRuleCall_2_0; }
	}

	public class ModuleDefinitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModuleDefinition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cModuledefinitionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cParametersKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Assignment cModuleDefinitionParametersAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
		private final RuleCall cModuleDefinitionParametersModuleDefinitionParameterParserRuleCall_3_2_0 = (RuleCall)cModuleDefinitionParametersAssignment_3_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//ModuleDefinition:
		//	"moduledefinition" name=ID "{" ("parameters" "{" moduleDefinitionParameters+=ModuleDefinitionParameter* "}")? "}";
		public ParserRule getRule() { return rule; }

		//"moduledefinition" name=ID "{" ("parameters" "{" moduleDefinitionParameters+=ModuleDefinitionParameter* "}")? "}"
		public Group getGroup() { return cGroup; }

		//"moduledefinition"
		public Keyword getModuledefinitionKeyword_0() { return cModuledefinitionKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//("parameters" "{" moduleDefinitionParameters+=ModuleDefinitionParameter* "}")?
		public Group getGroup_3() { return cGroup_3; }

		//"parameters"
		public Keyword getParametersKeyword_3_0() { return cParametersKeyword_3_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; }

		//moduleDefinitionParameters+=ModuleDefinitionParameter*
		public Assignment getModuleDefinitionParametersAssignment_3_2() { return cModuleDefinitionParametersAssignment_3_2; }

		//ModuleDefinitionParameter
		public RuleCall getModuleDefinitionParametersModuleDefinitionParameterParserRuleCall_3_2_0() { return cModuleDefinitionParametersModuleDefinitionParameterParserRuleCall_3_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class ModuleDefinitionParameterElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ModuleDefinitionParameter");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cParameterKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cTypeKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cTypeAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cTypeSimpleTypesEnumRuleCall_4_0 = (RuleCall)cTypeAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//ModuleDefinitionParameter:
		//	"parameter" name=ID "{" "type" type=SimpleTypes "}";
		public ParserRule getRule() { return rule; }

		//"parameter" name=ID "{" "type" type=SimpleTypes "}"
		public Group getGroup() { return cGroup; }

		//"parameter"
		public Keyword getParameterKeyword_0() { return cParameterKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//"type"
		public Keyword getTypeKeyword_3() { return cTypeKeyword_3; }

		//type=SimpleTypes
		public Assignment getTypeAssignment_4() { return cTypeAssignment_4; }

		//SimpleTypes
		public RuleCall getTypeSimpleTypesEnumRuleCall_4_0() { return cTypeSimpleTypesEnumRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class ServiceOptionsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ServiceOptions");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cServiceOptionsAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNonpublicAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Keyword cNonpublicNonpublicKeyword_1_0 = (Keyword)cNonpublicAssignment_1.eContents().get(0);
		
		////- methods -------------------------------------------------------------------
		//ServiceOptions:
		//	{ServiceOptions} nonpublic?="nonpublic"?;
		public ParserRule getRule() { return rule; }

		//{ServiceOptions} nonpublic?="nonpublic"?
		public Group getGroup() { return cGroup; }

		//{ServiceOptions}
		public Action getServiceOptionsAction_0() { return cServiceOptionsAction_0; }

		//nonpublic?="nonpublic"?
		public Assignment getNonpublicAssignment_1() { return cNonpublicAssignment_1; }

		//"nonpublic"
		public Keyword getNonpublicNonpublicKeyword_1_0() { return cNonpublicNonpublicKeyword_1_0; }
	}

	public class ServiceMethodElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ServiceMethod");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cMethodKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cLessThanSignKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cTypeParameterAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cTypeParameterJvmTypeParameterParserRuleCall_1_1_0 = (RuleCall)cTypeParameterAssignment_1_1.eContents().get(0);
		private final Keyword cGreaterThanSignKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
		private final Assignment cReturnTypeAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cReturnTypeJvmTypeReferenceParserRuleCall_2_0 = (RuleCall)cReturnTypeAssignment_2.eContents().get(0);
		private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Assignment cParamsAssignment_5_0 = (Assignment)cGroup_5.eContents().get(0);
		private final RuleCall cParamsFullJvmFormalParameterParserRuleCall_5_0_0 = (RuleCall)cParamsAssignment_5_0.eContents().get(0);
		private final Group cGroup_5_1 = (Group)cGroup_5.eContents().get(1);
		private final Keyword cCommaSpaceKeyword_5_1_0 = (Keyword)cGroup_5_1.eContents().get(0);
		private final Assignment cParamsAssignment_5_1_1 = (Assignment)cGroup_5_1.eContents().get(1);
		private final RuleCall cParamsFullJvmFormalParameterParserRuleCall_5_1_1_0 = (RuleCall)cParamsAssignment_5_1_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//ServiceMethod:
		//	"method" ("<" typeParameter=JvmTypeParameter ">")? returnType=JvmTypeReference name=ValidID "("
		//	(params+=FullJvmFormalParameter (", " params+=FullJvmFormalParameter)*)? ")";
		public ParserRule getRule() { return rule; }

		//"method" ("<" typeParameter=JvmTypeParameter ">")? returnType=JvmTypeReference name=ValidID "("
		//(params+=FullJvmFormalParameter (", " params+=FullJvmFormalParameter)*)? ")"
		public Group getGroup() { return cGroup; }

		//"method"
		public Keyword getMethodKeyword_0() { return cMethodKeyword_0; }

		//("<" typeParameter=JvmTypeParameter ">")?
		public Group getGroup_1() { return cGroup_1; }

		//"<"
		public Keyword getLessThanSignKeyword_1_0() { return cLessThanSignKeyword_1_0; }

		//typeParameter=JvmTypeParameter
		public Assignment getTypeParameterAssignment_1_1() { return cTypeParameterAssignment_1_1; }

		//JvmTypeParameter
		public RuleCall getTypeParameterJvmTypeParameterParserRuleCall_1_1_0() { return cTypeParameterJvmTypeParameterParserRuleCall_1_1_0; }

		//">"
		public Keyword getGreaterThanSignKeyword_1_2() { return cGreaterThanSignKeyword_1_2; }

		//returnType=JvmTypeReference
		public Assignment getReturnTypeAssignment_2() { return cReturnTypeAssignment_2; }

		//JvmTypeReference
		public RuleCall getReturnTypeJvmTypeReferenceParserRuleCall_2_0() { return cReturnTypeJvmTypeReferenceParserRuleCall_2_0; }

		//name=ValidID
		public Assignment getNameAssignment_3() { return cNameAssignment_3; }

		//ValidID
		public RuleCall getNameValidIDParserRuleCall_3_0() { return cNameValidIDParserRuleCall_3_0; }

		//"("
		public Keyword getLeftParenthesisKeyword_4() { return cLeftParenthesisKeyword_4; }

		//(params+=FullJvmFormalParameter (", " params+=FullJvmFormalParameter)*)?
		public Group getGroup_5() { return cGroup_5; }

		//params+=FullJvmFormalParameter
		public Assignment getParamsAssignment_5_0() { return cParamsAssignment_5_0; }

		//FullJvmFormalParameter
		public RuleCall getParamsFullJvmFormalParameterParserRuleCall_5_0_0() { return cParamsFullJvmFormalParameterParserRuleCall_5_0_0; }

		//(", " params+=FullJvmFormalParameter)*
		public Group getGroup_5_1() { return cGroup_5_1; }

		//", "
		public Keyword getCommaSpaceKeyword_5_1_0() { return cCommaSpaceKeyword_5_1_0; }

		//params+=FullJvmFormalParameter
		public Assignment getParamsAssignment_5_1_1() { return cParamsAssignment_5_1_1; }

		//FullJvmFormalParameter
		public RuleCall getParamsFullJvmFormalParameterParserRuleCall_5_1_1_0() { return cParamsFullJvmFormalParameterParserRuleCall_5_1_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_6() { return cRightParenthesisKeyword_6; }
	}

	public class ServiceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Service");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cServiceAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cServiceKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cOptions1Keyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Assignment cRemoteServiceOptionsAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final RuleCall cRemoteServiceOptionsServiceOptionsParserRuleCall_4_2_0 = (RuleCall)cRemoteServiceOptionsAssignment_4_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_3 = (Keyword)cGroup_4.eContents().get(3);
		private final Assignment cRemoteMethodsAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cRemoteMethodsServiceMethodParserRuleCall_5_0 = (RuleCall)cRemoteMethodsAssignment_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//Service:
		//	{Service} "service" name=ID "{" ("options1" "{" remoteServiceOptions=ServiceOptions "}")?
		//	remoteMethods+=ServiceMethod* "}";
		public ParserRule getRule() { return rule; }

		//{Service} "service" name=ID "{" ("options1" "{" remoteServiceOptions=ServiceOptions "}")? remoteMethods+=ServiceMethod*
		//"}"
		public Group getGroup() { return cGroup; }

		//{Service}
		public Action getServiceAction_0() { return cServiceAction_0; }

		//"service"
		public Keyword getServiceKeyword_1() { return cServiceKeyword_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//("options1" "{" remoteServiceOptions=ServiceOptions "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"options1"
		public Keyword getOptions1Keyword_4_0() { return cOptions1Keyword_4_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; }

		//remoteServiceOptions=ServiceOptions
		public Assignment getRemoteServiceOptionsAssignment_4_2() { return cRemoteServiceOptionsAssignment_4_2; }

		//ServiceOptions
		public RuleCall getRemoteServiceOptionsServiceOptionsParserRuleCall_4_2_0() { return cRemoteServiceOptionsServiceOptionsParserRuleCall_4_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_3() { return cRightCurlyBracketKeyword_4_3; }

		//remoteMethods+=ServiceMethod*
		public Assignment getRemoteMethodsAssignment_5() { return cRemoteMethodsAssignment_5; }

		//ServiceMethod
		public RuleCall getRemoteMethodsServiceMethodParserRuleCall_5_0() { return cRemoteMethodsServiceMethodParserRuleCall_5_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class NavigationNodeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NavigationNode");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cNavigationnodeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cLabelKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Assignment cLabelAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cLabelSTRINGTerminalRuleCall_3_1_0 = (RuleCall)cLabelAssignment_3_1.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cModuleDefinitionKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cModuleDefinitionAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final CrossReference cModuleDefinitionModuleDefinitionCrossReference_4_1_0 = (CrossReference)cModuleDefinitionAssignment_4_1.eContents().get(0);
		private final RuleCall cModuleDefinitionModuleDefinitionQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cModuleDefinitionModuleDefinitionCrossReference_4_1_0.eContents().get(1);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cModuleKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Assignment cModuleAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
		private final CrossReference cModuleModuleCrossReference_5_1_0 = (CrossReference)cModuleAssignment_5_1.eContents().get(0);
		private final RuleCall cModuleModuleQualifiedNameParserRuleCall_5_1_0_1 = (RuleCall)cModuleModuleCrossReference_5_1_0.eContents().get(1);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cDictionaryEditorKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cDictionaryEditorAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final CrossReference cDictionaryEditorDictionaryEditorCrossReference_6_1_0 = (CrossReference)cDictionaryEditorAssignment_6_1.eContents().get(0);
		private final RuleCall cDictionaryEditorDictionaryEditorQualifiedNameParserRuleCall_6_1_0_1 = (RuleCall)cDictionaryEditorDictionaryEditorCrossReference_6_1_0.eContents().get(1);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cDictionarySearchKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Assignment cDictionarySearchAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final CrossReference cDictionarySearchDictionarySearchCrossReference_7_1_0 = (CrossReference)cDictionarySearchAssignment_7_1.eContents().get(0);
		private final RuleCall cDictionarySearchDictionarySearchQualifiedNameParserRuleCall_7_1_0_1 = (RuleCall)cDictionarySearchDictionarySearchCrossReference_7_1_0.eContents().get(1);
		private final Assignment cNavigationNodesAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cNavigationNodesNavigationNodeParserRuleCall_8_0 = (RuleCall)cNavigationNodesAssignment_8.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
		
		//NavigationNode:
		//	"navigationnode" name=ID "{" ("label" label=STRING)? ("moduleDefinition"
		//	moduleDefinition=[ModuleDefinition|QualifiedName])? ("module" module=[Module|QualifiedName])? ("dictionaryEditor"
		//	dictionaryEditor=[DictionaryEditor|QualifiedName])? ("dictionarySearch"
		//	dictionarySearch=[DictionarySearch|QualifiedName])? navigationNodes+=NavigationNode* "}";
		public ParserRule getRule() { return rule; }

		//"navigationnode" name=ID "{" ("label" label=STRING)? ("moduleDefinition"
		//moduleDefinition=[ModuleDefinition|QualifiedName])? ("module" module=[Module|QualifiedName])? ("dictionaryEditor"
		//dictionaryEditor=[DictionaryEditor|QualifiedName])? ("dictionarySearch"
		//dictionarySearch=[DictionarySearch|QualifiedName])? navigationNodes+=NavigationNode* "}"
		public Group getGroup() { return cGroup; }

		//"navigationnode"
		public Keyword getNavigationnodeKeyword_0() { return cNavigationnodeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//("label" label=STRING)?
		public Group getGroup_3() { return cGroup_3; }

		//"label"
		public Keyword getLabelKeyword_3_0() { return cLabelKeyword_3_0; }

		//label=STRING
		public Assignment getLabelAssignment_3_1() { return cLabelAssignment_3_1; }

		//STRING
		public RuleCall getLabelSTRINGTerminalRuleCall_3_1_0() { return cLabelSTRINGTerminalRuleCall_3_1_0; }

		//("moduleDefinition" moduleDefinition=[ModuleDefinition|QualifiedName])?
		public Group getGroup_4() { return cGroup_4; }

		//"moduleDefinition"
		public Keyword getModuleDefinitionKeyword_4_0() { return cModuleDefinitionKeyword_4_0; }

		//moduleDefinition=[ModuleDefinition|QualifiedName]
		public Assignment getModuleDefinitionAssignment_4_1() { return cModuleDefinitionAssignment_4_1; }

		//[ModuleDefinition|QualifiedName]
		public CrossReference getModuleDefinitionModuleDefinitionCrossReference_4_1_0() { return cModuleDefinitionModuleDefinitionCrossReference_4_1_0; }

		//QualifiedName
		public RuleCall getModuleDefinitionModuleDefinitionQualifiedNameParserRuleCall_4_1_0_1() { return cModuleDefinitionModuleDefinitionQualifiedNameParserRuleCall_4_1_0_1; }

		//("module" module=[Module|QualifiedName])?
		public Group getGroup_5() { return cGroup_5; }

		//"module"
		public Keyword getModuleKeyword_5_0() { return cModuleKeyword_5_0; }

		//module=[Module|QualifiedName]
		public Assignment getModuleAssignment_5_1() { return cModuleAssignment_5_1; }

		//[Module|QualifiedName]
		public CrossReference getModuleModuleCrossReference_5_1_0() { return cModuleModuleCrossReference_5_1_0; }

		//QualifiedName
		public RuleCall getModuleModuleQualifiedNameParserRuleCall_5_1_0_1() { return cModuleModuleQualifiedNameParserRuleCall_5_1_0_1; }

		//("dictionaryEditor" dictionaryEditor=[DictionaryEditor|QualifiedName])?
		public Group getGroup_6() { return cGroup_6; }

		//"dictionaryEditor"
		public Keyword getDictionaryEditorKeyword_6_0() { return cDictionaryEditorKeyword_6_0; }

		//dictionaryEditor=[DictionaryEditor|QualifiedName]
		public Assignment getDictionaryEditorAssignment_6_1() { return cDictionaryEditorAssignment_6_1; }

		//[DictionaryEditor|QualifiedName]
		public CrossReference getDictionaryEditorDictionaryEditorCrossReference_6_1_0() { return cDictionaryEditorDictionaryEditorCrossReference_6_1_0; }

		//QualifiedName
		public RuleCall getDictionaryEditorDictionaryEditorQualifiedNameParserRuleCall_6_1_0_1() { return cDictionaryEditorDictionaryEditorQualifiedNameParserRuleCall_6_1_0_1; }

		//("dictionarySearch" dictionarySearch=[DictionarySearch|QualifiedName])?
		public Group getGroup_7() { return cGroup_7; }

		//"dictionarySearch"
		public Keyword getDictionarySearchKeyword_7_0() { return cDictionarySearchKeyword_7_0; }

		//dictionarySearch=[DictionarySearch|QualifiedName]
		public Assignment getDictionarySearchAssignment_7_1() { return cDictionarySearchAssignment_7_1; }

		//[DictionarySearch|QualifiedName]
		public CrossReference getDictionarySearchDictionarySearchCrossReference_7_1_0() { return cDictionarySearchDictionarySearchCrossReference_7_1_0; }

		//QualifiedName
		public RuleCall getDictionarySearchDictionarySearchQualifiedNameParserRuleCall_7_1_0_1() { return cDictionarySearchDictionarySearchQualifiedNameParserRuleCall_7_1_0_1; }

		//navigationNodes+=NavigationNode*
		public Assignment getNavigationNodesAssignment_8() { return cNavigationNodesAssignment_8; }

		//NavigationNode
		public RuleCall getNavigationNodesNavigationNodeParserRuleCall_8_0() { return cNavigationNodesNavigationNodeParserRuleCall_8_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
	}
	
	
	public class IdGeneratorStrategyElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "IdGeneratorStrategy");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cTABLEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cTABLETABLEKeyword_0_0 = (Keyword)cTABLEEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cSEQUENCEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cSEQUENCESEQUENCEKeyword_1_0 = (Keyword)cSEQUENCEEnumLiteralDeclaration_1.eContents().get(0);
		
		////-----------------------------------------------------------------------------
		//// entity
		////-----------------------------------------------------------------------------
		//enum IdGeneratorStrategy:
		//	TABLE | SEQUENCE;
		public EnumRule getRule() { return rule; }

		//TABLE | SEQUENCE
		public Alternatives getAlternatives() { return cAlternatives; }

		//TABLE
		public EnumLiteralDeclaration getTABLEEnumLiteralDeclaration_0() { return cTABLEEnumLiteralDeclaration_0; }

		//"TABLE"
		public Keyword getTABLETABLEKeyword_0_0() { return cTABLETABLEKeyword_0_0; }

		//SEQUENCE
		public EnumLiteralDeclaration getSEQUENCEEnumLiteralDeclaration_1() { return cSEQUENCEEnumLiteralDeclaration_1; }

		//"SEQUENCE"
		public Keyword getSEQUENCESEQUENCEKeyword_1_0() { return cSEQUENCESEQUENCEKeyword_1_0; }
	}

	public class CardinalityElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "Cardinality");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cOnetooneEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cOnetoone01Keyword_0_0 = (Keyword)cOnetooneEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cOnetomanyEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cOnetomany0NKeyword_1_0 = (Keyword)cOnetomanyEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cManytomanyEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cManytomanyNNKeyword_2_0 = (Keyword)cManytomanyEnumLiteralDeclaration_2.eContents().get(0);
		
		//enum Cardinality:
		//	onetoone="0..1" | onetomany="0..n" | manytomany="n..n";
		public EnumRule getRule() { return rule; }

		//onetoone="0..1" | onetomany="0..n" | manytomany="n..n"
		public Alternatives getAlternatives() { return cAlternatives; }

		//onetoone="0..1"
		public EnumLiteralDeclaration getOnetooneEnumLiteralDeclaration_0() { return cOnetooneEnumLiteralDeclaration_0; }

		//"0..1"
		public Keyword getOnetoone01Keyword_0_0() { return cOnetoone01Keyword_0_0; }

		//onetomany="0..n"
		public EnumLiteralDeclaration getOnetomanyEnumLiteralDeclaration_1() { return cOnetomanyEnumLiteralDeclaration_1; }

		//"0..n"
		public Keyword getOnetomany0NKeyword_1_0() { return cOnetomany0NKeyword_1_0; }

		//manytomany="n..n"
		public EnumLiteralDeclaration getManytomanyEnumLiteralDeclaration_2() { return cManytomanyEnumLiteralDeclaration_2; }

		//"n..n"
		public Keyword getManytomanyNNKeyword_2_0() { return cManytomanyNNKeyword_2_0; }
	}

	public class SimpleTypesElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "SimpleTypes");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cLongEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cLongLongKeyword_0_0 = (Keyword)cLongEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cIntegerEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cIntegerIntegerKeyword_1_0 = (Keyword)cIntegerEnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cBigdecimalEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cBigdecimalBigdecimalKeyword_2_0 = (Keyword)cBigdecimalEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cStringEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cStringStringKeyword_3_0 = (Keyword)cStringEnumLiteralDeclaration_3.eContents().get(0);
		private final EnumLiteralDeclaration cBooleanEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
		private final Keyword cBooleanBooleanKeyword_4_0 = (Keyword)cBooleanEnumLiteralDeclaration_4.eContents().get(0);
		private final EnumLiteralDeclaration cReferenceEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
		private final Keyword cReferenceReferenceKeyword_5_0 = (Keyword)cReferenceEnumLiteralDeclaration_5.eContents().get(0);
		
		//enum SimpleTypes:
		//	long | integer | bigdecimal | string | boolean | reference;
		public EnumRule getRule() { return rule; }

		//long | integer | bigdecimal | string | boolean | reference
		public Alternatives getAlternatives() { return cAlternatives; }

		//long
		public EnumLiteralDeclaration getLongEnumLiteralDeclaration_0() { return cLongEnumLiteralDeclaration_0; }

		//"long"
		public Keyword getLongLongKeyword_0_0() { return cLongLongKeyword_0_0; }

		//integer
		public EnumLiteralDeclaration getIntegerEnumLiteralDeclaration_1() { return cIntegerEnumLiteralDeclaration_1; }

		//"integer"
		public Keyword getIntegerIntegerKeyword_1_0() { return cIntegerIntegerKeyword_1_0; }

		//bigdecimal
		public EnumLiteralDeclaration getBigdecimalEnumLiteralDeclaration_2() { return cBigdecimalEnumLiteralDeclaration_2; }

		//"bigdecimal"
		public Keyword getBigdecimalBigdecimalKeyword_2_0() { return cBigdecimalBigdecimalKeyword_2_0; }

		//string
		public EnumLiteralDeclaration getStringEnumLiteralDeclaration_3() { return cStringEnumLiteralDeclaration_3; }

		//"string"
		public Keyword getStringStringKeyword_3_0() { return cStringStringKeyword_3_0; }

		//boolean
		public EnumLiteralDeclaration getBooleanEnumLiteralDeclaration_4() { return cBooleanEnumLiteralDeclaration_4; }

		//"boolean"
		public Keyword getBooleanBooleanKeyword_4_0() { return cBooleanBooleanKeyword_4_0; }

		//reference
		public EnumLiteralDeclaration getReferenceEnumLiteralDeclaration_5() { return cReferenceEnumLiteralDeclaration_5; }

		//"reference"
		public Keyword getReferenceReferenceKeyword_5_0() { return cReferenceReferenceKeyword_5_0; }
	}

	public class IntegerControlInputTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "IntegerControlInputType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cTextEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cTextTextboxKeyword_0_0 = (Keyword)cTextEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cRatingEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cRatingRatingKeyword_1_0 = (Keyword)cRatingEnumLiteralDeclaration_1.eContents().get(0);
		
		//enum IntegerControlInputType:
		//	text="textbox" | rating;
		public EnumRule getRule() { return rule; }

		//text="textbox" | rating
		public Alternatives getAlternatives() { return cAlternatives; }

		//text="textbox"
		public EnumLiteralDeclaration getTextEnumLiteralDeclaration_0() { return cTextEnumLiteralDeclaration_0; }

		//"textbox"
		public Keyword getTextTextboxKeyword_0_0() { return cTextTextboxKeyword_0_0; }

		//rating
		public EnumLiteralDeclaration getRatingEnumLiteralDeclaration_1() { return cRatingEnumLiteralDeclaration_1; }

		//"rating"
		public Keyword getRatingRatingKeyword_1_0() { return cRatingRatingKeyword_1_0; }
	}

	public class ReferenceControlTypeElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "ReferenceControlType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cTextEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cTextTextKeyword_0_0 = (Keyword)cTextEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cDropdownEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cDropdownDropdownKeyword_1_0 = (Keyword)cDropdownEnumLiteralDeclaration_1.eContents().get(0);
		
		//enum ReferenceControlType:
		//	text | dropdown;
		public EnumRule getRule() { return rule; }

		//text | dropdown
		public Alternatives getAlternatives() { return cAlternatives; }

		//text
		public EnumLiteralDeclaration getTextEnumLiteralDeclaration_0() { return cTextEnumLiteralDeclaration_0; }

		//"text"
		public Keyword getTextTextKeyword_0_0() { return cTextTextKeyword_0_0; }

		//dropdown
		public EnumLiteralDeclaration getDropdownEnumLiteralDeclaration_1() { return cDropdownEnumLiteralDeclaration_1; }

		//"dropdown"
		public Keyword getDropdownDropdownKeyword_1_0() { return cDropdownDropdownKeyword_1_0; }
	}
	
	private final ModelRootElements pModelRoot;
	private final ModelElements pModel;
	private final PackageDeclarationElements pPackageDeclaration;
	private final AbstractElementElements pAbstractElement;
	private final EnumerationElements pEnumeration;
	private final EnumerationValueElements pEnumerationValue;
	private final IdGeneratorStrategyElements unknownRuleIdGeneratorStrategy;
	private final EntityOptionsElements pEntityOptions;
	private final EntityNaturalKeyFieldsElements pEntityNaturalKeyFields;
	private final EntityHierarchicalElements pEntityHierarchical;
	private final EntityDisableIdFieldElements pEntityDisableIdField;
	private final EntityLabelFieldElements pEntityLabelField;
	private final EntityPluralLabelFieldElements pEntityPluralLabelField;
	private final EntityIdGenerationStrategyElements pEntityIdGenerationStrategy;
	private final EntityOptionsContainerElements pEntityOptionsContainer;
	private final EntityElements pEntity;
	private final ValueObjectElements pValueObject;
	private final ValueObjectTypeElements pValueObjectType;
	private final DatatypeElements pDatatype;
	private final SimpleDataTypeElements pSimpleDataType;
	private final CardinalityElements unknownRuleCardinality;
	private final SimpleTypesElements unknownRuleSimpleTypes;
	private final EntityAttributeElements pEntityAttribute;
	private final SimpleDatatypeEntityAttributeElements pSimpleDatatypeEntityAttribute;
	private final SimpleTypeTypeElements pSimpleTypeType;
	private final BaseDataTypeElements pBaseDataType;
	private final BaseDataTypePropertiesElements pBaseDataTypeProperties;
	private final BaseDataTypeWidthElements pBaseDataTypeWidth;
	private final BaseDataTypeLabelElements pBaseDataTypeLabel;
	private final StringDataTypeElements pStringDataType;
	private final StringEntityAttributeElements pStringEntityAttribute;
	private final MapDataTypeElements pMapDataType;
	private final MapEntityAttributeElements pMapEntityAttribute;
	private final BooleanDataTypeElements pBooleanDataType;
	private final BooleanEntityAttributeElements pBooleanEntityAttribute;
	private final IntegerDataTypeElements pIntegerDataType;
	private final IntegerEntityAttributeElements pIntegerEntityAttribute;
	private final DateDataTypeElements pDateDataType;
	private final DateEntityAttributeElements pDateEntityAttribute;
	private final DecimalDataTypeElements pDecimalDataType;
	private final DecimalEntityAttributeElements pDecimalEntityAttribute;
	private final LongDataTypeElements pLongDataType;
	private final LongEntityAttributeElements pLongEntityAttribute;
	private final FloatDataTypeElements pFloatDataType;
	private final FloatEntityAttributeElements pFloatEntityAttribute;
	private final DoubleDataTypeElements pDoubleDataType;
	private final DoubleEntityAttributeElements pDoubleEntityAttribute;
	private final BinaryDataTypeElements pBinaryDataType;
	private final BinaryEntityAttributeElements pBinaryEntityAttribute;
	private final EntityDataTypeElements pEntityDataType;
	private final EntityAttributeTypeElements pEntityAttributeType;
	private final EntityEntityAttributeElements pEntityEntityAttribute;
	private final ValueObjectEntityAttributeElements pValueObjectEntityAttribute;
	private final EnumerationDataTypeElements pEnumerationDataType;
	private final EnumerationAttributeTypeElements pEnumerationAttributeType;
	private final EnumerationEntityAttributeElements pEnumerationEntityAttribute;
	private final DictionaryElements pDictionary;
	private final DictionarySearchElements pDictionarySearch;
	private final DictionaryEditorElements pDictionaryEditor;
	private final DictionaryFilterElements pDictionaryFilter;
	private final DictionaryResultElements pDictionaryResult;
	private final ColumnLayoutElements pColumnLayout;
	private final ColumnLayoutDataElements pColumnLayoutData;
	private final DictionaryContainerElements pDictionaryContainer;
	private final DictionaryCompositeElements pDictionaryComposite;
	private final DictionaryEditableTableElements pDictionaryEditableTable;
	private final DictionaryAssignmentTableElements pDictionaryAssignmentTable;
	private final DictionaryContainerContentElements pDictionaryContainerContent;
	private final LabelsElements pLabels;
	private final BaseDictionaryControlElements pBaseDictionaryControl;
	private final DictionaryControlElements pDictionaryControl;
	private final DictionaryControlGroupOptionsElements pDictionaryControlGroupOptions;
	private final DictionaryControlGroupOptionMultiFilterFieldElements pDictionaryControlGroupOptionMultiFilterField;
	private final DictionaryControlGroupOptionsContainerElements pDictionaryControlGroupOptionsContainer;
	private final DictionaryControlGroupElements pDictionaryControlGroup;
	private final DictionaryHierarchicalControlElements pDictionaryHierarchicalControl;
	private final DictionaryTextControlElements pDictionaryTextControl;
	private final IntegerControlInputTypeElements unknownRuleIntegerControlInputType;
	private final DictionaryIntegerControlInputTypeElements pDictionaryIntegerControlInputType;
	private final DictionaryIntegerControlOptionsElements pDictionaryIntegerControlOptions;
	private final DictionaryIntegerControlElements pDictionaryIntegerControl;
	private final DictionaryBigDecimalControlElements pDictionaryBigDecimalControl;
	private final DictionaryBooleanControlElements pDictionaryBooleanControl;
	private final DictionaryDateControlElements pDictionaryDateControl;
	private final DictionaryEnumerationControlElements pDictionaryEnumerationControl;
	private final ReferenceControlTypeElements unknownRuleReferenceControlType;
	private final DictionaryReferenceControlElements pDictionaryReferenceControl;
	private final DictionaryFileControlElements pDictionaryFileControl;
	private final ModuleElements pModule;
	private final ModuleParameterElements pModuleParameter;
	private final ModuleDefinitionElements pModuleDefinition;
	private final ModuleDefinitionParameterElements pModuleDefinitionParameter;
	private final ServiceOptionsElements pServiceOptions;
	private final ServiceMethodElements pServiceMethod;
	private final ServiceElements pService;
	private final NavigationNodeElements pNavigationNode;
	
	private final Grammar grammar;

	private final XbaseGrammarAccess gaXbase;

	@Inject
	public MangoGrammarAccess(GrammarProvider grammarProvider,
		XbaseGrammarAccess gaXbase) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaXbase = gaXbase;
		this.pModelRoot = new ModelRootElements();
		this.pModel = new ModelElements();
		this.pPackageDeclaration = new PackageDeclarationElements();
		this.pAbstractElement = new AbstractElementElements();
		this.pEnumeration = new EnumerationElements();
		this.pEnumerationValue = new EnumerationValueElements();
		this.unknownRuleIdGeneratorStrategy = new IdGeneratorStrategyElements();
		this.pEntityOptions = new EntityOptionsElements();
		this.pEntityNaturalKeyFields = new EntityNaturalKeyFieldsElements();
		this.pEntityHierarchical = new EntityHierarchicalElements();
		this.pEntityDisableIdField = new EntityDisableIdFieldElements();
		this.pEntityLabelField = new EntityLabelFieldElements();
		this.pEntityPluralLabelField = new EntityPluralLabelFieldElements();
		this.pEntityIdGenerationStrategy = new EntityIdGenerationStrategyElements();
		this.pEntityOptionsContainer = new EntityOptionsContainerElements();
		this.pEntity = new EntityElements();
		this.pValueObject = new ValueObjectElements();
		this.pValueObjectType = new ValueObjectTypeElements();
		this.pDatatype = new DatatypeElements();
		this.pSimpleDataType = new SimpleDataTypeElements();
		this.unknownRuleCardinality = new CardinalityElements();
		this.unknownRuleSimpleTypes = new SimpleTypesElements();
		this.pEntityAttribute = new EntityAttributeElements();
		this.pSimpleDatatypeEntityAttribute = new SimpleDatatypeEntityAttributeElements();
		this.pSimpleTypeType = new SimpleTypeTypeElements();
		this.pBaseDataType = new BaseDataTypeElements();
		this.pBaseDataTypeProperties = new BaseDataTypePropertiesElements();
		this.pBaseDataTypeWidth = new BaseDataTypeWidthElements();
		this.pBaseDataTypeLabel = new BaseDataTypeLabelElements();
		this.pStringDataType = new StringDataTypeElements();
		this.pStringEntityAttribute = new StringEntityAttributeElements();
		this.pMapDataType = new MapDataTypeElements();
		this.pMapEntityAttribute = new MapEntityAttributeElements();
		this.pBooleanDataType = new BooleanDataTypeElements();
		this.pBooleanEntityAttribute = new BooleanEntityAttributeElements();
		this.pIntegerDataType = new IntegerDataTypeElements();
		this.pIntegerEntityAttribute = new IntegerEntityAttributeElements();
		this.pDateDataType = new DateDataTypeElements();
		this.pDateEntityAttribute = new DateEntityAttributeElements();
		this.pDecimalDataType = new DecimalDataTypeElements();
		this.pDecimalEntityAttribute = new DecimalEntityAttributeElements();
		this.pLongDataType = new LongDataTypeElements();
		this.pLongEntityAttribute = new LongEntityAttributeElements();
		this.pFloatDataType = new FloatDataTypeElements();
		this.pFloatEntityAttribute = new FloatEntityAttributeElements();
		this.pDoubleDataType = new DoubleDataTypeElements();
		this.pDoubleEntityAttribute = new DoubleEntityAttributeElements();
		this.pBinaryDataType = new BinaryDataTypeElements();
		this.pBinaryEntityAttribute = new BinaryEntityAttributeElements();
		this.pEntityDataType = new EntityDataTypeElements();
		this.pEntityAttributeType = new EntityAttributeTypeElements();
		this.pEntityEntityAttribute = new EntityEntityAttributeElements();
		this.pValueObjectEntityAttribute = new ValueObjectEntityAttributeElements();
		this.pEnumerationDataType = new EnumerationDataTypeElements();
		this.pEnumerationAttributeType = new EnumerationAttributeTypeElements();
		this.pEnumerationEntityAttribute = new EnumerationEntityAttributeElements();
		this.pDictionary = new DictionaryElements();
		this.pDictionarySearch = new DictionarySearchElements();
		this.pDictionaryEditor = new DictionaryEditorElements();
		this.pDictionaryFilter = new DictionaryFilterElements();
		this.pDictionaryResult = new DictionaryResultElements();
		this.pColumnLayout = new ColumnLayoutElements();
		this.pColumnLayoutData = new ColumnLayoutDataElements();
		this.pDictionaryContainer = new DictionaryContainerElements();
		this.pDictionaryComposite = new DictionaryCompositeElements();
		this.pDictionaryEditableTable = new DictionaryEditableTableElements();
		this.pDictionaryAssignmentTable = new DictionaryAssignmentTableElements();
		this.pDictionaryContainerContent = new DictionaryContainerContentElements();
		this.pLabels = new LabelsElements();
		this.pBaseDictionaryControl = new BaseDictionaryControlElements();
		this.pDictionaryControl = new DictionaryControlElements();
		this.pDictionaryControlGroupOptions = new DictionaryControlGroupOptionsElements();
		this.pDictionaryControlGroupOptionMultiFilterField = new DictionaryControlGroupOptionMultiFilterFieldElements();
		this.pDictionaryControlGroupOptionsContainer = new DictionaryControlGroupOptionsContainerElements();
		this.pDictionaryControlGroup = new DictionaryControlGroupElements();
		this.pDictionaryHierarchicalControl = new DictionaryHierarchicalControlElements();
		this.pDictionaryTextControl = new DictionaryTextControlElements();
		this.unknownRuleIntegerControlInputType = new IntegerControlInputTypeElements();
		this.pDictionaryIntegerControlInputType = new DictionaryIntegerControlInputTypeElements();
		this.pDictionaryIntegerControlOptions = new DictionaryIntegerControlOptionsElements();
		this.pDictionaryIntegerControl = new DictionaryIntegerControlElements();
		this.pDictionaryBigDecimalControl = new DictionaryBigDecimalControlElements();
		this.pDictionaryBooleanControl = new DictionaryBooleanControlElements();
		this.pDictionaryDateControl = new DictionaryDateControlElements();
		this.pDictionaryEnumerationControl = new DictionaryEnumerationControlElements();
		this.unknownRuleReferenceControlType = new ReferenceControlTypeElements();
		this.pDictionaryReferenceControl = new DictionaryReferenceControlElements();
		this.pDictionaryFileControl = new DictionaryFileControlElements();
		this.pModule = new ModuleElements();
		this.pModuleParameter = new ModuleParameterElements();
		this.pModuleDefinition = new ModuleDefinitionElements();
		this.pModuleDefinitionParameter = new ModuleDefinitionParameterElements();
		this.pServiceOptions = new ServiceOptionsElements();
		this.pServiceMethod = new ServiceMethodElements();
		this.pService = new ServiceElements();
		this.pNavigationNode = new NavigationNodeElements();
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("io.pelle.mango.dsl.Mango".equals(grammar.getName())) {
				return grammar;
			}
			List grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	
	public Grammar getGrammar() {
		return grammar;
	}
	

	public XbaseGrammarAccess getXbaseGrammarAccess() {
		return gaXbase;
	}

	
	//ModelRoot:
	//	importSection=XImportSection? modelRoot=Model | PackageDeclaration;
	public ModelRootElements getModelRootAccess() {
		return pModelRoot;
	}
	
	public ParserRule getModelRootRule() {
		return getModelRootAccess().getRule();
	}

	//Model:
	//	"project" modelName=ValidID "{" elements+=PackageDeclaration* "}";
	public ModelElements getModelAccess() {
		return pModel;
	}
	
	public ParserRule getModelRule() {
		return getModelAccess().getRule();
	}

	//PackageDeclaration:
	//	"package" packageName=QualifiedName "{" elements+=AbstractElement* "}";
	public PackageDeclarationElements getPackageDeclarationAccess() {
		return pPackageDeclaration;
	}
	
	public ParserRule getPackageDeclarationRule() {
		return getPackageDeclarationAccess().getRule();
	}

	//AbstractElement:
	//	PackageDeclaration | ValueObject | Datatype | Entity | Enumeration | ModuleDefinition | Module | Service | Dictionary
	//	| NavigationNode;
	public AbstractElementElements getAbstractElementAccess() {
		return pAbstractElement;
	}
	
	public ParserRule getAbstractElementRule() {
		return getAbstractElementAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// enumeration
	////-----------------------------------------------------------------------------
	//Enumeration:
	//	"enumeration" name=ID "{" enumerationValues+=EnumerationValue* "}";
	public EnumerationElements getEnumerationAccess() {
		return pEnumeration;
	}
	
	public ParserRule getEnumerationRule() {
		return getEnumerationAccess().getRule();
	}

	//EnumerationValue:
	//	name=ID ("=>" value=STRING)?;
	public EnumerationValueElements getEnumerationValueAccess() {
		return pEnumerationValue;
	}
	
	public ParserRule getEnumerationValueRule() {
		return getEnumerationValueAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// entity
	////-----------------------------------------------------------------------------
	//enum IdGeneratorStrategy:
	//	TABLE | SEQUENCE;
	public IdGeneratorStrategyElements getIdGeneratorStrategyAccess() {
		return unknownRuleIdGeneratorStrategy;
	}
	
	public EnumRule getIdGeneratorStrategyRule() {
		return getIdGeneratorStrategyAccess().getRule();
	}

	//EntityOptions:
	//	EntityDisableIdField | EntityLabelField | EntityPluralLabelField | EntityNaturalKeyFields | EntityHierarchical;
	public EntityOptionsElements getEntityOptionsAccess() {
		return pEntityOptions;
	}
	
	public ParserRule getEntityOptionsRule() {
		return getEntityOptionsAccess().getRule();
	}

	//EntityNaturalKeyFields:
	//	{EntityNaturalKeyFields} "naturalkey" "{" naturalKeyAttributes+=[EntityAttribute|QualifiedName] (", "
	//	naturalKeyAttributes+=[EntityAttribute|QualifiedName])* "}";
	public EntityNaturalKeyFieldsElements getEntityNaturalKeyFieldsAccess() {
		return pEntityNaturalKeyFields;
	}
	
	public ParserRule getEntityNaturalKeyFieldsRule() {
		return getEntityNaturalKeyFieldsAccess().getRule();
	}

	//EntityHierarchical:
	//	{EntityHierarchical} "hierarchicalEntity" hierarchical?=XBooleanLiteral;
	public EntityHierarchicalElements getEntityHierarchicalAccess() {
		return pEntityHierarchical;
	}
	
	public ParserRule getEntityHierarchicalRule() {
		return getEntityHierarchicalAccess().getRule();
	}

	//EntityDisableIdField:
	//	{EntityDisableIdField} "disableIdField" disableIdField?=XBooleanLiteral;
	public EntityDisableIdFieldElements getEntityDisableIdFieldAccess() {
		return pEntityDisableIdField;
	}
	
	public ParserRule getEntityDisableIdFieldRule() {
		return getEntityDisableIdFieldAccess().getRule();
	}

	//EntityLabelField:
	//	{EntityLabelField} "label" label=STRING?;
	public EntityLabelFieldElements getEntityLabelFieldAccess() {
		return pEntityLabelField;
	}
	
	public ParserRule getEntityLabelFieldRule() {
		return getEntityLabelFieldAccess().getRule();
	}

	//EntityPluralLabelField:
	//	{EntityPluralLabelField} "pluralLabel" pluralLabel=STRING;
	public EntityPluralLabelFieldElements getEntityPluralLabelFieldAccess() {
		return pEntityPluralLabelField;
	}
	
	public ParserRule getEntityPluralLabelFieldRule() {
		return getEntityPluralLabelFieldAccess().getRule();
	}

	//EntityIdGenerationStrategy:
	//	{EntityIdGenerationStrategy} ("idGeneratorStrategy" idGeneratorStrategy=IdGeneratorStrategy)?;
	public EntityIdGenerationStrategyElements getEntityIdGenerationStrategyAccess() {
		return pEntityIdGenerationStrategy;
	}
	
	public ParserRule getEntityIdGenerationStrategyRule() {
		return getEntityIdGenerationStrategyAccess().getRule();
	}

	//EntityOptionsContainer:
	//	{EntityOptionsContainer} "entityoptions" "{" options+=EntityOptions* "}";
	public EntityOptionsContainerElements getEntityOptionsContainerAccess() {
		return pEntityOptionsContainer;
	}
	
	public ParserRule getEntityOptionsContainerRule() {
		return getEntityOptionsContainerAccess().getRule();
	}

	//Entity:
	//	"entity" name=ID ("extends" extends=[Entity|QualifiedName])? ("jvmtype" jvmtype=JvmTypeReference)? "{"
	//	entityOptions=EntityOptionsContainer? attributes+=EntityAttribute* "}";
	public EntityElements getEntityAccess() {
		return pEntity;
	}
	
	public ParserRule getEntityRule() {
		return getEntityAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// Value Object
	////-----------------------------------------------------------------------------
	//ValueObject:
	//	"valueobject" name=ID ("extends" extends=[ValueObject|QualifiedName])? ("jvmtype" jvmtype=JvmTypeReference)? "{"
	//	attributes+=EntityAttribute* "}";
	public ValueObjectElements getValueObjectAccess() {
		return pValueObject;
	}
	
	public ParserRule getValueObjectRule() {
		return getValueObjectAccess().getRule();
	}

	//ValueObjectType:
	//	"valueobject" type=[ValueObject|QualifiedName] cardinality=Cardinality?;
	public ValueObjectTypeElements getValueObjectTypeAccess() {
		return pValueObjectType;
	}
	
	public ParserRule getValueObjectTypeRule() {
		return getValueObjectTypeAccess().getRule();
	}

	//Datatype:
	//	SimpleDataType | EntityDataType;
	public DatatypeElements getDatatypeAccess() {
		return pDatatype;
	}
	
	public ParserRule getDatatypeRule() {
		return getDatatypeAccess().getRule();
	}

	//SimpleDataType:
	//	StringDataType | DecimalDataType | DateDataType | IntegerDataType | BinaryDataType | EnumerationDataType |
	//	BooleanDataType | DoubleDataType | FloatDataType | LongDataType;
	public SimpleDataTypeElements getSimpleDataTypeAccess() {
		return pSimpleDataType;
	}
	
	public ParserRule getSimpleDataTypeRule() {
		return getSimpleDataTypeAccess().getRule();
	}

	//enum Cardinality:
	//	onetoone="0..1" | onetomany="0..n" | manytomany="n..n";
	public CardinalityElements getCardinalityAccess() {
		return unknownRuleCardinality;
	}
	
	public EnumRule getCardinalityRule() {
		return getCardinalityAccess().getRule();
	}

	//enum SimpleTypes:
	//	long | integer | bigdecimal | string | boolean | reference;
	public SimpleTypesElements getSimpleTypesAccess() {
		return unknownRuleSimpleTypes;
	}
	
	public EnumRule getSimpleTypesRule() {
		return getSimpleTypesAccess().getRule();
	}

	//EntityAttribute:
	//	SimpleDatatypeEntityAttribute | EntityEntityAttribute | ValueObjectEntityAttribute;
	public EntityAttributeElements getEntityAttributeAccess() {
		return pEntityAttribute;
	}
	
	public ParserRule getEntityAttributeRule() {
		return getEntityAttributeAccess().getRule();
	}

	//SimpleDatatypeEntityAttribute:
	//	MapEntityAttribute | LongEntityAttribute | DateEntityAttribute | DecimalEntityAttribute | DoubleEntityAttribute |
	//	FloatEntityAttribute | StringEntityAttribute | BooleanEntityAttribute | IntegerEntityAttribute | BinaryEntityAttribute
	//	| EnumerationEntityAttribute;
	public SimpleDatatypeEntityAttributeElements getSimpleDatatypeEntityAttributeAccess() {
		return pSimpleDatatypeEntityAttribute;
	}
	
	public ParserRule getSimpleDatatypeEntityAttributeRule() {
		return getSimpleDatatypeEntityAttributeAccess().getRule();
	}

	//SimpleTypeType:
	//	{SimpleTypeType} "simpletype" type=SimpleTypes? cardinality=Cardinality?;
	public SimpleTypeTypeElements getSimpleTypeTypeAccess() {
		return pSimpleTypeType;
	}
	
	public ParserRule getSimpleTypeTypeRule() {
		return getSimpleTypeTypeAccess().getRule();
	}

	//BaseDataType:
	//	{BaseDataType} baseDatatypeProperties+=BaseDataTypeProperties*;
	public BaseDataTypeElements getBaseDataTypeAccess() {
		return pBaseDataType;
	}
	
	public ParserRule getBaseDataTypeRule() {
		return getBaseDataTypeAccess().getRule();
	}

	//BaseDataTypeProperties:
	//	BaseDataTypeWidth | BaseDataTypeLabel;
	public BaseDataTypePropertiesElements getBaseDataTypePropertiesAccess() {
		return pBaseDataTypeProperties;
	}
	
	public ParserRule getBaseDataTypePropertiesRule() {
		return getBaseDataTypePropertiesAccess().getRule();
	}

	//BaseDataTypeWidth:
	//	{BaseDataTypeWidth} "width" width=INT?;
	public BaseDataTypeWidthElements getBaseDataTypeWidthAccess() {
		return pBaseDataTypeWidth;
	}
	
	public ParserRule getBaseDataTypeWidthRule() {
		return getBaseDataTypeWidthAccess().getRule();
	}

	//BaseDataTypeLabel:
	//	{BaseDataTypeLabel} "label" label=STRING;
	public BaseDataTypeLabelElements getBaseDataTypeLabelAccess() {
		return pBaseDataTypeLabel;
	}
	
	public ParserRule getBaseDataTypeLabelRule() {
		return getBaseDataTypeLabelAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// string
	////-----------------------------------------------------------------------------
	//StringDataType:
	//	"stringdatatype" name=ID ("extends" ref=[StringDataType|QualifiedName])? "{" baseDataType=BaseDataType ("maxLength"
	//	maxLength=INT)? ("minLength" minLength=INT)? "}";
	public StringDataTypeElements getStringDataTypeAccess() {
		return pStringDataType;
	}
	
	public ParserRule getStringDataTypeRule() {
		return getStringDataTypeAccess().getRule();
	}

	//StringEntityAttribute:
	//	"string" type=[StringDataType|QualifiedName]? cardinality=Cardinality? name=ID;
	public StringEntityAttributeElements getStringEntityAttributeAccess() {
		return pStringEntityAttribute;
	}
	
	public ParserRule getStringEntityAttributeRule() {
		return getStringEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// map
	////-----------------------------------------------------------------------------
	//MapDataType:
	//	"mapdatatype" name=ID ("extends" ref=[MapDataType|QualifiedName])? "{" baseDataType=BaseDataType keyType=SimpleTypes
	//	valueType=SimpleTypes "}";
	public MapDataTypeElements getMapDataTypeAccess() {
		return pMapDataType;
	}
	
	public ParserRule getMapDataTypeRule() {
		return getMapDataTypeAccess().getRule();
	}

	//MapEntityAttribute:
	//	"map" type=[MapDataType|QualifiedName]? (keyType=SimpleTypes valueType=SimpleTypes)? name=ID;
	public MapEntityAttributeElements getMapEntityAttributeAccess() {
		return pMapEntityAttribute;
	}
	
	public ParserRule getMapEntityAttributeRule() {
		return getMapEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// boolean
	////-----------------------------------------------------------------------------
	//BooleanDataType:
	//	"booleandatatype" name=ID ("extends" ref=[BooleanDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
	public BooleanDataTypeElements getBooleanDataTypeAccess() {
		return pBooleanDataType;
	}
	
	public ParserRule getBooleanDataTypeRule() {
		return getBooleanDataTypeAccess().getRule();
	}

	//BooleanEntityAttribute:
	//	"boolean" type=[BooleanDataType|QualifiedName]? name=ID;
	public BooleanEntityAttributeElements getBooleanEntityAttributeAccess() {
		return pBooleanEntityAttribute;
	}
	
	public ParserRule getBooleanEntityAttributeRule() {
		return getBooleanEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// integer
	////-----------------------------------------------------------------------------
	//IntegerDataType:
	//	"integerdatatype" name=ID ("extends" ref=[IntegerDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
	public IntegerDataTypeElements getIntegerDataTypeAccess() {
		return pIntegerDataType;
	}
	
	public ParserRule getIntegerDataTypeRule() {
		return getIntegerDataTypeAccess().getRule();
	}

	//IntegerEntityAttribute:
	//	"integer" type=[IntegerDataType|QualifiedName]? name=ID;
	public IntegerEntityAttributeElements getIntegerEntityAttributeAccess() {
		return pIntegerEntityAttribute;
	}
	
	public ParserRule getIntegerEntityAttributeRule() {
		return getIntegerEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// decimal
	////-----------------------------------------------------------------------------
	//DateDataType:
	//	"datedatatype" name=ID ("extends" ref=[DateDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
	public DateDataTypeElements getDateDataTypeAccess() {
		return pDateDataType;
	}
	
	public ParserRule getDateDataTypeRule() {
		return getDateDataTypeAccess().getRule();
	}

	//DateEntityAttribute:
	//	"date" type=[DateDataType|QualifiedName]? name=ID;
	public DateEntityAttributeElements getDateEntityAttributeAccess() {
		return pDateEntityAttribute;
	}
	
	public ParserRule getDateEntityAttributeRule() {
		return getDateEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// decimal
	////-----------------------------------------------------------------------------
	//DecimalDataType:
	//	"decimaldatatype" name=ID ("extends" ref=[DecimalDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
	public DecimalDataTypeElements getDecimalDataTypeAccess() {
		return pDecimalDataType;
	}
	
	public ParserRule getDecimalDataTypeRule() {
		return getDecimalDataTypeAccess().getRule();
	}

	//DecimalEntityAttribute:
	//	"decimal" type=[DecimalDataType|QualifiedName]? name=ID;
	public DecimalEntityAttributeElements getDecimalEntityAttributeAccess() {
		return pDecimalEntityAttribute;
	}
	
	public ParserRule getDecimalEntityAttributeRule() {
		return getDecimalEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// long
	////-----------------------------------------------------------------------------
	//LongDataType:
	//	"longdatatype" name=ID ("extends" ref=[LongDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
	public LongDataTypeElements getLongDataTypeAccess() {
		return pLongDataType;
	}
	
	public ParserRule getLongDataTypeRule() {
		return getLongDataTypeAccess().getRule();
	}

	//LongEntityAttribute:
	//	"long" type=[LongDataType|QualifiedName]? name=ID;
	public LongEntityAttributeElements getLongEntityAttributeAccess() {
		return pLongEntityAttribute;
	}
	
	public ParserRule getLongEntityAttributeRule() {
		return getLongEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// float
	////-----------------------------------------------------------------------------
	//FloatDataType:
	//	"floatdatatype" name=ID ("extends" ref=[FloatDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
	public FloatDataTypeElements getFloatDataTypeAccess() {
		return pFloatDataType;
	}
	
	public ParserRule getFloatDataTypeRule() {
		return getFloatDataTypeAccess().getRule();
	}

	//FloatEntityAttribute:
	//	"float" type=[FloatDataType|QualifiedName]? name=ID;
	public FloatEntityAttributeElements getFloatEntityAttributeAccess() {
		return pFloatEntityAttribute;
	}
	
	public ParserRule getFloatEntityAttributeRule() {
		return getFloatEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// double
	////-----------------------------------------------------------------------------
	//DoubleDataType:
	//	"doubledatatype" name=ID ("extends" ref=[DoubleDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
	public DoubleDataTypeElements getDoubleDataTypeAccess() {
		return pDoubleDataType;
	}
	
	public ParserRule getDoubleDataTypeRule() {
		return getDoubleDataTypeAccess().getRule();
	}

	//DoubleEntityAttribute:
	//	"double" type=[DoubleDataType|QualifiedName]? name=ID;
	public DoubleEntityAttributeElements getDoubleEntityAttributeAccess() {
		return pDoubleEntityAttribute;
	}
	
	public ParserRule getDoubleEntityAttributeRule() {
		return getDoubleEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// binary
	////-----------------------------------------------------------------------------
	//BinaryDataType:
	//	"binarydatatype" name=ID ("extends" ref=[BinaryDataType|QualifiedName])? "{" baseDataType=BaseDataType "}";
	public BinaryDataTypeElements getBinaryDataTypeAccess() {
		return pBinaryDataType;
	}
	
	public ParserRule getBinaryDataTypeRule() {
		return getBinaryDataTypeAccess().getRule();
	}

	//BinaryEntityAttribute:
	//	"binary" type=[BinaryDataType|QualifiedName]? name=ID;
	public BinaryEntityAttributeElements getBinaryEntityAttributeAccess() {
		return pBinaryEntityAttribute;
	}
	
	public ParserRule getBinaryEntityAttributeRule() {
		return getBinaryEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// entity
	////-----------------------------------------------------------------------------
	//EntityDataType:
	//	"entitydatatype" name=ID ("extends" ref=[EntityDataType|QualifiedName])? "{" baseDataType=BaseDataType "entity"
	//	entity=[Entity|QualifiedName] "}";
	public EntityDataTypeElements getEntityDataTypeAccess() {
		return pEntityDataType;
	}
	
	public ParserRule getEntityDataTypeRule() {
		return getEntityDataTypeAccess().getRule();
	}

	//EntityAttributeType:
	//	EntityDataType | Entity;
	public EntityAttributeTypeElements getEntityAttributeTypeAccess() {
		return pEntityAttributeType;
	}
	
	public ParserRule getEntityAttributeTypeRule() {
		return getEntityAttributeTypeAccess().getRule();
	}

	//EntityEntityAttribute:
	//	"entity" type=[EntityAttributeType|QualifiedName] cardinality=Cardinality? name=ID;
	public EntityEntityAttributeElements getEntityEntityAttributeAccess() {
		return pEntityEntityAttribute;
	}
	
	public ParserRule getEntityEntityAttributeRule() {
		return getEntityEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// entity
	////-----------------------------------------------------------------------------
	//ValueObjectEntityAttribute:
	//	"valueobject" type=[ValueObject|QualifiedName] cardinality=Cardinality? name=ID;
	public ValueObjectEntityAttributeElements getValueObjectEntityAttributeAccess() {
		return pValueObjectEntityAttribute;
	}
	
	public ParserRule getValueObjectEntityAttributeRule() {
		return getValueObjectEntityAttributeAccess().getRule();
	}

	////-----------------------------------------------------------------------------
	//// enumeration
	////-----------------------------------------------------------------------------
	//EnumerationDataType:
	//	"enumerationdatatype" name=ID ("extends" ref=[EnumerationDataType|QualifiedName])? "{" baseDataType=BaseDataType
	//	"enumeration" enumeration=[Enumeration|QualifiedName] "}";
	public EnumerationDataTypeElements getEnumerationDataTypeAccess() {
		return pEnumerationDataType;
	}
	
	public ParserRule getEnumerationDataTypeRule() {
		return getEnumerationDataTypeAccess().getRule();
	}

	//EnumerationAttributeType:
	//	EnumerationDataType | Enumeration;
	public EnumerationAttributeTypeElements getEnumerationAttributeTypeAccess() {
		return pEnumerationAttributeType;
	}
	
	public ParserRule getEnumerationAttributeTypeRule() {
		return getEnumerationAttributeTypeAccess().getRule();
	}

	//EnumerationEntityAttribute:
	//	"enumeration" type=[EnumerationAttributeType|QualifiedName] cardinality=Cardinality? name=ID;
	public EnumerationEntityAttributeElements getEnumerationEntityAttributeAccess() {
		return pEnumerationEntityAttribute;
	}
	
	public ParserRule getEnumerationEntityAttributeRule() {
		return getEnumerationEntityAttributeAccess().getRule();
	}

	////- dictionary ----------------------------------------------------------------
	//Dictionary:
	//	"dictionary" name=ID "{" "entity" entity=[Entity|QualifiedName] ("label" label=STRING)? ("pluralLabel"
	//	pluralLabel=STRING)? ("dictionarycontrols" "{" dictionarycontrols+=DictionaryControl* "}")? ("labelcontrols" "{"
	//	labelcontrols+=DictionaryControl* "}")? dictionarysearch=DictionarySearch? dictionaryeditor=DictionaryEditor? "}";
	public DictionaryElements getDictionaryAccess() {
		return pDictionary;
	}
	
	public ParserRule getDictionaryRule() {
		return getDictionaryAccess().getRule();
	}

	//DictionarySearch:
	//	"dictionarysearch" name=ID "{" ("label" label=STRING)? dictionaryfilters+=DictionaryFilter*
	//	dictionaryresult=DictionaryResult "}";
	public DictionarySearchElements getDictionarySearchAccess() {
		return pDictionarySearch;
	}
	
	public ParserRule getDictionarySearchRule() {
		return getDictionarySearchAccess().getRule();
	}

	//DictionaryEditor:
	//	"dictionaryeditor" name=ID "{" ("label" label=STRING)? layoutdata=ColumnLayoutData? layout=ColumnLayout?
	//	containercontents+=DictionaryContainerContent* "}";
	public DictionaryEditorElements getDictionaryEditorAccess() {
		return pDictionaryEditor;
	}
	
	public ParserRule getDictionaryEditorRule() {
		return getDictionaryEditorAccess().getRule();
	}

	//DictionaryFilter:
	//	"dictionaryfilter" name=ID "{" layoutdata=ColumnLayoutData? layout=ColumnLayout?
	//	containercontents+=DictionaryContainerContent* "}";
	public DictionaryFilterElements getDictionaryFilterAccess() {
		return pDictionaryFilter;
	}
	
	public ParserRule getDictionaryFilterRule() {
		return getDictionaryFilterAccess().getRule();
	}

	//DictionaryResult:
	//	"dictionaryresult" name=ID "{" resultcolumns+=DictionaryControl* "}";
	public DictionaryResultElements getDictionaryResultAccess() {
		return pDictionaryResult;
	}
	
	public ParserRule getDictionaryResultRule() {
		return getDictionaryResultAccess().getRule();
	}

	////- layout --------------------------------------------------------------------
	//ColumnLayout:
	//	"layout" "{" "columns" columns=INT "}";
	public ColumnLayoutElements getColumnLayoutAccess() {
		return pColumnLayout;
	}
	
	public ParserRule getColumnLayoutRule() {
		return getColumnLayoutAccess().getRule();
	}

	//ColumnLayoutData:
	//	"layoutdata" "{" "columnspan" columnspan=INT "}";
	public ColumnLayoutDataElements getColumnLayoutDataAccess() {
		return pColumnLayoutData;
	}
	
	public ParserRule getColumnLayoutDataRule() {
		return getColumnLayoutDataAccess().getRule();
	}

	////- /layout -------------------------------------------------------------------
	////- container -----------------------------------------------------------------
	//DictionaryContainer:
	//	DictionaryComposite | DictionaryEditableTable | DictionaryAssignmentTable;
	public DictionaryContainerElements getDictionaryContainerAccess() {
		return pDictionaryContainer;
	}
	
	public ParserRule getDictionaryContainerRule() {
		return getDictionaryContainerAccess().getRule();
	}

	//DictionaryComposite:
	//	"composite" name=ID "{" layoutdata=ColumnLayoutData? layout=ColumnLayout?
	//	containercontents+=DictionaryContainerContent* "}";
	public DictionaryCompositeElements getDictionaryCompositeAccess() {
		return pDictionaryComposite;
	}
	
	public ParserRule getDictionaryCompositeRule() {
		return getDictionaryCompositeAccess().getRule();
	}

	//DictionaryEditableTable:
	//	"editabletable" name=ID "{" ("layoutdata" layoutdata=ColumnLayoutData)? ("layout" layout=ColumnLayout)?
	//	containercontents+=DictionaryContainerContent* "entityattribute" entityattribute=[EntityAttribute|QualifiedName]
	//	"columncontrols" "{" columncontrols+=DictionaryControl* "}" "}";
	public DictionaryEditableTableElements getDictionaryEditableTableAccess() {
		return pDictionaryEditableTable;
	}
	
	public ParserRule getDictionaryEditableTableRule() {
		return getDictionaryEditableTableAccess().getRule();
	}

	//DictionaryAssignmentTable:
	//	"assignmenttable" name=ID "{" ("layoutdata" layoutdata=ColumnLayoutData)? ("layout" layout=ColumnLayout)?
	//	containercontents+=DictionaryContainerContent* "entityattribute" entityattribute=[EntityAttribute|QualifiedName]
	//	"dictionary" dictionary=[Dictionary|QualifiedName] "columncontrols" "{" columncontrols+=DictionaryControl* "}" "}";
	public DictionaryAssignmentTableElements getDictionaryAssignmentTableAccess() {
		return pDictionaryAssignmentTable;
	}
	
	public ParserRule getDictionaryAssignmentTableRule() {
		return getDictionaryAssignmentTableAccess().getRule();
	}

	//DictionaryContainerContent:
	//	DictionaryContainer | DictionaryControl;
	public DictionaryContainerContentElements getDictionaryContainerContentAccess() {
		return pDictionaryContainerContent;
	}
	
	public ParserRule getDictionaryContainerContentRule() {
		return getDictionaryContainerContentAccess().getRule();
	}

	////- labels --------------------------------------------------------------------
	//Labels:
	//	{Labels} ("label" label=STRING)? ("filterLabel" filterLabel=STRING)? ("columnLabel" columnLabel=STRING)?
	//	("editorLabel" editorLabel=STRING)? ("toolTip" toolTip=STRING)?;
	public LabelsElements getLabelsAccess() {
		return pLabels;
	}
	
	public ParserRule getLabelsRule() {
		return getLabelsAccess().getRule();
	}

	////- controls ------------------------------------------------------------------
	//BaseDictionaryControl:
	//	("entityattribute" entityattribute=[EntityAttribute|QualifiedName])? ("type" type=[Datatype|QualifiedName])?
	//	labels=Labels mandatory?="mandatory"? ("width" width=INT)? ("readonly" readonly?=XBooleanLiteral)?;
	public BaseDictionaryControlElements getBaseDictionaryControlAccess() {
		return pBaseDictionaryControl;
	}
	
	public ParserRule getBaseDictionaryControlRule() {
		return getBaseDictionaryControlAccess().getRule();
	}

	//DictionaryControl:
	//	DictionaryControlGroup | DictionaryTextControl | DictionaryIntegerControl | DictionaryHierarchicalControl |
	//	DictionaryBigDecimalControl | DictionaryBooleanControl | DictionaryDateControl | DictionaryEnumerationControl |
	//	DictionaryFileControl | DictionaryReferenceControl;
	public DictionaryControlElements getDictionaryControlAccess() {
		return pDictionaryControl;
	}
	
	public ParserRule getDictionaryControlRule() {
		return getDictionaryControlAccess().getRule();
	}

	//DictionaryControlGroupOptions:
	//	DictionaryControlGroupOptionMultiFilterField;
	public DictionaryControlGroupOptionsElements getDictionaryControlGroupOptionsAccess() {
		return pDictionaryControlGroupOptions;
	}
	
	public ParserRule getDictionaryControlGroupOptionsRule() {
		return getDictionaryControlGroupOptionsAccess().getRule();
	}

	//DictionaryControlGroupOptionMultiFilterField:
	//	{DictionaryControlGroupOptionMultiFilterField} ("multiFilterField" multiFilterField?=XBooleanLiteral)?;
	public DictionaryControlGroupOptionMultiFilterFieldElements getDictionaryControlGroupOptionMultiFilterFieldAccess() {
		return pDictionaryControlGroupOptionMultiFilterField;
	}
	
	public ParserRule getDictionaryControlGroupOptionMultiFilterFieldRule() {
		return getDictionaryControlGroupOptionMultiFilterFieldAccess().getRule();
	}

	//DictionaryControlGroupOptionsContainer:
	//	{DictionaryControlGroupOptionsContainer} "groupoptions" "{" options+=DictionaryControlGroupOptions "}";
	public DictionaryControlGroupOptionsContainerElements getDictionaryControlGroupOptionsContainerAccess() {
		return pDictionaryControlGroupOptionsContainer;
	}
	
	public ParserRule getDictionaryControlGroupOptionsContainerRule() {
		return getDictionaryControlGroupOptionsContainerAccess().getRule();
	}

	//DictionaryControlGroup:
	//	{DictionaryControlGroup} "controlgroup" name=ID? ("ref" ref=[DictionaryControlGroup|QualifiedName])? ("{"
	//	controlGroupOptions=DictionaryControlGroupOptionsContainer? baseControl=BaseDictionaryControl
	//	groupcontrols+=DictionaryControl* "}")?;
	public DictionaryControlGroupElements getDictionaryControlGroupAccess() {
		return pDictionaryControlGroup;
	}
	
	public ParserRule getDictionaryControlGroupRule() {
		return getDictionaryControlGroupAccess().getRule();
	}

	//DictionaryHierarchicalControl:
	//	{DictionaryHierarchicalControl} "hierarchicalcontrol" name=ID? ("ref"
	//	ref=[DictionaryHierarchicalControl|QualifiedName])? ("{" baseControl=BaseDictionaryControl "hierarchicalId"
	//	hierarchicalId=STRING "}")?;
	public DictionaryHierarchicalControlElements getDictionaryHierarchicalControlAccess() {
		return pDictionaryHierarchicalControl;
	}
	
	public ParserRule getDictionaryHierarchicalControlRule() {
		return getDictionaryHierarchicalControlAccess().getRule();
	}

	//DictionaryTextControl:
	//	{DictionaryTextControl} "textcontrol" name=ID? ("ref" ref=[DictionaryTextControl|QualifiedName])? ("{"
	//	baseControl=BaseDictionaryControl "}")?;
	public DictionaryTextControlElements getDictionaryTextControlAccess() {
		return pDictionaryTextControl;
	}
	
	public ParserRule getDictionaryTextControlRule() {
		return getDictionaryTextControlAccess().getRule();
	}

	//enum IntegerControlInputType:
	//	text="textbox" | rating;
	public IntegerControlInputTypeElements getIntegerControlInputTypeAccess() {
		return unknownRuleIntegerControlInputType;
	}
	
	public EnumRule getIntegerControlInputTypeRule() {
		return getIntegerControlInputTypeAccess().getRule();
	}

	//DictionaryIntegerControlInputType:
	//	{DictionaryIntegerControlInputType} "inputtype" inputtype=IntegerControlInputType;
	public DictionaryIntegerControlInputTypeElements getDictionaryIntegerControlInputTypeAccess() {
		return pDictionaryIntegerControlInputType;
	}
	
	public ParserRule getDictionaryIntegerControlInputTypeRule() {
		return getDictionaryIntegerControlInputTypeAccess().getRule();
	}

	//DictionaryIntegerControlOptions:
	//	DictionaryIntegerControlInputType;
	public DictionaryIntegerControlOptionsElements getDictionaryIntegerControlOptionsAccess() {
		return pDictionaryIntegerControlOptions;
	}
	
	public ParserRule getDictionaryIntegerControlOptionsRule() {
		return getDictionaryIntegerControlOptionsAccess().getRule();
	}

	//DictionaryIntegerControl:
	//	{DictionaryIntegerControl} "integercontrol" name=ID? ("ref" ref=[DictionaryIntegerControl|QualifiedName])? ("{"
	//	baseControl=BaseDictionaryControl options+=DictionaryIntegerControlOptions* "}")?;
	public DictionaryIntegerControlElements getDictionaryIntegerControlAccess() {
		return pDictionaryIntegerControl;
	}
	
	public ParserRule getDictionaryIntegerControlRule() {
		return getDictionaryIntegerControlAccess().getRule();
	}

	//DictionaryBigDecimalControl:
	//	{DictionaryBigDecimalControl} "bigdecimalcontrol" name=ID? ("ref" ref=[DictionaryBigDecimalControl|QualifiedName])?
	//	("{" baseControl=BaseDictionaryControl "}")?;
	public DictionaryBigDecimalControlElements getDictionaryBigDecimalControlAccess() {
		return pDictionaryBigDecimalControl;
	}
	
	public ParserRule getDictionaryBigDecimalControlRule() {
		return getDictionaryBigDecimalControlAccess().getRule();
	}

	//DictionaryBooleanControl:
	//	{DictionaryBooleanControl} "booleancontrol" name=ID? ("ref" ref=[DictionaryBooleanControl|QualifiedName])? ("{"
	//	baseControl=BaseDictionaryControl "}")?;
	public DictionaryBooleanControlElements getDictionaryBooleanControlAccess() {
		return pDictionaryBooleanControl;
	}
	
	public ParserRule getDictionaryBooleanControlRule() {
		return getDictionaryBooleanControlAccess().getRule();
	}

	//DictionaryDateControl:
	//	{DictionaryDateControl} "datecontrol" name=ID? ("ref" ref=[DictionaryDateControl|QualifiedName])? ("{"
	//	baseControl=BaseDictionaryControl "}")?;
	public DictionaryDateControlElements getDictionaryDateControlAccess() {
		return pDictionaryDateControl;
	}
	
	public ParserRule getDictionaryDateControlRule() {
		return getDictionaryDateControlAccess().getRule();
	}

	//DictionaryEnumerationControl:
	//	{DictionaryEnumerationControl} "enumerationcontrol" name=ID? ("ref" ref=[DictionaryEnumerationControl|QualifiedName])?
	//	("{" baseControl=BaseDictionaryControl "}")?;
	public DictionaryEnumerationControlElements getDictionaryEnumerationControlAccess() {
		return pDictionaryEnumerationControl;
	}
	
	public ParserRule getDictionaryEnumerationControlRule() {
		return getDictionaryEnumerationControlAccess().getRule();
	}

	//enum ReferenceControlType:
	//	text | dropdown;
	public ReferenceControlTypeElements getReferenceControlTypeAccess() {
		return unknownRuleReferenceControlType;
	}
	
	public EnumRule getReferenceControlTypeRule() {
		return getReferenceControlTypeAccess().getRule();
	}

	//DictionaryReferenceControl:
	//	{DictionaryReferenceControl} "referencecontrol" name=ID? ("ref" ref=[DictionaryReferenceControl|QualifiedName])? ("{"
	//	baseControl=BaseDictionaryControl ("dictionary" dictionary=[Dictionary|QualifiedName])? ("controlType"
	//	controlType=ReferenceControlType)? ("labelcontrols" "{" labelcontrols+=DictionaryControl* "}")? "}")?;
	public DictionaryReferenceControlElements getDictionaryReferenceControlAccess() {
		return pDictionaryReferenceControl;
	}
	
	public ParserRule getDictionaryReferenceControlRule() {
		return getDictionaryReferenceControlAccess().getRule();
	}

	//DictionaryFileControl:
	//	{DictionaryFileControl} "filecontrol" name=ID? ("ref" ref=[DictionaryFileControl|QualifiedName])? ("{"
	//	baseControl=BaseDictionaryControl "}")?;
	public DictionaryFileControlElements getDictionaryFileControlAccess() {
		return pDictionaryFileControl;
	}
	
	public ParserRule getDictionaryFileControlRule() {
		return getDictionaryFileControlAccess().getRule();
	}

	////- module --------------------------------------------------------------------
	//Module:
	//	"module" name=ID "{" "moduledefinition" moduledefinition=[ModuleDefinition|QualifiedName] ("parameters" "{"
	//	moduleParameters+=ModuleParameter* "}")? "}";
	public ModuleElements getModuleAccess() {
		return pModule;
	}
	
	public ParserRule getModuleRule() {
		return getModuleAccess().getRule();
	}

	//ModuleParameter:
	//	moduleDefinitionParameter=[ModuleDefinitionParameter|QualifiedName] "=" value=STRING;
	public ModuleParameterElements getModuleParameterAccess() {
		return pModuleParameter;
	}
	
	public ParserRule getModuleParameterRule() {
		return getModuleParameterAccess().getRule();
	}

	//ModuleDefinition:
	//	"moduledefinition" name=ID "{" ("parameters" "{" moduleDefinitionParameters+=ModuleDefinitionParameter* "}")? "}";
	public ModuleDefinitionElements getModuleDefinitionAccess() {
		return pModuleDefinition;
	}
	
	public ParserRule getModuleDefinitionRule() {
		return getModuleDefinitionAccess().getRule();
	}

	//ModuleDefinitionParameter:
	//	"parameter" name=ID "{" "type" type=SimpleTypes "}";
	public ModuleDefinitionParameterElements getModuleDefinitionParameterAccess() {
		return pModuleDefinitionParameter;
	}
	
	public ParserRule getModuleDefinitionParameterRule() {
		return getModuleDefinitionParameterAccess().getRule();
	}

	////- methods -------------------------------------------------------------------
	//ServiceOptions:
	//	{ServiceOptions} nonpublic?="nonpublic"?;
	public ServiceOptionsElements getServiceOptionsAccess() {
		return pServiceOptions;
	}
	
	public ParserRule getServiceOptionsRule() {
		return getServiceOptionsAccess().getRule();
	}

	//ServiceMethod:
	//	"method" ("<" typeParameter=JvmTypeParameter ">")? returnType=JvmTypeReference name=ValidID "("
	//	(params+=FullJvmFormalParameter (", " params+=FullJvmFormalParameter)*)? ")";
	public ServiceMethodElements getServiceMethodAccess() {
		return pServiceMethod;
	}
	
	public ParserRule getServiceMethodRule() {
		return getServiceMethodAccess().getRule();
	}

	//Service:
	//	{Service} "service" name=ID "{" ("options1" "{" remoteServiceOptions=ServiceOptions "}")?
	//	remoteMethods+=ServiceMethod* "}";
	public ServiceElements getServiceAccess() {
		return pService;
	}
	
	public ParserRule getServiceRule() {
		return getServiceAccess().getRule();
	}

	//NavigationNode:
	//	"navigationnode" name=ID "{" ("label" label=STRING)? ("moduleDefinition"
	//	moduleDefinition=[ModuleDefinition|QualifiedName])? ("module" module=[Module|QualifiedName])? ("dictionaryEditor"
	//	dictionaryEditor=[DictionaryEditor|QualifiedName])? ("dictionarySearch"
	//	dictionarySearch=[DictionarySearch|QualifiedName])? navigationNodes+=NavigationNode* "}";
	public NavigationNodeElements getNavigationNodeAccess() {
		return pNavigationNode;
	}
	
	public ParserRule getNavigationNodeRule() {
		return getNavigationNodeAccess().getRule();
	}

	//XExpression:
	//	XAssignment;
	public XbaseGrammarAccess.XExpressionElements getXExpressionAccess() {
		return gaXbase.getXExpressionAccess();
	}
	
	public ParserRule getXExpressionRule() {
		return getXExpressionAccess().getRule();
	}

	//XAssignment returns XExpression:
	//	{XAssignment} feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign value=XAssignment | XOrExpression
	//	(=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMultiAssign])
	//	rightOperand=XAssignment)?;
	public XbaseGrammarAccess.XAssignmentElements getXAssignmentAccess() {
		return gaXbase.getXAssignmentAccess();
	}
	
	public ParserRule getXAssignmentRule() {
		return getXAssignmentAccess().getRule();
	}

	//OpSingleAssign:
	//	"=";
	public XbaseGrammarAccess.OpSingleAssignElements getOpSingleAssignAccess() {
		return gaXbase.getOpSingleAssignAccess();
	}
	
	public ParserRule getOpSingleAssignRule() {
		return getOpSingleAssignAccess().getRule();
	}

	//OpMultiAssign:
	//	"+=" | "-=" | "*=" | "/=" | "%=" | "<" "<" "=" | ">" ">"? ">=";
	public XbaseGrammarAccess.OpMultiAssignElements getOpMultiAssignAccess() {
		return gaXbase.getOpMultiAssignAccess();
	}
	
	public ParserRule getOpMultiAssignRule() {
		return getOpMultiAssignAccess().getRule();
	}

	//XOrExpression returns XExpression:
	//	XAndExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOr])
	//	rightOperand=XAndExpression)*;
	public XbaseGrammarAccess.XOrExpressionElements getXOrExpressionAccess() {
		return gaXbase.getXOrExpressionAccess();
	}
	
	public ParserRule getXOrExpressionRule() {
		return getXOrExpressionAccess().getRule();
	}

	//OpOr:
	//	"||";
	public XbaseGrammarAccess.OpOrElements getOpOrAccess() {
		return gaXbase.getOpOrAccess();
	}
	
	public ParserRule getOpOrRule() {
		return getOpOrAccess().getRule();
	}

	//XAndExpression returns XExpression:
	//	XEqualityExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAnd])
	//	rightOperand=XEqualityExpression)*;
	public XbaseGrammarAccess.XAndExpressionElements getXAndExpressionAccess() {
		return gaXbase.getXAndExpressionAccess();
	}
	
	public ParserRule getXAndExpressionRule() {
		return getXAndExpressionAccess().getRule();
	}

	//OpAnd:
	//	"&&";
	public XbaseGrammarAccess.OpAndElements getOpAndAccess() {
		return gaXbase.getOpAndAccess();
	}
	
	public ParserRule getOpAndRule() {
		return getOpAndAccess().getRule();
	}

	//XEqualityExpression returns XExpression:
	//	XRelationalExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpEquality])
	//	rightOperand=XRelationalExpression)*;
	public XbaseGrammarAccess.XEqualityExpressionElements getXEqualityExpressionAccess() {
		return gaXbase.getXEqualityExpressionAccess();
	}
	
	public ParserRule getXEqualityExpressionRule() {
		return getXEqualityExpressionAccess().getRule();
	}

	//OpEquality:
	//	"==" | "!=" | "===" | "!==";
	public XbaseGrammarAccess.OpEqualityElements getOpEqualityAccess() {
		return gaXbase.getOpEqualityAccess();
	}
	
	public ParserRule getOpEqualityRule() {
		return getOpEqualityAccess().getRule();
	}

	//XRelationalExpression returns XExpression:
	//	XOtherOperatorExpression (=> ({XInstanceOfExpression.expression=current} "instanceof") type=JvmTypeReference | =>
	//	({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpCompare])
	//	rightOperand=XOtherOperatorExpression)*;
	public XbaseGrammarAccess.XRelationalExpressionElements getXRelationalExpressionAccess() {
		return gaXbase.getXRelationalExpressionAccess();
	}
	
	public ParserRule getXRelationalExpressionRule() {
		return getXRelationalExpressionAccess().getRule();
	}

	//OpCompare:
	//	">=" | "<" "=" | ">" | "<";
	public XbaseGrammarAccess.OpCompareElements getOpCompareAccess() {
		return gaXbase.getOpCompareAccess();
	}
	
	public ParserRule getOpCompareRule() {
		return getOpCompareAccess().getRule();
	}

	//XOtherOperatorExpression returns XExpression:
	//	XAdditiveExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOther])
	//	rightOperand=XAdditiveExpression)*;
	public XbaseGrammarAccess.XOtherOperatorExpressionElements getXOtherOperatorExpressionAccess() {
		return gaXbase.getXOtherOperatorExpressionAccess();
	}
	
	public ParserRule getXOtherOperatorExpressionRule() {
		return getXOtherOperatorExpressionAccess().getRule();
	}

	//OpOther:
	//	"->" | "..<" | ">" ".." | ".." | "=>" | ">" (=> (">" ">") | ">") | "<" (=> ("<" "<") | "<" | "=>") | "<>" | "?:";
	public XbaseGrammarAccess.OpOtherElements getOpOtherAccess() {
		return gaXbase.getOpOtherAccess();
	}
	
	public ParserRule getOpOtherRule() {
		return getOpOtherAccess().getRule();
	}

	//XAdditiveExpression returns XExpression:
	//	XMultiplicativeExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAdd])
	//	rightOperand=XMultiplicativeExpression)*;
	public XbaseGrammarAccess.XAdditiveExpressionElements getXAdditiveExpressionAccess() {
		return gaXbase.getXAdditiveExpressionAccess();
	}
	
	public ParserRule getXAdditiveExpressionRule() {
		return getXAdditiveExpressionAccess().getRule();
	}

	//OpAdd:
	//	"+" | "-";
	public XbaseGrammarAccess.OpAddElements getOpAddAccess() {
		return gaXbase.getOpAddAccess();
	}
	
	public ParserRule getOpAddRule() {
		return getOpAddAccess().getRule();
	}

	//XMultiplicativeExpression returns XExpression:
	//	XUnaryOperation (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMulti])
	//	rightOperand=XUnaryOperation)*;
	public XbaseGrammarAccess.XMultiplicativeExpressionElements getXMultiplicativeExpressionAccess() {
		return gaXbase.getXMultiplicativeExpressionAccess();
	}
	
	public ParserRule getXMultiplicativeExpressionRule() {
		return getXMultiplicativeExpressionAccess().getRule();
	}

	//OpMulti:
	//	"*" | "**" | "/" | "%";
	public XbaseGrammarAccess.OpMultiElements getOpMultiAccess() {
		return gaXbase.getOpMultiAccess();
	}
	
	public ParserRule getOpMultiRule() {
		return getOpMultiAccess().getRule();
	}

	//XUnaryOperation returns XExpression:
	//	{XUnaryOperation} feature=[types::JvmIdentifiableElement|OpUnary] operand=XUnaryOperation | XCastedExpression;
	public XbaseGrammarAccess.XUnaryOperationElements getXUnaryOperationAccess() {
		return gaXbase.getXUnaryOperationAccess();
	}
	
	public ParserRule getXUnaryOperationRule() {
		return getXUnaryOperationAccess().getRule();
	}

	//OpUnary:
	//	"!" | "-" | "+";
	public XbaseGrammarAccess.OpUnaryElements getOpUnaryAccess() {
		return gaXbase.getOpUnaryAccess();
	}
	
	public ParserRule getOpUnaryRule() {
		return getOpUnaryAccess().getRule();
	}

	//XCastedExpression returns XExpression:
	//	XPostfixOperation (=> ({XCastedExpression.target=current} "as") type=JvmTypeReference)*;
	public XbaseGrammarAccess.XCastedExpressionElements getXCastedExpressionAccess() {
		return gaXbase.getXCastedExpressionAccess();
	}
	
	public ParserRule getXCastedExpressionRule() {
		return getXCastedExpressionAccess().getRule();
	}

	//XPostfixOperation returns XExpression:
	//	XMemberFeatureCall => ({XPostfixOperation.operand=current} feature=[types::JvmIdentifiableElement|OpPostfix])?;
	public XbaseGrammarAccess.XPostfixOperationElements getXPostfixOperationAccess() {
		return gaXbase.getXPostfixOperationAccess();
	}
	
	public ParserRule getXPostfixOperationRule() {
		return getXPostfixOperationAccess().getRule();
	}

	//OpPostfix:
	//	"++" | "--";
	public XbaseGrammarAccess.OpPostfixElements getOpPostfixAccess() {
		return gaXbase.getOpPostfixAccess();
	}
	
	public ParserRule getOpPostfixRule() {
		return getOpPostfixAccess().getRule();
	}

	//XMemberFeatureCall returns XExpression:
	//	XPrimaryExpression (=> ({XAssignment.assignable=current} ("." | explicitStatic?="::")
	//	feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign) value=XAssignment | =>
	//	({XMemberFeatureCall.memberCallTarget=current} ("." | nullSafe?="?." | explicitStatic?="::")) ("<"
	//	typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")?
	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?="(" (memberCallArguments+=XShortClosure |
	//	memberCallArguments+=XExpression ("," memberCallArguments+=XExpression)*)? ")")? memberCallArguments+=XClosure?)*;
	public XbaseGrammarAccess.XMemberFeatureCallElements getXMemberFeatureCallAccess() {
		return gaXbase.getXMemberFeatureCallAccess();
	}
	
	public ParserRule getXMemberFeatureCallRule() {
		return getXMemberFeatureCallAccess().getRule();
	}

	//XPrimaryExpression returns XExpression:
	//	XConstructorCall | XBlockExpression | XSwitchExpression | XSynchronizedExpression | XFeatureCall | XLiteral |
	//	XIfExpression | XForLoopExpression | XBasicForLoopExpression | XWhileExpression | XDoWhileExpression |
	//	XThrowExpression | XReturnExpression | XTryCatchFinallyExpression | XParenthesizedExpression;
	public XbaseGrammarAccess.XPrimaryExpressionElements getXPrimaryExpressionAccess() {
		return gaXbase.getXPrimaryExpressionAccess();
	}
	
	public ParserRule getXPrimaryExpressionRule() {
		return getXPrimaryExpressionAccess().getRule();
	}

	//XLiteral returns XExpression:
	//	XCollectionLiteral | XClosure | XBooleanLiteral | XNumberLiteral | XNullLiteral | XStringLiteral | XTypeLiteral;
	public XbaseGrammarAccess.XLiteralElements getXLiteralAccess() {
		return gaXbase.getXLiteralAccess();
	}
	
	public ParserRule getXLiteralRule() {
		return getXLiteralAccess().getRule();
	}

	//XCollectionLiteral:
	//	XSetLiteral | XListLiteral;
	public XbaseGrammarAccess.XCollectionLiteralElements getXCollectionLiteralAccess() {
		return gaXbase.getXCollectionLiteralAccess();
	}
	
	public ParserRule getXCollectionLiteralRule() {
		return getXCollectionLiteralAccess().getRule();
	}

	//XSetLiteral:
	//	{XSetLiteral} "#" "{" (elements+=XExpression ("," elements+=XExpression)*)? "}";
	public XbaseGrammarAccess.XSetLiteralElements getXSetLiteralAccess() {
		return gaXbase.getXSetLiteralAccess();
	}
	
	public ParserRule getXSetLiteralRule() {
		return getXSetLiteralAccess().getRule();
	}

	//XListLiteral:
	//	{XListLiteral} "#" "[" (elements+=XExpression ("," elements+=XExpression)*)? "]";
	public XbaseGrammarAccess.XListLiteralElements getXListLiteralAccess() {
		return gaXbase.getXListLiteralAccess();
	}
	
	public ParserRule getXListLiteralRule() {
		return getXListLiteralAccess().getRule();
	}

	//XClosure returns XExpression:
	//	=> ({XClosure} "[") => ((declaredFormalParameters+=JvmFormalParameter (","
	//	declaredFormalParameters+=JvmFormalParameter)*)? explicitSyntax?="|")? expression=XExpressionInClosure "]";
	public XbaseGrammarAccess.XClosureElements getXClosureAccess() {
		return gaXbase.getXClosureAccess();
	}
	
	public ParserRule getXClosureRule() {
		return getXClosureAccess().getRule();
	}

	//XExpressionInClosure returns XExpression:
	//	{XBlockExpression} (expressions+=XExpressionOrVarDeclaration ";"?)*;
	public XbaseGrammarAccess.XExpressionInClosureElements getXExpressionInClosureAccess() {
		return gaXbase.getXExpressionInClosureAccess();
	}
	
	public ParserRule getXExpressionInClosureRule() {
		return getXExpressionInClosureAccess().getRule();
	}

	//XShortClosure returns XExpression:
	//	=> ({XClosure} (declaredFormalParameters+=JvmFormalParameter ("," declaredFormalParameters+=JvmFormalParameter)*)?
	//	explicitSyntax?="|") expression=XExpression;
	public XbaseGrammarAccess.XShortClosureElements getXShortClosureAccess() {
		return gaXbase.getXShortClosureAccess();
	}
	
	public ParserRule getXShortClosureRule() {
		return getXShortClosureAccess().getRule();
	}

	//XParenthesizedExpression returns XExpression:
	//	"(" XExpression ")";
	public XbaseGrammarAccess.XParenthesizedExpressionElements getXParenthesizedExpressionAccess() {
		return gaXbase.getXParenthesizedExpressionAccess();
	}
	
	public ParserRule getXParenthesizedExpressionRule() {
		return getXParenthesizedExpressionAccess().getRule();
	}

	//XIfExpression returns XExpression:
	//	{XIfExpression} "if" "(" if=XExpression ")" then=XExpression ("else" else=XExpression)?;
	public XbaseGrammarAccess.XIfExpressionElements getXIfExpressionAccess() {
		return gaXbase.getXIfExpressionAccess();
	}
	
	public ParserRule getXIfExpressionRule() {
		return getXIfExpressionAccess().getRule();
	}

	//XSwitchExpression returns XExpression:
	//	{XSwitchExpression} "switch" (=> ("(" declaredParam=JvmFormalParameter ":") switch=XExpression ")" | =>
	//	(declaredParam=JvmFormalParameter ":")? switch=XExpression) "{" cases+=XCasePart* ("default" ":" default=XExpression)?
	//	"}";
	public XbaseGrammarAccess.XSwitchExpressionElements getXSwitchExpressionAccess() {
		return gaXbase.getXSwitchExpressionAccess();
	}
	
	public ParserRule getXSwitchExpressionRule() {
		return getXSwitchExpressionAccess().getRule();
	}

	//XCasePart:
	//	{XCasePart} typeGuard=JvmTypeReference? ("case" case=XExpression)? (":" then=XExpression | fallThrough?=",");
	public XbaseGrammarAccess.XCasePartElements getXCasePartAccess() {
		return gaXbase.getXCasePartAccess();
	}
	
	public ParserRule getXCasePartRule() {
		return getXCasePartAccess().getRule();
	}

	//XForLoopExpression returns XExpression:
	//	=> ({XForLoopExpression} "for" "(" declaredParam=JvmFormalParameter ":") forExpression=XExpression ")"
	//	eachExpression=XExpression;
	public XbaseGrammarAccess.XForLoopExpressionElements getXForLoopExpressionAccess() {
		return gaXbase.getXForLoopExpressionAccess();
	}
	
	public ParserRule getXForLoopExpressionRule() {
		return getXForLoopExpressionAccess().getRule();
	}

	//XBasicForLoopExpression returns XExpression:
	//	{XBasicForLoopExpression} "for" "(" (initExpressions+=XExpressionOrVarDeclaration (","
	//	initExpressions+=XExpressionOrVarDeclaration)*)? ";" expression=XExpression? ";" (updateExpressions+=XExpression (","
	//	updateExpressions+=XExpression)*)? ")" eachExpression=XExpression;
	public XbaseGrammarAccess.XBasicForLoopExpressionElements getXBasicForLoopExpressionAccess() {
		return gaXbase.getXBasicForLoopExpressionAccess();
	}
	
	public ParserRule getXBasicForLoopExpressionRule() {
		return getXBasicForLoopExpressionAccess().getRule();
	}

	//XWhileExpression returns XExpression:
	//	{XWhileExpression} "while" "(" predicate=XExpression ")" body=XExpression;
	public XbaseGrammarAccess.XWhileExpressionElements getXWhileExpressionAccess() {
		return gaXbase.getXWhileExpressionAccess();
	}
	
	public ParserRule getXWhileExpressionRule() {
		return getXWhileExpressionAccess().getRule();
	}

	//XDoWhileExpression returns XExpression:
	//	{XDoWhileExpression} "do" body=XExpression "while" "(" predicate=XExpression ")";
	public XbaseGrammarAccess.XDoWhileExpressionElements getXDoWhileExpressionAccess() {
		return gaXbase.getXDoWhileExpressionAccess();
	}
	
	public ParserRule getXDoWhileExpressionRule() {
		return getXDoWhileExpressionAccess().getRule();
	}

	//XBlockExpression returns XExpression:
	//	{XBlockExpression} "{" (expressions+=XExpressionOrVarDeclaration ";"?)* "}";
	public XbaseGrammarAccess.XBlockExpressionElements getXBlockExpressionAccess() {
		return gaXbase.getXBlockExpressionAccess();
	}
	
	public ParserRule getXBlockExpressionRule() {
		return getXBlockExpressionAccess().getRule();
	}

	//XExpressionOrVarDeclaration returns XExpression:
	//	XVariableDeclaration | XExpression;
	public XbaseGrammarAccess.XExpressionOrVarDeclarationElements getXExpressionOrVarDeclarationAccess() {
		return gaXbase.getXExpressionOrVarDeclarationAccess();
	}
	
	public ParserRule getXExpressionOrVarDeclarationRule() {
		return getXExpressionOrVarDeclarationAccess().getRule();
	}

	//XVariableDeclaration returns XExpression:
	//	{XVariableDeclaration} (writeable?="var" | "val") (=> (type=JvmTypeReference name=ValidID) | name=ValidID) ("="
	//	right=XExpression)?;
	public XbaseGrammarAccess.XVariableDeclarationElements getXVariableDeclarationAccess() {
		return gaXbase.getXVariableDeclarationAccess();
	}
	
	public ParserRule getXVariableDeclarationRule() {
		return getXVariableDeclarationAccess().getRule();
	}

	//JvmFormalParameter returns types::JvmFormalParameter:
	//	parameterType=JvmTypeReference? name=ValidID;
	public XbaseGrammarAccess.JvmFormalParameterElements getJvmFormalParameterAccess() {
		return gaXbase.getJvmFormalParameterAccess();
	}
	
	public ParserRule getJvmFormalParameterRule() {
		return getJvmFormalParameterAccess().getRule();
	}

	//FullJvmFormalParameter returns types::JvmFormalParameter:
	//	parameterType=JvmTypeReference name=ValidID;
	public XbaseGrammarAccess.FullJvmFormalParameterElements getFullJvmFormalParameterAccess() {
		return gaXbase.getFullJvmFormalParameterAccess();
	}
	
	public ParserRule getFullJvmFormalParameterRule() {
		return getFullJvmFormalParameterAccess().getRule();
	}

	//XFeatureCall returns XExpression:
	//	{XFeatureCall} ("<" typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")?
	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?="(" (featureCallArguments+=XShortClosure
	//	| featureCallArguments+=XExpression ("," featureCallArguments+=XExpression)*)? ")")? featureCallArguments+=XClosure?;
	public XbaseGrammarAccess.XFeatureCallElements getXFeatureCallAccess() {
		return gaXbase.getXFeatureCallAccess();
	}
	
	public ParserRule getXFeatureCallRule() {
		return getXFeatureCallAccess().getRule();
	}

	//FeatureCallID:
	//	ValidID | "extends" | "static" | "import" | "extension";
	public XbaseGrammarAccess.FeatureCallIDElements getFeatureCallIDAccess() {
		return gaXbase.getFeatureCallIDAccess();
	}
	
	public ParserRule getFeatureCallIDRule() {
		return getFeatureCallIDAccess().getRule();
	}

	//IdOrSuper:
	//	FeatureCallID | "super";
	public XbaseGrammarAccess.IdOrSuperElements getIdOrSuperAccess() {
		return gaXbase.getIdOrSuperAccess();
	}
	
	public ParserRule getIdOrSuperRule() {
		return getIdOrSuperAccess().getRule();
	}

	//XConstructorCall returns XExpression:
	//	{XConstructorCall} "new" constructor=[types::JvmConstructor|QualifiedName] ("<"
	//	typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")? (=>
	//	explicitConstructorCall?="(" (arguments+=XShortClosure | arguments+=XExpression ("," arguments+=XExpression)*)? ")")?
	//	arguments+=XClosure?;
	public XbaseGrammarAccess.XConstructorCallElements getXConstructorCallAccess() {
		return gaXbase.getXConstructorCallAccess();
	}
	
	public ParserRule getXConstructorCallRule() {
		return getXConstructorCallAccess().getRule();
	}

	//XBooleanLiteral returns XExpression:
	//	{XBooleanLiteral} ("false" | isTrue?="true");
	public XbaseGrammarAccess.XBooleanLiteralElements getXBooleanLiteralAccess() {
		return gaXbase.getXBooleanLiteralAccess();
	}
	
	public ParserRule getXBooleanLiteralRule() {
		return getXBooleanLiteralAccess().getRule();
	}

	//XNullLiteral returns XExpression:
	//	{XNullLiteral} "null";
	public XbaseGrammarAccess.XNullLiteralElements getXNullLiteralAccess() {
		return gaXbase.getXNullLiteralAccess();
	}
	
	public ParserRule getXNullLiteralRule() {
		return getXNullLiteralAccess().getRule();
	}

	//XNumberLiteral returns XExpression:
	//	{XNumberLiteral} value=Number;
	public XbaseGrammarAccess.XNumberLiteralElements getXNumberLiteralAccess() {
		return gaXbase.getXNumberLiteralAccess();
	}
	
	public ParserRule getXNumberLiteralRule() {
		return getXNumberLiteralAccess().getRule();
	}

	//XStringLiteral returns XExpression:
	//	{XStringLiteral} value=STRING;
	public XbaseGrammarAccess.XStringLiteralElements getXStringLiteralAccess() {
		return gaXbase.getXStringLiteralAccess();
	}
	
	public ParserRule getXStringLiteralRule() {
		return getXStringLiteralAccess().getRule();
	}

	//XTypeLiteral returns XExpression:
	//	{XTypeLiteral} "typeof" "(" type=[types::JvmType|QualifiedName] arrayDimensions+=ArrayBrackets* ")";
	public XbaseGrammarAccess.XTypeLiteralElements getXTypeLiteralAccess() {
		return gaXbase.getXTypeLiteralAccess();
	}
	
	public ParserRule getXTypeLiteralRule() {
		return getXTypeLiteralAccess().getRule();
	}

	//XThrowExpression returns XExpression:
	//	{XThrowExpression} "throw" expression=XExpression;
	public XbaseGrammarAccess.XThrowExpressionElements getXThrowExpressionAccess() {
		return gaXbase.getXThrowExpressionAccess();
	}
	
	public ParserRule getXThrowExpressionRule() {
		return getXThrowExpressionAccess().getRule();
	}

	//XReturnExpression returns XExpression:
	//	{XReturnExpression} "return" -> expression=XExpression?;
	public XbaseGrammarAccess.XReturnExpressionElements getXReturnExpressionAccess() {
		return gaXbase.getXReturnExpressionAccess();
	}
	
	public ParserRule getXReturnExpressionRule() {
		return getXReturnExpressionAccess().getRule();
	}

	//XTryCatchFinallyExpression returns XExpression:
	//	{XTryCatchFinallyExpression} "try" expression=XExpression (catchClauses+=XCatchClause+ ("finally"
	//	finallyExpression=XExpression)? | "finally" finallyExpression=XExpression);
	public XbaseGrammarAccess.XTryCatchFinallyExpressionElements getXTryCatchFinallyExpressionAccess() {
		return gaXbase.getXTryCatchFinallyExpressionAccess();
	}
	
	public ParserRule getXTryCatchFinallyExpressionRule() {
		return getXTryCatchFinallyExpressionAccess().getRule();
	}

	//XSynchronizedExpression returns XExpression:
	//	=> ({XSynchronizedExpression} "synchronized" "(") param=XExpression ")" expression=XExpression;
	public XbaseGrammarAccess.XSynchronizedExpressionElements getXSynchronizedExpressionAccess() {
		return gaXbase.getXSynchronizedExpressionAccess();
	}
	
	public ParserRule getXSynchronizedExpressionRule() {
		return getXSynchronizedExpressionAccess().getRule();
	}

	//XCatchClause:
	//	"catch" "(" declaredParam=FullJvmFormalParameter ")" expression=XExpression;
	public XbaseGrammarAccess.XCatchClauseElements getXCatchClauseAccess() {
		return gaXbase.getXCatchClauseAccess();
	}
	
	public ParserRule getXCatchClauseRule() {
		return getXCatchClauseAccess().getRule();
	}

	//QualifiedName:
	//	ValidID ("." ValidID)*;
	public XbaseGrammarAccess.QualifiedNameElements getQualifiedNameAccess() {
		return gaXbase.getQualifiedNameAccess();
	}
	
	public ParserRule getQualifiedNameRule() {
		return getQualifiedNameAccess().getRule();
	}

	//Number hidden():
	//	HEX | (INT | DECIMAL) ("." (INT | DECIMAL))?;
	public XbaseGrammarAccess.NumberElements getNumberAccess() {
		return gaXbase.getNumberAccess();
	}
	
	public ParserRule getNumberRule() {
		return getNumberAccess().getRule();
	}

	/// **
	// * Dummy rule, for "better" downwards compatibility, since GrammarAccess generates non-static inner classes, 
	// * which makes downstream grammars break on classloading, when a rule is removed.
	// * / StaticQualifier:
	//	(ValidID "::")+;
	public XbaseGrammarAccess.StaticQualifierElements getStaticQualifierAccess() {
		return gaXbase.getStaticQualifierAccess();
	}
	
	public ParserRule getStaticQualifierRule() {
		return getStaticQualifierAccess().getRule();
	}

	//terminal HEX:
	//	("0x" | "0X") ("0".."9" | "a".."f" | "A".."F" | "_")+ ("#" (("b" | "B") ("i" | "I") | ("l" | "L")))?;
	public TerminalRule getHEXRule() {
		return gaXbase.getHEXRule();
	} 

	//terminal INT returns ecore::EInt:
	//	"0".."9" ("0".."9" | "_")*;
	public TerminalRule getINTRule() {
		return gaXbase.getINTRule();
	} 

	//terminal DECIMAL:
	//	INT (("e" | "E") ("+" | "-")? INT)? (("b" | "B") ("i" | "I" | "d" | "D") | ("l" | "L" | "d" | "D" | "f" | "F"))?;
	public TerminalRule getDECIMALRule() {
		return gaXbase.getDECIMALRule();
	} 

	//JvmTypeReference:
	//	JvmParameterizedTypeReference => ({JvmGenericArrayTypeReference.componentType=current} ArrayBrackets)* |
	//	XFunctionTypeRef;
	public XtypeGrammarAccess.JvmTypeReferenceElements getJvmTypeReferenceAccess() {
		return gaXbase.getJvmTypeReferenceAccess();
	}
	
	public ParserRule getJvmTypeReferenceRule() {
		return getJvmTypeReferenceAccess().getRule();
	}

	//ArrayBrackets:
	//	"[" "]";
	public XtypeGrammarAccess.ArrayBracketsElements getArrayBracketsAccess() {
		return gaXbase.getArrayBracketsAccess();
	}
	
	public ParserRule getArrayBracketsRule() {
		return getArrayBracketsAccess().getRule();
	}

	//XFunctionTypeRef:
	//	("(" (paramTypes+=JvmTypeReference ("," paramTypes+=JvmTypeReference)*)? ")")? "=>" returnType=JvmTypeReference;
	public XtypeGrammarAccess.XFunctionTypeRefElements getXFunctionTypeRefAccess() {
		return gaXbase.getXFunctionTypeRefAccess();
	}
	
	public ParserRule getXFunctionTypeRefRule() {
		return getXFunctionTypeRefAccess().getRule();
	}

	//JvmParameterizedTypeReference:
	//	type=[JvmType|QualifiedName] ("<" arguments+=JvmArgumentTypeReference ("," arguments+=JvmArgumentTypeReference)* ">"
	//	(=> ({JvmInnerTypeReference.outer=current} ".") type=[JvmType|ValidID] ("<" arguments+=JvmArgumentTypeReference (","
	//	arguments+=JvmArgumentTypeReference)* ">")?)*)?;
	public XtypeGrammarAccess.JvmParameterizedTypeReferenceElements getJvmParameterizedTypeReferenceAccess() {
		return gaXbase.getJvmParameterizedTypeReferenceAccess();
	}
	
	public ParserRule getJvmParameterizedTypeReferenceRule() {
		return getJvmParameterizedTypeReferenceAccess().getRule();
	}

	//JvmArgumentTypeReference returns JvmTypeReference:
	//	JvmTypeReference | JvmWildcardTypeReference;
	public XtypeGrammarAccess.JvmArgumentTypeReferenceElements getJvmArgumentTypeReferenceAccess() {
		return gaXbase.getJvmArgumentTypeReferenceAccess();
	}
	
	public ParserRule getJvmArgumentTypeReferenceRule() {
		return getJvmArgumentTypeReferenceAccess().getRule();
	}

	//JvmWildcardTypeReference:
	//	{JvmWildcardTypeReference} "?" (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded* |
	//	constraints+=JvmLowerBound constraints+=JvmLowerBoundAnded*)?;
	public XtypeGrammarAccess.JvmWildcardTypeReferenceElements getJvmWildcardTypeReferenceAccess() {
		return gaXbase.getJvmWildcardTypeReferenceAccess();
	}
	
	public ParserRule getJvmWildcardTypeReferenceRule() {
		return getJvmWildcardTypeReferenceAccess().getRule();
	}

	//JvmUpperBound:
	//	"extends" typeReference=JvmTypeReference;
	public XtypeGrammarAccess.JvmUpperBoundElements getJvmUpperBoundAccess() {
		return gaXbase.getJvmUpperBoundAccess();
	}
	
	public ParserRule getJvmUpperBoundRule() {
		return getJvmUpperBoundAccess().getRule();
	}

	//JvmUpperBoundAnded returns JvmUpperBound:
	//	"&" typeReference=JvmTypeReference;
	public XtypeGrammarAccess.JvmUpperBoundAndedElements getJvmUpperBoundAndedAccess() {
		return gaXbase.getJvmUpperBoundAndedAccess();
	}
	
	public ParserRule getJvmUpperBoundAndedRule() {
		return getJvmUpperBoundAndedAccess().getRule();
	}

	//JvmLowerBound:
	//	"super" typeReference=JvmTypeReference;
	public XtypeGrammarAccess.JvmLowerBoundElements getJvmLowerBoundAccess() {
		return gaXbase.getJvmLowerBoundAccess();
	}
	
	public ParserRule getJvmLowerBoundRule() {
		return getJvmLowerBoundAccess().getRule();
	}

	//JvmLowerBoundAnded returns JvmLowerBound:
	//	"&" typeReference=JvmTypeReference;
	public XtypeGrammarAccess.JvmLowerBoundAndedElements getJvmLowerBoundAndedAccess() {
		return gaXbase.getJvmLowerBoundAndedAccess();
	}
	
	public ParserRule getJvmLowerBoundAndedRule() {
		return getJvmLowerBoundAndedAccess().getRule();
	}

	//JvmTypeParameter:
	//	name=ValidID (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded*)?;
	public XtypeGrammarAccess.JvmTypeParameterElements getJvmTypeParameterAccess() {
		return gaXbase.getJvmTypeParameterAccess();
	}
	
	public ParserRule getJvmTypeParameterRule() {
		return getJvmTypeParameterAccess().getRule();
	}

	//QualifiedNameWithWildcard:
	//	QualifiedName "." "*";
	public XtypeGrammarAccess.QualifiedNameWithWildcardElements getQualifiedNameWithWildcardAccess() {
		return gaXbase.getQualifiedNameWithWildcardAccess();
	}
	
	public ParserRule getQualifiedNameWithWildcardRule() {
		return getQualifiedNameWithWildcardAccess().getRule();
	}

	//ValidID:
	//	ID;
	public XtypeGrammarAccess.ValidIDElements getValidIDAccess() {
		return gaXbase.getValidIDAccess();
	}
	
	public ParserRule getValidIDRule() {
		return getValidIDAccess().getRule();
	}

	//XImportSection:
	//	importDeclarations+=XImportDeclaration+;
	public XtypeGrammarAccess.XImportSectionElements getXImportSectionAccess() {
		return gaXbase.getXImportSectionAccess();
	}
	
	public ParserRule getXImportSectionRule() {
		return getXImportSectionAccess().getRule();
	}

	//XImportDeclaration:
	//	"import" (static?="static" extension?="extension"? importedType=[JvmDeclaredType|QualifiedNameInStaticImport]
	//	(wildcard?="*" | memberName=ValidID) | importedType=[JvmDeclaredType|QualifiedName] |
	//	importedNamespace=QualifiedNameWithWildcard) ";"?;
	public XtypeGrammarAccess.XImportDeclarationElements getXImportDeclarationAccess() {
		return gaXbase.getXImportDeclarationAccess();
	}
	
	public ParserRule getXImportDeclarationRule() {
		return getXImportDeclarationAccess().getRule();
	}

	//QualifiedNameInStaticImport:
	//	(ValidID ".")+;
	public XtypeGrammarAccess.QualifiedNameInStaticImportElements getQualifiedNameInStaticImportAccess() {
		return gaXbase.getQualifiedNameInStaticImportAccess();
	}
	
	public ParserRule getQualifiedNameInStaticImportRule() {
		return getQualifiedNameInStaticImportAccess().getRule();
	}

	//terminal ID:
	//	"^"? ("a".."z" | "A".."Z" | "$" | "_") ("a".."z" | "A".."Z" | "$" | "_" | "0".."9")*;
	public TerminalRule getIDRule() {
		return gaXbase.getIDRule();
	} 

	//terminal STRING:
	//	"\"" ("\\" . / * ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') * / | !("\\" | "\""))* "\""? | "\'" ("\\" .
	//	/ * ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') * / | !("\\" | "\'"))* "\'"?;
	public TerminalRule getSTRINGRule() {
		return gaXbase.getSTRINGRule();
	} 

	//terminal ML_COMMENT:
	//	"/ *"->"* /";
	public TerminalRule getML_COMMENTRule() {
		return gaXbase.getML_COMMENTRule();
	} 

	//terminal SL_COMMENT:
	//	"//" !("\n" | "\r")* ("\r"? "\n")?;
	public TerminalRule getSL_COMMENTRule() {
		return gaXbase.getSL_COMMENTRule();
	} 

	//terminal WS:
	//	(" " | "\t" | "\r" | "\n")+;
	public TerminalRule getWSRule() {
		return gaXbase.getWSRule();
	} 

	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaXbase.getANY_OTHERRule();
	} 
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy