/*
* generated by Xtext
*/
package org.xtext.example.mydsl6.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.common.services.TerminalsGrammarAccess;

@Singleton
public class MyDsl6GrammarAccess extends AbstractGrammarElementFinder {
	
	
	public class ContextElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Context");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cContextKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cAppAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cAppApplicationParserRuleCall_3_0 = (RuleCall)cAppAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Context:
		//
		//	"context" name=QualifiedName "{" app=Application "}";
		public ParserRule getRule() { return rule; }

		//"context" name=QualifiedName "{" app=Application "}"
		public Group getGroup() { return cGroup; }

		//"context"
		public Keyword getContextKeyword_0() { return cContextKeyword_0; }

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

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }

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

		//app=Application
		public Assignment getAppAssignment_3() { return cAppAssignment_3; }

		//Application
		public RuleCall getAppApplicationParserRuleCall_3_0() { return cAppApplicationParserRuleCall_3_0; }

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

	public class ContextUnitElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ContextUnit");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cContextParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cApplicationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cCollectionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cMethodParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cFunctionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cTypeParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cFieldParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		
		//ContextUnit returns ContentextUnit:
		//
		//	Context | Application | Collection | Method | Function | Type | Field;
		public ParserRule getRule() { return rule; }

		//Context | Application | Collection | Method | Function | Type | Field
		public Alternatives getAlternatives() { return cAlternatives; }

		//Context
		public RuleCall getContextParserRuleCall_0() { return cContextParserRuleCall_0; }

		//Application
		public RuleCall getApplicationParserRuleCall_1() { return cApplicationParserRuleCall_1; }

		//Collection
		public RuleCall getCollectionParserRuleCall_2() { return cCollectionParserRuleCall_2; }

		//Method
		public RuleCall getMethodParserRuleCall_3() { return cMethodParserRuleCall_3; }

		//Function
		public RuleCall getFunctionParserRuleCall_4() { return cFunctionParserRuleCall_4; }

		//Type
		public RuleCall getTypeParserRuleCall_5() { return cTypeParserRuleCall_5; }

		//Field
		public RuleCall getFieldParserRuleCall_6() { return cFieldParserRuleCall_6; }
	}

	public class ApplicationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Application");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cApplicationKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cCollectionAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cCollectionCollectionParserRuleCall_3_0 = (RuleCall)cCollectionAssignment_3.eContents().get(0);
		private final Assignment cCollectionAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cCollectionCollectionParserRuleCall_4_0 = (RuleCall)cCollectionAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//Application returns WebApplication:
		//
		//	"Application" name=QualifiedName "{" collection+=Collection collection+=Collection* "}";
		public ParserRule getRule() { return rule; }

		//"Application" name=QualifiedName "{" collection+=Collection collection+=Collection* "}"
		public Group getGroup() { return cGroup; }

		//"Application"
		public Keyword getApplicationKeyword_0() { return cApplicationKeyword_0; }

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

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }

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

		//collection+=Collection
		public Assignment getCollectionAssignment_3() { return cCollectionAssignment_3; }

		//Collection
		public RuleCall getCollectionCollectionParserRuleCall_3_0() { return cCollectionCollectionParserRuleCall_3_0; }

		//collection+=Collection*
		public Assignment getCollectionAssignment_4() { return cCollectionAssignment_4; }

		//Collection
		public RuleCall getCollectionCollectionParserRuleCall_4_0() { return cCollectionCollectionParserRuleCall_4_0; }

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

	public class CollectionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Collection");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCollectionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cOwnmethodAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cOwnmethodMethodParserRuleCall_3_0 = (RuleCall)cOwnmethodAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Collection:
		//
		//	"Collection" name=QualifiedName "{" ownmethod=Method "}";
		public ParserRule getRule() { return rule; }

		//"Collection" name=QualifiedName "{" ownmethod=Method "}"
		public Group getGroup() { return cGroup; }

		//"Collection"
		public Keyword getCollectionKeyword_0() { return cCollectionKeyword_0; }

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

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }

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

		//ownmethod=Method
		public Assignment getOwnmethodAssignment_3() { return cOwnmethodAssignment_3; }

		//Method
		public RuleCall getOwnmethodMethodParserRuleCall_3_0() { return cOwnmethodMethodParserRuleCall_3_0; }

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

	public class MethodElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Method");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cMethodKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_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 Assignment cListAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
		private final RuleCall cListFunctionParserRuleCall_3_0_0 = (RuleCall)cListAssignment_3_0.eContents().get(0);
		private final Assignment cListAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cListFunctionParserRuleCall_3_1_0 = (RuleCall)cListAssignment_3_1.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Assignment cOwnmethodAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
		private final RuleCall cOwnmethodMethodParserRuleCall_4_0_0 = (RuleCall)cOwnmethodAssignment_4_0.eContents().get(0);
		private final Assignment cOwnmethodAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cOwnmethodMethodParserRuleCall_4_1_0 = (RuleCall)cOwnmethodAssignment_4_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//Method:
		//
		//	"method" name=QualifiedName "{" (list+=Function list+=Function*)? (ownmethod+=Method ownmethod+=Method*)? "}";
		public ParserRule getRule() { return rule; }

		//"method" name=QualifiedName "{" (list+=Function list+=Function*)? (ownmethod+=Method ownmethod+=Method*)? "}"
		public Group getGroup() { return cGroup; }

		//"method"
		public Keyword getMethodKeyword_0() { return cMethodKeyword_0; }

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

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }

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

		//(list+=Function list+=Function*)?
		public Group getGroup_3() { return cGroup_3; }

		//list+=Function
		public Assignment getListAssignment_3_0() { return cListAssignment_3_0; }

		//Function
		public RuleCall getListFunctionParserRuleCall_3_0_0() { return cListFunctionParserRuleCall_3_0_0; }

		//list+=Function*
		public Assignment getListAssignment_3_1() { return cListAssignment_3_1; }

		//Function
		public RuleCall getListFunctionParserRuleCall_3_1_0() { return cListFunctionParserRuleCall_3_1_0; }

		//(ownmethod+=Method ownmethod+=Method*)?
		public Group getGroup_4() { return cGroup_4; }

		//ownmethod+=Method
		public Assignment getOwnmethodAssignment_4_0() { return cOwnmethodAssignment_4_0; }

		//Method
		public RuleCall getOwnmethodMethodParserRuleCall_4_0_0() { return cOwnmethodMethodParserRuleCall_4_0_0; }

		//ownmethod+=Method*
		public Assignment getOwnmethodAssignment_4_1() { return cOwnmethodAssignment_4_1; }

		//Method
		public RuleCall getOwnmethodMethodParserRuleCall_4_1_0() { return cOwnmethodMethodParserRuleCall_4_1_0; }

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

	public class FunctionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Function");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cFunctionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_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 Assignment cTypeAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
		private final RuleCall cTypeTypeParserRuleCall_3_0_0 = (RuleCall)cTypeAssignment_3_0.eContents().get(0);
		private final Assignment cTypeAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cTypeTypeParserRuleCall_3_1_0 = (RuleCall)cTypeAssignment_3_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Function:
		//
		//	"function" name=QualifiedName "{" (type+=Type type+=Type*)? "}";
		public ParserRule getRule() { return rule; }

		//"function" name=QualifiedName "{" (type+=Type type+=Type*)? "}"
		public Group getGroup() { return cGroup; }

		//"function"
		public Keyword getFunctionKeyword_0() { return cFunctionKeyword_0; }

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

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }

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

		//(type+=Type type+=Type*)?
		public Group getGroup_3() { return cGroup_3; }

		//type+=Type
		public Assignment getTypeAssignment_3_0() { return cTypeAssignment_3_0; }

		//Type
		public RuleCall getTypeTypeParserRuleCall_3_0_0() { return cTypeTypeParserRuleCall_3_0_0; }

		//type+=Type*
		public Assignment getTypeAssignment_3_1() { return cTypeAssignment_3_1; }

		//Type
		public RuleCall getTypeTypeParserRuleCall_3_1_0() { return cTypeTypeParserRuleCall_3_1_0; }

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

	public class TypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Type");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cTypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_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 cParentKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Assignment cParentTypeAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
		private final CrossReference cParentTypeTypeCrossReference_3_2_0 = (CrossReference)cParentTypeAssignment_3_2.eContents().get(0);
		private final RuleCall cParentTypeTypeQualifiedNameParserRuleCall_3_2_0_1 = (RuleCall)cParentTypeTypeCrossReference_3_2_0.eContents().get(1);
		private final Keyword cFieldsKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cLeftCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Assignment cOwnedFieldAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0);
		private final RuleCall cOwnedFieldFieldParserRuleCall_6_0_0 = (RuleCall)cOwnedFieldAssignment_6_0.eContents().get(0);
		private final Assignment cOwnedFieldAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cOwnedFieldFieldParserRuleCall_6_1_0 = (RuleCall)cOwnedFieldAssignment_6_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
		
		//Type:
		//
		//	"type" name=QualifiedName "{" ("parent" "=" parentType=[Type|QualifiedName])? "fields" "{" (ownedField+=Field
		//
		//	ownedField+=Field*)? "}" "}";
		public ParserRule getRule() { return rule; }

		//"type" name=QualifiedName "{" ("parent" "=" parentType=[Type|QualifiedName])? "fields" "{" (ownedField+=Field
		//
		//ownedField+=Field*)? "}" "}"
		public Group getGroup() { return cGroup; }

		//"type"
		public Keyword getTypeKeyword_0() { return cTypeKeyword_0; }

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

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }

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

		//("parent" "=" parentType=[Type|QualifiedName])?
		public Group getGroup_3() { return cGroup_3; }

		//"parent"
		public Keyword getParentKeyword_3_0() { return cParentKeyword_3_0; }

		//"="
		public Keyword getEqualsSignKeyword_3_1() { return cEqualsSignKeyword_3_1; }

		//parentType=[Type|QualifiedName]
		public Assignment getParentTypeAssignment_3_2() { return cParentTypeAssignment_3_2; }

		//[Type|QualifiedName]
		public CrossReference getParentTypeTypeCrossReference_3_2_0() { return cParentTypeTypeCrossReference_3_2_0; }

		//QualifiedName
		public RuleCall getParentTypeTypeQualifiedNameParserRuleCall_3_2_0_1() { return cParentTypeTypeQualifiedNameParserRuleCall_3_2_0_1; }

		//"fields"
		public Keyword getFieldsKeyword_4() { return cFieldsKeyword_4; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_5() { return cLeftCurlyBracketKeyword_5; }

		//(ownedField+=Field ownedField+=Field*)?
		public Group getGroup_6() { return cGroup_6; }

		//ownedField+=Field
		public Assignment getOwnedFieldAssignment_6_0() { return cOwnedFieldAssignment_6_0; }

		//Field
		public RuleCall getOwnedFieldFieldParserRuleCall_6_0_0() { return cOwnedFieldFieldParserRuleCall_6_0_0; }

		//ownedField+=Field*
		public Assignment getOwnedFieldAssignment_6_1() { return cOwnedFieldAssignment_6_1; }

		//Field
		public RuleCall getOwnedFieldFieldParserRuleCall_6_1_0() { return cOwnedFieldFieldParserRuleCall_6_1_0; }

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

		//"}"
		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
	}

	public class FieldElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Field");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cLookUpParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cTextFieldParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//Field:
		//
		//	LookUp | TextField;
		public ParserRule getRule() { return rule; }

		//LookUp | TextField
		public Alternatives getAlternatives() { return cAlternatives; }

		//LookUp
		public RuleCall getLookUpParserRuleCall_0() { return cLookUpParserRuleCall_0; }

		//TextField
		public RuleCall getTextFieldParserRuleCall_1() { return cTextFieldParserRuleCall_1; }
	}

	public class LookUpElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LookUp");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLookUpKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_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 cTypeKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Assignment cTypeAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
		private final CrossReference cTypeTypeCrossReference_3_2_0 = (CrossReference)cTypeAssignment_3_2.eContents().get(0);
		private final RuleCall cTypeTypeQualifiedNameParserRuleCall_3_2_0_1 = (RuleCall)cTypeTypeCrossReference_3_2_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cShowFieldKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cEqualsSignKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Assignment cShowFieldAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final CrossReference cShowFieldFieldCrossReference_4_2_0 = (CrossReference)cShowFieldAssignment_4_2.eContents().get(0);
		private final RuleCall cShowFieldFieldQualifiedNameParserRuleCall_4_2_0_1 = (RuleCall)cShowFieldFieldCrossReference_4_2_0.eContents().get(1);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//LookUp:
		//
		//	"LookUp" name=QualifiedName "{" ("type" "=" type=[Type|QualifiedName]) ("showField" "="
		//
		//	showField=[Field|QualifiedName]) "}";
		public ParserRule getRule() { return rule; }

		//"LookUp" name=QualifiedName "{" ("type" "=" type=[Type|QualifiedName]) ("showField" "=" showField=[Field|QualifiedName])
		//
		//"}"
		public Group getGroup() { return cGroup; }

		//"LookUp"
		public Keyword getLookUpKeyword_0() { return cLookUpKeyword_0; }

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

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }

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

		//"type" "=" type=[Type|QualifiedName]
		public Group getGroup_3() { return cGroup_3; }

		//"type"
		public Keyword getTypeKeyword_3_0() { return cTypeKeyword_3_0; }

		//"="
		public Keyword getEqualsSignKeyword_3_1() { return cEqualsSignKeyword_3_1; }

		//type=[Type|QualifiedName]
		public Assignment getTypeAssignment_3_2() { return cTypeAssignment_3_2; }

		//[Type|QualifiedName]
		public CrossReference getTypeTypeCrossReference_3_2_0() { return cTypeTypeCrossReference_3_2_0; }

		//QualifiedName
		public RuleCall getTypeTypeQualifiedNameParserRuleCall_3_2_0_1() { return cTypeTypeQualifiedNameParserRuleCall_3_2_0_1; }

		//"showField" "=" showField=[Field|QualifiedName]
		public Group getGroup_4() { return cGroup_4; }

		//"showField"
		public Keyword getShowFieldKeyword_4_0() { return cShowFieldKeyword_4_0; }

		//"="
		public Keyword getEqualsSignKeyword_4_1() { return cEqualsSignKeyword_4_1; }

		//showField=[Field|QualifiedName]
		public Assignment getShowFieldAssignment_4_2() { return cShowFieldAssignment_4_2; }

		//[Field|QualifiedName]
		public CrossReference getShowFieldFieldCrossReference_4_2_0() { return cShowFieldFieldCrossReference_4_2_0; }

		//QualifiedName
		public RuleCall getShowFieldFieldQualifiedNameParserRuleCall_4_2_0_1() { return cShowFieldFieldQualifiedNameParserRuleCall_4_2_0_1; }

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

	public class TextFieldElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TextField");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cTextKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cDisplayNameKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cEqualsSignKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cDisplayNameAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cDisplayNameSTRINGTerminalRuleCall_5_0 = (RuleCall)cDisplayNameAssignment_5.eContents().get(0);
		private final Keyword cPropertyKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Keyword cEqualsSignKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Assignment cPropertyAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cPropertySTRINGTerminalRuleCall_8_0 = (RuleCall)cPropertyAssignment_8.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
		
		//TextField:
		//
		//	"Text" name=QualifiedName "{" "displayName" "=" displayName=STRING "property" "=" property=STRING "}";
		public ParserRule getRule() { return rule; }

		//"Text" name=QualifiedName "{" "displayName" "=" displayName=STRING "property" "=" property=STRING "}"
		public Group getGroup() { return cGroup; }

		//"Text"
		public Keyword getTextKeyword_0() { return cTextKeyword_0; }

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

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }

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

		//"displayName"
		public Keyword getDisplayNameKeyword_3() { return cDisplayNameKeyword_3; }

		//"="
		public Keyword getEqualsSignKeyword_4() { return cEqualsSignKeyword_4; }

		//displayName=STRING
		public Assignment getDisplayNameAssignment_5() { return cDisplayNameAssignment_5; }

		//STRING
		public RuleCall getDisplayNameSTRINGTerminalRuleCall_5_0() { return cDisplayNameSTRINGTerminalRuleCall_5_0; }

		//"property"
		public Keyword getPropertyKeyword_6() { return cPropertyKeyword_6; }

		//"="
		public Keyword getEqualsSignKeyword_7() { return cEqualsSignKeyword_7; }

		//property=STRING
		public Assignment getPropertyAssignment_8() { return cPropertyAssignment_8; }

		//STRING
		public RuleCall getPropertySTRINGTerminalRuleCall_8_0() { return cPropertySTRINGTerminalRuleCall_8_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
	}

	public class QualifiedNameElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QualifiedName");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final RuleCall cIDTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
		
		//QualifiedName:
		//
		//	ID ("." ID)*;
		public ParserRule getRule() { return rule; }

		//ID ("." ID)*
		public Group getGroup() { return cGroup; }

		//ID
		public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }

		//("." ID)*
		public Group getGroup_1() { return cGroup_1; }

		//"."
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//ID
		public RuleCall getIDTerminalRuleCall_1_1() { return cIDTerminalRuleCall_1_1; }
	}
	
	
	private ContextElements pContext;
	private ContextUnitElements pContextUnit;
	private ApplicationElements pApplication;
	private CollectionElements pCollection;
	private MethodElements pMethod;
	private FunctionElements pFunction;
	private TypeElements pType;
	private FieldElements pField;
	private LookUpElements pLookUp;
	private TextFieldElements pTextField;
	private QualifiedNameElements pQualifiedName;
	
	private final Grammar grammar;

	private TerminalsGrammarAccess gaTerminals;

	@Inject
	public MyDsl6GrammarAccess(GrammarProvider grammarProvider,
		TerminalsGrammarAccess gaTerminals) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaTerminals = gaTerminals;
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("org.xtext.example.mydsl6.MyDsl6".equals(grammar.getName())) {
				return grammar;
			}
			List<Grammar> grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	
	public Grammar getGrammar() {
		return grammar;
	}
	

	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//Context:
	//
	//	"context" name=QualifiedName "{" app=Application "}";
	public ContextElements getContextAccess() {
		return (pContext != null) ? pContext : (pContext = new ContextElements());
	}
	
	public ParserRule getContextRule() {
		return getContextAccess().getRule();
	}

	//ContextUnit returns ContentextUnit:
	//
	//	Context | Application | Collection | Method | Function | Type | Field;
	public ContextUnitElements getContextUnitAccess() {
		return (pContextUnit != null) ? pContextUnit : (pContextUnit = new ContextUnitElements());
	}
	
	public ParserRule getContextUnitRule() {
		return getContextUnitAccess().getRule();
	}

	//Application returns WebApplication:
	//
	//	"Application" name=QualifiedName "{" collection+=Collection collection+=Collection* "}";
	public ApplicationElements getApplicationAccess() {
		return (pApplication != null) ? pApplication : (pApplication = new ApplicationElements());
	}
	
	public ParserRule getApplicationRule() {
		return getApplicationAccess().getRule();
	}

	//Collection:
	//
	//	"Collection" name=QualifiedName "{" ownmethod=Method "}";
	public CollectionElements getCollectionAccess() {
		return (pCollection != null) ? pCollection : (pCollection = new CollectionElements());
	}
	
	public ParserRule getCollectionRule() {
		return getCollectionAccess().getRule();
	}

	//Method:
	//
	//	"method" name=QualifiedName "{" (list+=Function list+=Function*)? (ownmethod+=Method ownmethod+=Method*)? "}";
	public MethodElements getMethodAccess() {
		return (pMethod != null) ? pMethod : (pMethod = new MethodElements());
	}
	
	public ParserRule getMethodRule() {
		return getMethodAccess().getRule();
	}

	//Function:
	//
	//	"function" name=QualifiedName "{" (type+=Type type+=Type*)? "}";
	public FunctionElements getFunctionAccess() {
		return (pFunction != null) ? pFunction : (pFunction = new FunctionElements());
	}
	
	public ParserRule getFunctionRule() {
		return getFunctionAccess().getRule();
	}

	//Type:
	//
	//	"type" name=QualifiedName "{" ("parent" "=" parentType=[Type|QualifiedName])? "fields" "{" (ownedField+=Field
	//
	//	ownedField+=Field*)? "}" "}";
	public TypeElements getTypeAccess() {
		return (pType != null) ? pType : (pType = new TypeElements());
	}
	
	public ParserRule getTypeRule() {
		return getTypeAccess().getRule();
	}

	//Field:
	//
	//	LookUp | TextField;
	public FieldElements getFieldAccess() {
		return (pField != null) ? pField : (pField = new FieldElements());
	}
	
	public ParserRule getFieldRule() {
		return getFieldAccess().getRule();
	}

	//LookUp:
	//
	//	"LookUp" name=QualifiedName "{" ("type" "=" type=[Type|QualifiedName]) ("showField" "="
	//
	//	showField=[Field|QualifiedName]) "}";
	public LookUpElements getLookUpAccess() {
		return (pLookUp != null) ? pLookUp : (pLookUp = new LookUpElements());
	}
	
	public ParserRule getLookUpRule() {
		return getLookUpAccess().getRule();
	}

	//TextField:
	//
	//	"Text" name=QualifiedName "{" "displayName" "=" displayName=STRING "property" "=" property=STRING "}";
	public TextFieldElements getTextFieldAccess() {
		return (pTextField != null) ? pTextField : (pTextField = new TextFieldElements());
	}
	
	public ParserRule getTextFieldRule() {
		return getTextFieldAccess().getRule();
	}

	//QualifiedName:
	//
	//	ID ("." ID)*;
	public QualifiedNameElements getQualifiedNameAccess() {
		return (pQualifiedName != null) ? pQualifiedName : (pQualifiedName = new QualifiedNameElements());
	}
	
	public ParserRule getQualifiedNameRule() {
		return getQualifiedNameAccess().getRule();
	}

	//terminal ID:
	//
	//	"^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
	public TerminalRule getIDRule() {
		return gaTerminals.getIDRule();
	} 

	//terminal INT returns ecore::EInt:
	//
	//	"0".."9"+;
	public TerminalRule getINTRule() {
		return gaTerminals.getINTRule();
	} 

	//terminal STRING:
	//
	//	"\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" |
	//
	//	"n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'";
	public TerminalRule getSTRINGRule() {
		return gaTerminals.getSTRINGRule();
	} 

	//terminal ML_COMMENT:
	//
	//	"/ *"->"* /";
	public TerminalRule getML_COMMENTRule() {
		return gaTerminals.getML_COMMENTRule();
	} 

	//terminal SL_COMMENT:
	//
	//	"//" !("\n" | "\r")* ("\r"? "\n")?;
	public TerminalRule getSL_COMMENTRule() {
		return gaTerminals.getSL_COMMENTRule();
	} 

	//terminal WS:
	//
	//	(" " | "\t" | "\r" | "\n")+;
	public TerminalRule getWSRule() {
		return gaTerminals.getWSRule();
	} 

	//terminal ANY_OTHER:
	//
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaTerminals.getANY_OTHERRule();
	} 
}
