/*
 * generated by Xtext 2.26.0
 */
package org.xtext.example.mydsl.services;

import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.List;
import org.eclipse.xtext.Action;
import org.eclipse.xtext.Alternatives;
import org.eclipse.xtext.Assignment;
import org.eclipse.xtext.CrossReference;
import org.eclipse.xtext.Grammar;
import org.eclipse.xtext.GrammarUtil;
import org.eclipse.xtext.Group;
import org.eclipse.xtext.Keyword;
import org.eclipse.xtext.ParserRule;
import org.eclipse.xtext.RuleCall;
import org.eclipse.xtext.TerminalRule;
import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
import org.eclipse.xtext.service.AbstractElementFinder;
import org.eclipse.xtext.service.GrammarProvider;

@Singleton
public class MyDslGrammarAccess extends AbstractElementFinder.AbstractGrammarElementFinder {
	
	public class ProblemSpecificationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.ProblemSpecification");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cProblemSpecificationAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cProblemSpecificationKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cWorldModelKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cColonKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cWorldModelAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cWorldModelWorldModelParserRuleCall_5_0 = (RuleCall)cWorldModelAssignment_5.eContents().get(0);
		private final Assignment cWorldModelAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cWorldModelWorldModelParserRuleCall_6_0 = (RuleCall)cWorldModelAssignment_6.eContents().get(0);
		private final Keyword cTasksModelKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cColonKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Assignment cTasksModelAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cTasksModelTasksModelParserRuleCall_9_0 = (RuleCall)cTasksModelAssignment_9.eContents().get(0);
		private final Assignment cTasksModelAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cTasksModelTasksModelParserRuleCall_10_0 = (RuleCall)cTasksModelAssignment_10.eContents().get(0);
		private final Keyword cRobotsModelKeyword_11 = (Keyword)cGroup.eContents().get(11);
		private final Keyword cColonKeyword_12 = (Keyword)cGroup.eContents().get(12);
		private final Assignment cRobotsModelAssignment_13 = (Assignment)cGroup.eContents().get(13);
		private final RuleCall cRobotsModelRobotsModelParserRuleCall_13_0 = (RuleCall)cRobotsModelAssignment_13.eContents().get(0);
		private final Keyword cMissionKeyword_14 = (Keyword)cGroup.eContents().get(14);
		private final Keyword cColonKeyword_15 = (Keyword)cGroup.eContents().get(15);
		private final Assignment cMissionAssignment_16 = (Assignment)cGroup.eContents().get(16);
		private final RuleCall cMissionMissionParserRuleCall_16_0 = (RuleCall)cMissionAssignment_16.eContents().get(0);
		private final Assignment cMissionAssignment_17 = (Assignment)cGroup.eContents().get(17);
		private final RuleCall cMissionMissionParserRuleCall_17_0 = (RuleCall)cMissionAssignment_17.eContents().get(0);
		private final Group cGroup_18 = (Group)cGroup.eContents().get(18);
		private final Assignment cQosAssignment_18_0 = (Assignment)cGroup_18.eContents().get(0);
		private final RuleCall cQosQoSParserRuleCall_18_0_0 = (RuleCall)cQosAssignment_18_0.eContents().get(0);
		private final Assignment cQosAssignment_18_1 = (Assignment)cGroup_18.eContents().get(1);
		private final RuleCall cQosQoSParserRuleCall_18_1_0 = (RuleCall)cQosAssignment_18_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_19 = (Keyword)cGroup.eContents().get(19);
		
		//ProblemSpecification returns ProblemSpecification:
		//    {ProblemSpecification}
		//    'ProblemSpecification'
		//    '{'
		//        'WorldModel' ':' worldModel+=WorldModel ( worldModel+=WorldModel)*
		//        'TasksModel' ':' tasksModel+=TasksModel ( tasksModel+=TasksModel)*
		//        'RobotsModel' ':' robotsModel=RobotsModel
		//        'Mission' ':' mission+=Mission ( mission+=Mission)*
		//        //('QoS' ':' qos+=QoS ( qos+=QoS)*)?
		//        (qos+=QoS ( qos+=QoS)*)?
		//    '}';
		@Override public ParserRule getRule() { return rule; }
		
		//{ProblemSpecification}
		//'ProblemSpecification'
		//'{'
		//    'WorldModel' ':' worldModel+=WorldModel ( worldModel+=WorldModel)*
		//    'TasksModel' ':' tasksModel+=TasksModel ( tasksModel+=TasksModel)*
		//    'RobotsModel' ':' robotsModel=RobotsModel
		//    'Mission' ':' mission+=Mission ( mission+=Mission)*
		//    //('QoS' ':' qos+=QoS ( qos+=QoS)*)?
		//    (qos+=QoS ( qos+=QoS)*)?
		//'}'
		public Group getGroup() { return cGroup; }
		
		//{ProblemSpecification}
		public Action getProblemSpecificationAction_0() { return cProblemSpecificationAction_0; }
		
		//'ProblemSpecification'
		public Keyword getProblemSpecificationKeyword_1() { return cProblemSpecificationKeyword_1; }
		
		//'{'
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
		
		//'WorldModel'
		public Keyword getWorldModelKeyword_3() { return cWorldModelKeyword_3; }
		
		//':'
		public Keyword getColonKeyword_4() { return cColonKeyword_4; }
		
		//worldModel+=WorldModel
		public Assignment getWorldModelAssignment_5() { return cWorldModelAssignment_5; }
		
		//WorldModel
		public RuleCall getWorldModelWorldModelParserRuleCall_5_0() { return cWorldModelWorldModelParserRuleCall_5_0; }
		
		//( worldModel+=WorldModel)*
		public Assignment getWorldModelAssignment_6() { return cWorldModelAssignment_6; }
		
		//WorldModel
		public RuleCall getWorldModelWorldModelParserRuleCall_6_0() { return cWorldModelWorldModelParserRuleCall_6_0; }
		
		//'TasksModel'
		public Keyword getTasksModelKeyword_7() { return cTasksModelKeyword_7; }
		
		//':'
		public Keyword getColonKeyword_8() { return cColonKeyword_8; }
		
		//tasksModel+=TasksModel
		public Assignment getTasksModelAssignment_9() { return cTasksModelAssignment_9; }
		
		//TasksModel
		public RuleCall getTasksModelTasksModelParserRuleCall_9_0() { return cTasksModelTasksModelParserRuleCall_9_0; }
		
		//( tasksModel+=TasksModel)*
		public Assignment getTasksModelAssignment_10() { return cTasksModelAssignment_10; }
		
		//TasksModel
		public RuleCall getTasksModelTasksModelParserRuleCall_10_0() { return cTasksModelTasksModelParserRuleCall_10_0; }
		
		//'RobotsModel'
		public Keyword getRobotsModelKeyword_11() { return cRobotsModelKeyword_11; }
		
		//':'
		public Keyword getColonKeyword_12() { return cColonKeyword_12; }
		
		//robotsModel=RobotsModel
		public Assignment getRobotsModelAssignment_13() { return cRobotsModelAssignment_13; }
		
		//RobotsModel
		public RuleCall getRobotsModelRobotsModelParserRuleCall_13_0() { return cRobotsModelRobotsModelParserRuleCall_13_0; }
		
		//'Mission'
		public Keyword getMissionKeyword_14() { return cMissionKeyword_14; }
		
		//':'
		public Keyword getColonKeyword_15() { return cColonKeyword_15; }
		
		//mission+=Mission
		public Assignment getMissionAssignment_16() { return cMissionAssignment_16; }
		
		//Mission
		public RuleCall getMissionMissionParserRuleCall_16_0() { return cMissionMissionParserRuleCall_16_0; }
		
		//( mission+=Mission)*
		public Assignment getMissionAssignment_17() { return cMissionAssignment_17; }
		
		//Mission
		public RuleCall getMissionMissionParserRuleCall_17_0() { return cMissionMissionParserRuleCall_17_0; }
		
		////('QoS' ':' qos+=QoS ( qos+=QoS)*)?
		//(qos+=QoS ( qos+=QoS)*)?
		public Group getGroup_18() { return cGroup_18; }
		
		//qos+=QoS
		public Assignment getQosAssignment_18_0() { return cQosAssignment_18_0; }
		
		//QoS
		public RuleCall getQosQoSParserRuleCall_18_0_0() { return cQosQoSParserRuleCall_18_0_0; }
		
		//( qos+=QoS)*
		public Assignment getQosAssignment_18_1() { return cQosAssignment_18_1; }
		
		//QoS
		public RuleCall getQosQoSParserRuleCall_18_1_0() { return cQosQoSParserRuleCall_18_1_0; }
		
		//'}'
		public Keyword getRightCurlyBracketKeyword_19() { return cRightCurlyBracketKeyword_19; }
	}
	public class TasksModelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.TasksModel");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cAtomicTaskParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cCompoundTaskParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		///// --------- Tasks
		//TasksModel returns TasksModel:
		//    AtomicTask | CompoundTask;
		@Override public ParserRule getRule() { return rule; }
		
		//AtomicTask | CompoundTask
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//AtomicTask
		public RuleCall getAtomicTaskParserRuleCall_0() { return cAtomicTaskParserRuleCall_0; }
		
		//CompoundTask
		public RuleCall getCompoundTaskParserRuleCall_1() { return cCompoundTaskParserRuleCall_1; }
	}
	public class AtomicTaskElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.AtomicTask");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cAtomicTaskAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cRobotsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cRobotsEIntParserRuleCall_3_0 = (RuleCall)cRobotsAssignment_3.eContents().get(0);
		private final Keyword cRobotsKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cNeededKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cAtKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cLocationKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Assignment cLocAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2);
		private final CrossReference cLocLocationCrossReference_6_2_0 = (CrossReference)cLocAssignment_6_2.eContents().get(0);
		private final RuleCall cLocLocationEStringParserRuleCall_6_2_0_1 = (RuleCall)cLocLocationCrossReference_6_2_0.eContents().get(1);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cWithKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Keyword cCriticalityKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
		private final Keyword cColonKeyword_7_2 = (Keyword)cGroup_7.eContents().get(2);
		private final Assignment cCriticalityAssignment_7_3 = (Assignment)cGroup_7.eContents().get(3);
		private final RuleCall cCriticalityEBooleanParserRuleCall_7_3_0 = (RuleCall)cCriticalityAssignment_7_3.eContents().get(0);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cLeftParenthesisKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Keyword cDescriptionKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1);
		private final Keyword cColonKeyword_8_2 = (Keyword)cGroup_8.eContents().get(2);
		private final Assignment cDescriptionAssignment_8_3 = (Assignment)cGroup_8.eContents().get(3);
		private final RuleCall cDescriptionEStringParserRuleCall_8_3_0 = (RuleCall)cDescriptionAssignment_8_3.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_8_4 = (Keyword)cGroup_8.eContents().get(4);
		
		//AtomicTask returns AtomicTask:
		//    {AtomicTask}
		//    name=EString ':'
		//        robots=EInt 'robots' 'needed'
		//        ('at' 'location' loc=[Location|EString])?
		//        ('with' 'criticality'':'criticality=EBoolean)?
		//        ('(''description' ':' description=EString')')?
		//        ;
		@Override public ParserRule getRule() { return rule; }
		
		//{AtomicTask}
		//name=EString ':'
		//    robots=EInt 'robots' 'needed'
		//    ('at' 'location' loc=[Location|EString])?
		//    ('with' 'criticality'':'criticality=EBoolean)?
		//    ('(''description' ':' description=EString')')?
		public Group getGroup() { return cGroup; }
		
		//{AtomicTask}
		public Action getAtomicTaskAction_0() { return cAtomicTaskAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//robots=EInt
		public Assignment getRobotsAssignment_3() { return cRobotsAssignment_3; }
		
		//EInt
		public RuleCall getRobotsEIntParserRuleCall_3_0() { return cRobotsEIntParserRuleCall_3_0; }
		
		//'robots'
		public Keyword getRobotsKeyword_4() { return cRobotsKeyword_4; }
		
		//'needed'
		public Keyword getNeededKeyword_5() { return cNeededKeyword_5; }
		
		//('at' 'location' loc=[Location|EString])?
		public Group getGroup_6() { return cGroup_6; }
		
		//'at'
		public Keyword getAtKeyword_6_0() { return cAtKeyword_6_0; }
		
		//'location'
		public Keyword getLocationKeyword_6_1() { return cLocationKeyword_6_1; }
		
		//loc=[Location|EString]
		public Assignment getLocAssignment_6_2() { return cLocAssignment_6_2; }
		
		//[Location|EString]
		public CrossReference getLocLocationCrossReference_6_2_0() { return cLocLocationCrossReference_6_2_0; }
		
		//EString
		public RuleCall getLocLocationEStringParserRuleCall_6_2_0_1() { return cLocLocationEStringParserRuleCall_6_2_0_1; }
		
		//('with' 'criticality'':'criticality=EBoolean)?
		public Group getGroup_7() { return cGroup_7; }
		
		//'with'
		public Keyword getWithKeyword_7_0() { return cWithKeyword_7_0; }
		
		//'criticality'
		public Keyword getCriticalityKeyword_7_1() { return cCriticalityKeyword_7_1; }
		
		//':'
		public Keyword getColonKeyword_7_2() { return cColonKeyword_7_2; }
		
		//criticality=EBoolean
		public Assignment getCriticalityAssignment_7_3() { return cCriticalityAssignment_7_3; }
		
		//EBoolean
		public RuleCall getCriticalityEBooleanParserRuleCall_7_3_0() { return cCriticalityEBooleanParserRuleCall_7_3_0; }
		
		//('(''description' ':' description=EString')')?
		public Group getGroup_8() { return cGroup_8; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_8_0() { return cLeftParenthesisKeyword_8_0; }
		
		//'description'
		public Keyword getDescriptionKeyword_8_1() { return cDescriptionKeyword_8_1; }
		
		//':'
		public Keyword getColonKeyword_8_2() { return cColonKeyword_8_2; }
		
		//description=EString
		public Assignment getDescriptionAssignment_8_3() { return cDescriptionAssignment_8_3; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_8_3_0() { return cDescriptionEStringParserRuleCall_8_3_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_8_4() { return cRightParenthesisKeyword_8_4; }
	}
	public class CompoundTaskElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.CompoundTask");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCompoundTaskAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cSubtasksKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cLeftSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cCanDoTaskAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final CrossReference cCanDoTaskTasksModelCrossReference_5_0 = (CrossReference)cCanDoTaskAssignment_5.eContents().get(0);
		private final RuleCall cCanDoTaskTasksModelEStringParserRuleCall_5_0_1 = (RuleCall)cCanDoTaskTasksModelCrossReference_5_0.eContents().get(1);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cCommaKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cCanDoTaskAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final CrossReference cCanDoTaskTasksModelCrossReference_6_1_0 = (CrossReference)cCanDoTaskAssignment_6_1.eContents().get(0);
		private final RuleCall cCanDoTaskTasksModelEStringParserRuleCall_6_1_0_1 = (RuleCall)cCanDoTaskTasksModelCrossReference_6_1_0.eContents().get(1);
		private final Keyword cRightSquareBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cAtKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Assignment cLocationAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
		private final CrossReference cLocationLocationCrossReference_8_1_0 = (CrossReference)cLocationAssignment_8_1.eContents().get(0);
		private final RuleCall cLocationLocationEStringParserRuleCall_8_1_0_1 = (RuleCall)cLocationLocationCrossReference_8_1_0.eContents().get(1);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cWithKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Keyword cCriticalityKeyword_9_1 = (Keyword)cGroup_9.eContents().get(1);
		private final Keyword cColonKeyword_9_2 = (Keyword)cGroup_9.eContents().get(2);
		private final Assignment cCriticalityAssignment_9_3 = (Assignment)cGroup_9.eContents().get(3);
		private final RuleCall cCriticalityEBooleanParserRuleCall_9_3_0 = (RuleCall)cCriticalityAssignment_9_3.eContents().get(0);
		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
		private final Keyword cOrderedKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
		private final Keyword cColonKeyword_10_1 = (Keyword)cGroup_10.eContents().get(1);
		private final Assignment cOrderedAssignment_10_2 = (Assignment)cGroup_10.eContents().get(2);
		private final RuleCall cOrderedEBooleanParserRuleCall_10_2_0 = (RuleCall)cOrderedAssignment_10_2.eContents().get(0);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Keyword cConsecutiveKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
		private final Keyword cColonKeyword_11_1 = (Keyword)cGroup_11.eContents().get(1);
		private final Assignment cConsecutiveAssignment_11_2 = (Assignment)cGroup_11.eContents().get(2);
		private final RuleCall cConsecutiveEBooleanParserRuleCall_11_2_0 = (RuleCall)cConsecutiveAssignment_11_2.eContents().get(0);
		private final Group cGroup_12 = (Group)cGroup.eContents().get(12);
		private final Keyword cLeftParenthesisKeyword_12_0 = (Keyword)cGroup_12.eContents().get(0);
		private final Keyword cDescriptionKeyword_12_1 = (Keyword)cGroup_12.eContents().get(1);
		private final Keyword cColonKeyword_12_2 = (Keyword)cGroup_12.eContents().get(2);
		private final Assignment cDescriptionAssignment_12_3 = (Assignment)cGroup_12.eContents().get(3);
		private final RuleCall cDescriptionEStringParserRuleCall_12_3_0 = (RuleCall)cDescriptionAssignment_12_3.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_12_4 = (Keyword)cGroup_12.eContents().get(4);
		
		//CompoundTask returns CompoundTask:
		//    {CompoundTask}
		//    name=EString ':'
		//        //('location' location=[Location|EString])?
		//        'subtasks' '['
		//         canDoTask+=[TasksModel|EString] ("," canDoTask+=[TasksModel|EString])*
		//        ']'
		//        ('at' location=[Location|EString])?
		//        ('with' 'criticality'':'criticality=EBoolean)?
		//        ('ordered'':'ordered=EBoolean)?
		//        ('consecutive'':'consecutive=EBoolean)?
		//        ('(''description' ':' description=EString')')?
		//        ;
		@Override public ParserRule getRule() { return rule; }
		
		//{CompoundTask}
		//name=EString ':'
		//    //('location' location=[Location|EString])?
		//    'subtasks' '['
		//     canDoTask+=[TasksModel|EString] ("," canDoTask+=[TasksModel|EString])*
		//    ']'
		//    ('at' location=[Location|EString])?
		//    ('with' 'criticality'':'criticality=EBoolean)?
		//    ('ordered'':'ordered=EBoolean)?
		//    ('consecutive'':'consecutive=EBoolean)?
		//    ('(''description' ':' description=EString')')?
		public Group getGroup() { return cGroup; }
		
		//{CompoundTask}
		public Action getCompoundTaskAction_0() { return cCompoundTaskAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		////('location' location=[Location|EString])?
		//'subtasks'
		public Keyword getSubtasksKeyword_3() { return cSubtasksKeyword_3; }
		
		//'['
		public Keyword getLeftSquareBracketKeyword_4() { return cLeftSquareBracketKeyword_4; }
		
		//canDoTask+=[TasksModel|EString]
		public Assignment getCanDoTaskAssignment_5() { return cCanDoTaskAssignment_5; }
		
		//[TasksModel|EString]
		public CrossReference getCanDoTaskTasksModelCrossReference_5_0() { return cCanDoTaskTasksModelCrossReference_5_0; }
		
		//EString
		public RuleCall getCanDoTaskTasksModelEStringParserRuleCall_5_0_1() { return cCanDoTaskTasksModelEStringParserRuleCall_5_0_1; }
		
		//("," canDoTask+=[TasksModel|EString])*
		public Group getGroup_6() { return cGroup_6; }
		
		//","
		public Keyword getCommaKeyword_6_0() { return cCommaKeyword_6_0; }
		
		//canDoTask+=[TasksModel|EString]
		public Assignment getCanDoTaskAssignment_6_1() { return cCanDoTaskAssignment_6_1; }
		
		//[TasksModel|EString]
		public CrossReference getCanDoTaskTasksModelCrossReference_6_1_0() { return cCanDoTaskTasksModelCrossReference_6_1_0; }
		
		//EString
		public RuleCall getCanDoTaskTasksModelEStringParserRuleCall_6_1_0_1() { return cCanDoTaskTasksModelEStringParserRuleCall_6_1_0_1; }
		
		//']'
		public Keyword getRightSquareBracketKeyword_7() { return cRightSquareBracketKeyword_7; }
		
		//('at' location=[Location|EString])?
		public Group getGroup_8() { return cGroup_8; }
		
		//'at'
		public Keyword getAtKeyword_8_0() { return cAtKeyword_8_0; }
		
		//location=[Location|EString]
		public Assignment getLocationAssignment_8_1() { return cLocationAssignment_8_1; }
		
		//[Location|EString]
		public CrossReference getLocationLocationCrossReference_8_1_0() { return cLocationLocationCrossReference_8_1_0; }
		
		//EString
		public RuleCall getLocationLocationEStringParserRuleCall_8_1_0_1() { return cLocationLocationEStringParserRuleCall_8_1_0_1; }
		
		//('with' 'criticality'':'criticality=EBoolean)?
		public Group getGroup_9() { return cGroup_9; }
		
		//'with'
		public Keyword getWithKeyword_9_0() { return cWithKeyword_9_0; }
		
		//'criticality'
		public Keyword getCriticalityKeyword_9_1() { return cCriticalityKeyword_9_1; }
		
		//':'
		public Keyword getColonKeyword_9_2() { return cColonKeyword_9_2; }
		
		//criticality=EBoolean
		public Assignment getCriticalityAssignment_9_3() { return cCriticalityAssignment_9_3; }
		
		//EBoolean
		public RuleCall getCriticalityEBooleanParserRuleCall_9_3_0() { return cCriticalityEBooleanParserRuleCall_9_3_0; }
		
		//('ordered'':'ordered=EBoolean)?
		public Group getGroup_10() { return cGroup_10; }
		
		//'ordered'
		public Keyword getOrderedKeyword_10_0() { return cOrderedKeyword_10_0; }
		
		//':'
		public Keyword getColonKeyword_10_1() { return cColonKeyword_10_1; }
		
		//ordered=EBoolean
		public Assignment getOrderedAssignment_10_2() { return cOrderedAssignment_10_2; }
		
		//EBoolean
		public RuleCall getOrderedEBooleanParserRuleCall_10_2_0() { return cOrderedEBooleanParserRuleCall_10_2_0; }
		
		//('consecutive'':'consecutive=EBoolean)?
		public Group getGroup_11() { return cGroup_11; }
		
		//'consecutive'
		public Keyword getConsecutiveKeyword_11_0() { return cConsecutiveKeyword_11_0; }
		
		//':'
		public Keyword getColonKeyword_11_1() { return cColonKeyword_11_1; }
		
		//consecutive=EBoolean
		public Assignment getConsecutiveAssignment_11_2() { return cConsecutiveAssignment_11_2; }
		
		//EBoolean
		public RuleCall getConsecutiveEBooleanParserRuleCall_11_2_0() { return cConsecutiveEBooleanParserRuleCall_11_2_0; }
		
		//('(''description' ':' description=EString')')?
		public Group getGroup_12() { return cGroup_12; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_12_0() { return cLeftParenthesisKeyword_12_0; }
		
		//'description'
		public Keyword getDescriptionKeyword_12_1() { return cDescriptionKeyword_12_1; }
		
		//':'
		public Keyword getColonKeyword_12_2() { return cColonKeyword_12_2; }
		
		//description=EString
		public Assignment getDescriptionAssignment_12_3() { return cDescriptionAssignment_12_3; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_12_3_0() { return cDescriptionEStringParserRuleCall_12_3_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_12_4() { return cRightParenthesisKeyword_12_4; }
	}
	public class WorldModelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.WorldModel");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cLocationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cPathsParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		///// --------- World model
		//WorldModel returns WorldModel:
		//        Location | Paths ;
		@Override public ParserRule getRule() { return rule; }
		
		//Location | Paths
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//Location
		public RuleCall getLocationParserRuleCall_0() { return cLocationParserRuleCall_0; }
		
		//Paths
		public RuleCall getPathsParserRuleCall_1() { return cPathsParserRuleCall_1; }
	}
	public class LocationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.Location");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cLocationAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cLeftParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cXKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cXAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cXEDoubleParserRuleCall_5_0 = (RuleCall)cXAssignment_5.eContents().get(0);
		private final Keyword cYKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cYAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cYEDoubleParserRuleCall_7_0 = (RuleCall)cYAssignment_7.eContents().get(0);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cDescriptionKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Assignment cDescriptionAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
		private final RuleCall cDescriptionEStringParserRuleCall_8_1_0 = (RuleCall)cDescriptionAssignment_8_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_9 = (Keyword)cGroup.eContents().get(9);
		
		//Location returns Location:
		//    {Location}
		//    name=EString ':'
		//    '('
		//        'x' x=EDouble
		//        'y' y=EDouble
		//        ('description' description=EString)?
		//    ')';
		@Override public ParserRule getRule() { return rule; }
		
		//{Location}
		//name=EString ':'
		//'('
		//    'x' x=EDouble
		//    'y' y=EDouble
		//    ('description' description=EString)?
		//')'
		public Group getGroup() { return cGroup; }
		
		//{Location}
		public Action getLocationAction_0() { return cLocationAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_3() { return cLeftParenthesisKeyword_3; }
		
		//'x'
		public Keyword getXKeyword_4() { return cXKeyword_4; }
		
		//x=EDouble
		public Assignment getXAssignment_5() { return cXAssignment_5; }
		
		//EDouble
		public RuleCall getXEDoubleParserRuleCall_5_0() { return cXEDoubleParserRuleCall_5_0; }
		
		//'y'
		public Keyword getYKeyword_6() { return cYKeyword_6; }
		
		//y=EDouble
		public Assignment getYAssignment_7() { return cYAssignment_7; }
		
		//EDouble
		public RuleCall getYEDoubleParserRuleCall_7_0() { return cYEDoubleParserRuleCall_7_0; }
		
		//('description' description=EString)?
		public Group getGroup_8() { return cGroup_8; }
		
		//'description'
		public Keyword getDescriptionKeyword_8_0() { return cDescriptionKeyword_8_0; }
		
		//description=EString
		public Assignment getDescriptionAssignment_8_1() { return cDescriptionAssignment_8_1; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_8_1_0() { return cDescriptionEStringParserRuleCall_8_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_9() { return cRightParenthesisKeyword_9; }
	}
	public class PathsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.Paths");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cPathsAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cLoc1Assignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cLoc1LocationCrossReference_1_0 = (CrossReference)cLoc1Assignment_1.eContents().get(0);
		private final RuleCall cLoc1LocationEStringParserRuleCall_1_0_1 = (RuleCall)cLoc1LocationCrossReference_1_0.eContents().get(1);
		private final Keyword cToKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cLoc2Assignment_3 = (Assignment)cGroup.eContents().get(3);
		private final CrossReference cLoc2LocationCrossReference_3_0 = (CrossReference)cLoc2Assignment_3.eContents().get(0);
		private final RuleCall cLoc2LocationEStringParserRuleCall_3_0_1 = (RuleCall)cLoc2LocationCrossReference_3_0.eContents().get(1);
		private final Keyword cCommaKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cDistanceKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cDistanceAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cDistanceEDoubleParserRuleCall_6_0 = (RuleCall)cDistanceAssignment_6.eContents().get(0);
		
		//Paths returns Paths:
		//    {Paths}
		//        loc1=[Location|EString] 'to'
		//         loc2=[Location|EString] ','
		//        'distance' distance=EDouble;
		@Override public ParserRule getRule() { return rule; }
		
		//{Paths}
		//    loc1=[Location|EString] 'to'
		//     loc2=[Location|EString] ','
		//    'distance' distance=EDouble
		public Group getGroup() { return cGroup; }
		
		//{Paths}
		public Action getPathsAction_0() { return cPathsAction_0; }
		
		//loc1=[Location|EString]
		public Assignment getLoc1Assignment_1() { return cLoc1Assignment_1; }
		
		//[Location|EString]
		public CrossReference getLoc1LocationCrossReference_1_0() { return cLoc1LocationCrossReference_1_0; }
		
		//EString
		public RuleCall getLoc1LocationEStringParserRuleCall_1_0_1() { return cLoc1LocationEStringParserRuleCall_1_0_1; }
		
		//'to'
		public Keyword getToKeyword_2() { return cToKeyword_2; }
		
		//loc2=[Location|EString]
		public Assignment getLoc2Assignment_3() { return cLoc2Assignment_3; }
		
		//[Location|EString]
		public CrossReference getLoc2LocationCrossReference_3_0() { return cLoc2LocationCrossReference_3_0; }
		
		//EString
		public RuleCall getLoc2LocationEStringParserRuleCall_3_0_1() { return cLoc2LocationEStringParserRuleCall_3_0_1; }
		
		//','
		public Keyword getCommaKeyword_4() { return cCommaKeyword_4; }
		
		//'distance'
		public Keyword getDistanceKeyword_5() { return cDistanceKeyword_5; }
		
		//distance=EDouble
		public Assignment getDistanceAssignment_6() { return cDistanceAssignment_6; }
		
		//EDouble
		public RuleCall getDistanceEDoubleParserRuleCall_6_0() { return cDistanceEDoubleParserRuleCall_6_0; }
	}
	public class RobotsModelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.RobotsModel");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cRobotsKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cRobotsAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cRobotsRobotParserRuleCall_2_0 = (RuleCall)cRobotsAssignment_2.eContents().get(0);
		private final Assignment cRobotsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cRobotsRobotParserRuleCall_3_0 = (RuleCall)cRobotsAssignment_3.eContents().get(0);
		
		///// ----------- Robots
		//RobotsModel returns RobotsModel:
		//        //'capabilities' ':' capability+=Capability (capability+=Capability)*
		//        'robots' ':' robots+=Robot (robots+=Robot)*
		//        ;
		@Override public ParserRule getRule() { return rule; }
		
		////'capabilities' ':' capability+=Capability (capability+=Capability)*
		//'robots' ':' robots+=Robot (robots+=Robot)*
		public Group getGroup() { return cGroup; }
		
		////'capabilities' ':' capability+=Capability (capability+=Capability)*
		//'robots'
		public Keyword getRobotsKeyword_0() { return cRobotsKeyword_0; }
		
		//':'
		public Keyword getColonKeyword_1() { return cColonKeyword_1; }
		
		//robots+=Robot
		public Assignment getRobotsAssignment_2() { return cRobotsAssignment_2; }
		
		//Robot
		public RuleCall getRobotsRobotParserRuleCall_2_0() { return cRobotsRobotParserRuleCall_2_0; }
		
		//(robots+=Robot)*
		public Assignment getRobotsAssignment_3() { return cRobotsAssignment_3; }
		
		//Robot
		public RuleCall getRobotsRobotParserRuleCall_3_0() { return cRobotsRobotParserRuleCall_3_0; }
	}
	public class CapabilityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.Capability");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCapabilityAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cCanKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cDoKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cAtomicKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Keyword cTasksKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cAtAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final CrossReference cAtAtomicTaskCrossReference_7_0 = (CrossReference)cAtAssignment_7.eContents().get(0);
		private final RuleCall cAtAtomicTaskEStringParserRuleCall_7_0_1 = (RuleCall)cAtAtomicTaskCrossReference_7_0.eContents().get(1);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cCommaKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Assignment cAtAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
		private final CrossReference cAtAtomicTaskCrossReference_8_1_0 = (CrossReference)cAtAssignment_8_1.eContents().get(0);
		private final RuleCall cAtAtomicTaskEStringParserRuleCall_8_1_0_1 = (RuleCall)cAtAtomicTaskCrossReference_8_1_0.eContents().get(1);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cLeftParenthesisKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Assignment cDescriptionAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
		private final RuleCall cDescriptionEStringParserRuleCall_9_1_0 = (RuleCall)cDescriptionAssignment_9_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_9_2 = (Keyword)cGroup_9.eContents().get(2);
		
		//Capability returns Capability:
		//    {Capability}
		//        name=EString  ':' 'can' 'do' 'atomic' 'tasks' at+=[AtomicTask|EString]
		//        ( "," at+=[AtomicTask|EString])*
		//        ('('description=EString')')?
		//        ;
		@Override public ParserRule getRule() { return rule; }
		
		//{Capability}
		//    name=EString  ':' 'can' 'do' 'atomic' 'tasks' at+=[AtomicTask|EString]
		//    ( "," at+=[AtomicTask|EString])*
		//    ('('description=EString')')?
		public Group getGroup() { return cGroup; }
		
		//{Capability}
		public Action getCapabilityAction_0() { return cCapabilityAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//'can'
		public Keyword getCanKeyword_3() { return cCanKeyword_3; }
		
		//'do'
		public Keyword getDoKeyword_4() { return cDoKeyword_4; }
		
		//'atomic'
		public Keyword getAtomicKeyword_5() { return cAtomicKeyword_5; }
		
		//'tasks'
		public Keyword getTasksKeyword_6() { return cTasksKeyword_6; }
		
		//at+=[AtomicTask|EString]
		public Assignment getAtAssignment_7() { return cAtAssignment_7; }
		
		//[AtomicTask|EString]
		public CrossReference getAtAtomicTaskCrossReference_7_0() { return cAtAtomicTaskCrossReference_7_0; }
		
		//EString
		public RuleCall getAtAtomicTaskEStringParserRuleCall_7_0_1() { return cAtAtomicTaskEStringParserRuleCall_7_0_1; }
		
		//( "," at+=[AtomicTask|EString])*
		public Group getGroup_8() { return cGroup_8; }
		
		//","
		public Keyword getCommaKeyword_8_0() { return cCommaKeyword_8_0; }
		
		//at+=[AtomicTask|EString]
		public Assignment getAtAssignment_8_1() { return cAtAssignment_8_1; }
		
		//[AtomicTask|EString]
		public CrossReference getAtAtomicTaskCrossReference_8_1_0() { return cAtAtomicTaskCrossReference_8_1_0; }
		
		//EString
		public RuleCall getAtAtomicTaskEStringParserRuleCall_8_1_0_1() { return cAtAtomicTaskEStringParserRuleCall_8_1_0_1; }
		
		//('('description=EString')')?
		public Group getGroup_9() { return cGroup_9; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_9_0() { return cLeftParenthesisKeyword_9_0; }
		
		//description=EString
		public Assignment getDescriptionAssignment_9_1() { return cDescriptionAssignment_9_1; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_9_1_0() { return cDescriptionEStringParserRuleCall_9_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_9_2() { return cRightParenthesisKeyword_9_2; }
	}
	public class RobotElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.Robot");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cRobotAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cAtKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cInitialKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cLocationKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cInitLocAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final CrossReference cInitLocLocationCrossReference_6_0 = (CrossReference)cInitLocAssignment_6.eContents().get(0);
		private final RuleCall cInitLocLocationEStringParserRuleCall_6_0_1 = (RuleCall)cInitLocLocationCrossReference_6_0.eContents().get(1);
		private final Keyword cHasKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cVelocityKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Assignment cVelocityAssignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cVelocityEDoubleParserRuleCall_9_0 = (RuleCall)cVelocityAssignment_9.eContents().get(0);
		private final Keyword cCanKeyword_10 = (Keyword)cGroup.eContents().get(10);
		private final Keyword cDoKeyword_11 = (Keyword)cGroup.eContents().get(11);
		private final Keyword cLeftParenthesisKeyword_12 = (Keyword)cGroup.eContents().get(12);
		private final Assignment cRobots2tasksPerformanceAssignment_13 = (Assignment)cGroup.eContents().get(13);
		private final RuleCall cRobots2tasksPerformanceRobots2tasksPerformanceParserRuleCall_13_0 = (RuleCall)cRobots2tasksPerformanceAssignment_13.eContents().get(0);
		private final Group cGroup_14 = (Group)cGroup.eContents().get(14);
		private final Keyword cCommaKeyword_14_0 = (Keyword)cGroup_14.eContents().get(0);
		private final Assignment cRobots2tasksPerformanceAssignment_14_1 = (Assignment)cGroup_14.eContents().get(1);
		private final RuleCall cRobots2tasksPerformanceRobots2tasksPerformanceParserRuleCall_14_1_0 = (RuleCall)cRobots2tasksPerformanceAssignment_14_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_15 = (Keyword)cGroup.eContents().get(15);
		
		//Robot returns Robot:
		//    {Robot}
		//    name=EString ':' 'at' 'initial' 'location' initLoc=[Location|EString]
		//    'has' 'velocity' velocity=EDouble
		//    //'with' 'capabilities' capabilities+=[Capability|EString] ( "," capabilities+=[Capability|EString])*
		//    'can' 'do'
		//    '('
		//    robots2tasksPerformance+=Robots2tasksPerformance ( "," robots2tasksPerformance+=Robots2tasksPerformance)*
		//    ')'
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{Robot}
		//name=EString ':' 'at' 'initial' 'location' initLoc=[Location|EString]
		//'has' 'velocity' velocity=EDouble
		////'with' 'capabilities' capabilities+=[Capability|EString] ( "," capabilities+=[Capability|EString])*
		//'can' 'do'
		//'('
		//robots2tasksPerformance+=Robots2tasksPerformance ( "," robots2tasksPerformance+=Robots2tasksPerformance)*
		//')'
		public Group getGroup() { return cGroup; }
		
		//{Robot}
		public Action getRobotAction_0() { return cRobotAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//'at'
		public Keyword getAtKeyword_3() { return cAtKeyword_3; }
		
		//'initial'
		public Keyword getInitialKeyword_4() { return cInitialKeyword_4; }
		
		//'location'
		public Keyword getLocationKeyword_5() { return cLocationKeyword_5; }
		
		//initLoc=[Location|EString]
		public Assignment getInitLocAssignment_6() { return cInitLocAssignment_6; }
		
		//[Location|EString]
		public CrossReference getInitLocLocationCrossReference_6_0() { return cInitLocLocationCrossReference_6_0; }
		
		//EString
		public RuleCall getInitLocLocationEStringParserRuleCall_6_0_1() { return cInitLocLocationEStringParserRuleCall_6_0_1; }
		
		//'has'
		public Keyword getHasKeyword_7() { return cHasKeyword_7; }
		
		//'velocity'
		public Keyword getVelocityKeyword_8() { return cVelocityKeyword_8; }
		
		//velocity=EDouble
		public Assignment getVelocityAssignment_9() { return cVelocityAssignment_9; }
		
		//EDouble
		public RuleCall getVelocityEDoubleParserRuleCall_9_0() { return cVelocityEDoubleParserRuleCall_9_0; }
		
		////'with' 'capabilities' capabilities+=[Capability|EString] ( "," capabilities+=[Capability|EString])*
		//'can'
		public Keyword getCanKeyword_10() { return cCanKeyword_10; }
		
		//'do'
		public Keyword getDoKeyword_11() { return cDoKeyword_11; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_12() { return cLeftParenthesisKeyword_12; }
		
		//robots2tasksPerformance+=Robots2tasksPerformance
		public Assignment getRobots2tasksPerformanceAssignment_13() { return cRobots2tasksPerformanceAssignment_13; }
		
		//Robots2tasksPerformance
		public RuleCall getRobots2tasksPerformanceRobots2tasksPerformanceParserRuleCall_13_0() { return cRobots2tasksPerformanceRobots2tasksPerformanceParserRuleCall_13_0; }
		
		//( "," robots2tasksPerformance+=Robots2tasksPerformance)*
		public Group getGroup_14() { return cGroup_14; }
		
		//","
		public Keyword getCommaKeyword_14_0() { return cCommaKeyword_14_0; }
		
		//robots2tasksPerformance+=Robots2tasksPerformance
		public Assignment getRobots2tasksPerformanceAssignment_14_1() { return cRobots2tasksPerformanceAssignment_14_1; }
		
		//Robots2tasksPerformance
		public RuleCall getRobots2tasksPerformanceRobots2tasksPerformanceParserRuleCall_14_1_0() { return cRobots2tasksPerformanceRobots2tasksPerformanceParserRuleCall_14_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_15() { return cRightParenthesisKeyword_15; }
	}
	public class Robots2tasksPerformanceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.Robots2tasksPerformance");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cRobots2tasksPerformanceAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cAtAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cAtAtomicTaskCrossReference_1_0 = (CrossReference)cAtAssignment_1.eContents().get(0);
		private final RuleCall cAtAtomicTaskEStringParserRuleCall_1_0_1 = (RuleCall)cAtAtomicTaskCrossReference_1_0.eContents().get(1);
		private final Keyword cHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cTimeRequiredKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cColonKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cTimeAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cTimeEDoubleParserRuleCall_5_0 = (RuleCall)cTimeAssignment_5.eContents().get(0);
		private final Keyword cCommaKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Keyword cSuccessKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cProbabilityKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cColonKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Assignment cProbAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cProbEDoubleParserRuleCall_10_0 = (RuleCall)cProbAssignment_10.eContents().get(0);
		
		//Robots2tasksPerformance returns Robots2tasksPerformance:
		//    {Robots2tasksPerformance}
		//        at=[AtomicTask|EString]   '-' 'time required' ':' time=EDouble ',' 'success' 'probability' ':' prob=EDouble
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{Robots2tasksPerformance}
		//    at=[AtomicTask|EString]   '-' 'time required' ':' time=EDouble ',' 'success' 'probability' ':' prob=EDouble
		public Group getGroup() { return cGroup; }
		
		//{Robots2tasksPerformance}
		public Action getRobots2tasksPerformanceAction_0() { return cRobots2tasksPerformanceAction_0; }
		
		//at=[AtomicTask|EString]
		public Assignment getAtAssignment_1() { return cAtAssignment_1; }
		
		//[AtomicTask|EString]
		public CrossReference getAtAtomicTaskCrossReference_1_0() { return cAtAtomicTaskCrossReference_1_0; }
		
		//EString
		public RuleCall getAtAtomicTaskEStringParserRuleCall_1_0_1() { return cAtAtomicTaskEStringParserRuleCall_1_0_1; }
		
		//'-'
		public Keyword getHyphenMinusKeyword_2() { return cHyphenMinusKeyword_2; }
		
		//'time required'
		public Keyword getTimeRequiredKeyword_3() { return cTimeRequiredKeyword_3; }
		
		//':'
		public Keyword getColonKeyword_4() { return cColonKeyword_4; }
		
		//time=EDouble
		public Assignment getTimeAssignment_5() { return cTimeAssignment_5; }
		
		//EDouble
		public RuleCall getTimeEDoubleParserRuleCall_5_0() { return cTimeEDoubleParserRuleCall_5_0; }
		
		//','
		public Keyword getCommaKeyword_6() { return cCommaKeyword_6; }
		
		//'success'
		public Keyword getSuccessKeyword_7() { return cSuccessKeyword_7; }
		
		//'probability'
		public Keyword getProbabilityKeyword_8() { return cProbabilityKeyword_8; }
		
		//':'
		public Keyword getColonKeyword_9() { return cColonKeyword_9; }
		
		//prob=EDouble
		public Assignment getProbAssignment_10() { return cProbAssignment_10; }
		
		//EDouble
		public RuleCall getProbEDoubleParserRuleCall_10_0() { return cProbEDoubleParserRuleCall_10_0; }
	}
	public class MissionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.Mission");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cAtomicTaskNoLocParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cAtomicTaskLocParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cCompTaskNoLocParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cCompTaskOneLocParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cCompTaskListLocParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cCompTaskAtButParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cCompTaskStatedButParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		
		///// ----------- Missions
		//Mission returns Mission:
		//    AtomicTaskNoLoc | AtomicTaskLoc | CompTaskNoLoc | CompTaskOneLoc | CompTaskListLoc | CompTaskAtBut | CompTaskStatedBut
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//AtomicTaskNoLoc | AtomicTaskLoc | CompTaskNoLoc | CompTaskOneLoc | CompTaskListLoc | CompTaskAtBut | CompTaskStatedBut
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//AtomicTaskNoLoc
		public RuleCall getAtomicTaskNoLocParserRuleCall_0() { return cAtomicTaskNoLocParserRuleCall_0; }
		
		//AtomicTaskLoc
		public RuleCall getAtomicTaskLocParserRuleCall_1() { return cAtomicTaskLocParserRuleCall_1; }
		
		//CompTaskNoLoc
		public RuleCall getCompTaskNoLocParserRuleCall_2() { return cCompTaskNoLocParserRuleCall_2; }
		
		//CompTaskOneLoc
		public RuleCall getCompTaskOneLocParserRuleCall_3() { return cCompTaskOneLocParserRuleCall_3; }
		
		//CompTaskListLoc
		public RuleCall getCompTaskListLocParserRuleCall_4() { return cCompTaskListLocParserRuleCall_4; }
		
		//CompTaskAtBut
		public RuleCall getCompTaskAtButParserRuleCall_5() { return cCompTaskAtButParserRuleCall_5; }
		
		//CompTaskStatedBut
		public RuleCall getCompTaskStatedButParserRuleCall_6() { return cCompTaskStatedButParserRuleCall_6; }
	}
	public class AtomicTaskNoLocElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.AtomicTaskNoLoc");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cAtomicTaskNoLocAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cAtAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final CrossReference cAtAtomicTaskCrossReference_3_0 = (CrossReference)cAtAssignment_3.eContents().get(0);
		private final RuleCall cAtAtomicTaskEStringParserRuleCall_3_0_1 = (RuleCall)cAtAtomicTaskCrossReference_3_0.eContents().get(1);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cLeftParenthesisKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Assignment cDescriptionAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
		private final RuleCall cDescriptionEStringParserRuleCall_4_1_0 = (RuleCall)cDescriptionAssignment_4_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		
		//AtomicTaskNoLoc returns AtomicTaskNoLoc:
		//    {AtomicTaskNoLoc}
		//    name=EString ':' at=[AtomicTask|EString]
		//    ('(' description=EString ')')?
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{AtomicTaskNoLoc}
		//name=EString ':' at=[AtomicTask|EString]
		//('(' description=EString ')')?
		public Group getGroup() { return cGroup; }
		
		//{AtomicTaskNoLoc}
		public Action getAtomicTaskNoLocAction_0() { return cAtomicTaskNoLocAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//at=[AtomicTask|EString]
		public Assignment getAtAssignment_3() { return cAtAssignment_3; }
		
		//[AtomicTask|EString]
		public CrossReference getAtAtomicTaskCrossReference_3_0() { return cAtAtomicTaskCrossReference_3_0; }
		
		//EString
		public RuleCall getAtAtomicTaskEStringParserRuleCall_3_0_1() { return cAtAtomicTaskEStringParserRuleCall_3_0_1; }
		
		//('(' description=EString ')')?
		public Group getGroup_4() { return cGroup_4; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_4_0() { return cLeftParenthesisKeyword_4_0; }
		
		//description=EString
		public Assignment getDescriptionAssignment_4_1() { return cDescriptionAssignment_4_1; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_4_1_0() { return cDescriptionEStringParserRuleCall_4_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_4_2() { return cRightParenthesisKeyword_4_2; }
	}
	public class AtomicTaskLocElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.AtomicTaskLoc");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cAtomicTaskLocAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cAtomicKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTaskKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cAtAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final CrossReference cAtAtomicTaskCrossReference_5_0 = (CrossReference)cAtAssignment_5.eContents().get(0);
		private final RuleCall cAtAtomicTaskEStringParserRuleCall_5_0_1 = (RuleCall)cAtAtomicTaskCrossReference_5_0.eContents().get(1);
		private final Keyword cAtKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cLocAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final CrossReference cLocLocationCrossReference_7_0 = (CrossReference)cLocAssignment_7.eContents().get(0);
		private final RuleCall cLocLocationEStringParserRuleCall_7_0_1 = (RuleCall)cLocLocationCrossReference_7_0.eContents().get(1);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cLeftParenthesisKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Assignment cDescriptionAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
		private final RuleCall cDescriptionEStringParserRuleCall_8_1_0 = (RuleCall)cDescriptionAssignment_8_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_8_2 = (Keyword)cGroup_8.eContents().get(2);
		
		//AtomicTaskLoc returns AtomicTaskLoc:
		//    {AtomicTaskLoc}
		//    name=EString ':'
		//    'atomic' 'task' at=[AtomicTask|EString] 'at' loc=[Location|EString]
		//    ('(' description=EString ')')?
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{AtomicTaskLoc}
		//name=EString ':'
		//'atomic' 'task' at=[AtomicTask|EString] 'at' loc=[Location|EString]
		//('(' description=EString ')')?
		public Group getGroup() { return cGroup; }
		
		//{AtomicTaskLoc}
		public Action getAtomicTaskLocAction_0() { return cAtomicTaskLocAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//'atomic'
		public Keyword getAtomicKeyword_3() { return cAtomicKeyword_3; }
		
		//'task'
		public Keyword getTaskKeyword_4() { return cTaskKeyword_4; }
		
		//at=[AtomicTask|EString]
		public Assignment getAtAssignment_5() { return cAtAssignment_5; }
		
		//[AtomicTask|EString]
		public CrossReference getAtAtomicTaskCrossReference_5_0() { return cAtAtomicTaskCrossReference_5_0; }
		
		//EString
		public RuleCall getAtAtomicTaskEStringParserRuleCall_5_0_1() { return cAtAtomicTaskEStringParserRuleCall_5_0_1; }
		
		//'at'
		public Keyword getAtKeyword_6() { return cAtKeyword_6; }
		
		//loc=[Location|EString]
		public Assignment getLocAssignment_7() { return cLocAssignment_7; }
		
		//[Location|EString]
		public CrossReference getLocLocationCrossReference_7_0() { return cLocLocationCrossReference_7_0; }
		
		//EString
		public RuleCall getLocLocationEStringParserRuleCall_7_0_1() { return cLocLocationEStringParserRuleCall_7_0_1; }
		
		//('(' description=EString ')')?
		public Group getGroup_8() { return cGroup_8; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_8_0() { return cLeftParenthesisKeyword_8_0; }
		
		//description=EString
		public Assignment getDescriptionAssignment_8_1() { return cDescriptionAssignment_8_1; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_8_1_0() { return cDescriptionEStringParserRuleCall_8_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_8_2() { return cRightParenthesisKeyword_8_2; }
	}
	public class CompTaskNoLocElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.CompTaskNoLoc");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCompTaskNoLocAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cCompoundKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTaskKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cCtAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final CrossReference cCtCompoundTaskCrossReference_5_0 = (CrossReference)cCtAssignment_5.eContents().get(0);
		private final RuleCall cCtCompoundTaskEStringParserRuleCall_5_0_1 = (RuleCall)cCtCompoundTaskCrossReference_5_0.eContents().get(1);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cHyphenMinusKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cCriticalityKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Assignment cCriticalityAssignment_6_2 = (Assignment)cGroup_6.eContents().get(2);
		private final RuleCall cCriticalityEStringParserRuleCall_6_2_0 = (RuleCall)cCriticalityAssignment_6_2.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cLeftParenthesisKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Assignment cDescriptionAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final RuleCall cDescriptionEStringParserRuleCall_7_1_0 = (RuleCall)cDescriptionAssignment_7_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_7_2 = (Keyword)cGroup_7.eContents().get(2);
		
		//CompTaskNoLoc returns CompTaskNoLoc:
		//    {CompTaskNoLoc}
		//    name=EString ':'
		//    'compound' 'task' ct=[CompoundTask|EString]
		//    ('-''criticality' criticality=EString)?
		//    ('(' description=EString ')')?
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{CompTaskNoLoc}
		//name=EString ':'
		//'compound' 'task' ct=[CompoundTask|EString]
		//('-''criticality' criticality=EString)?
		//('(' description=EString ')')?
		public Group getGroup() { return cGroup; }
		
		//{CompTaskNoLoc}
		public Action getCompTaskNoLocAction_0() { return cCompTaskNoLocAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//'compound'
		public Keyword getCompoundKeyword_3() { return cCompoundKeyword_3; }
		
		//'task'
		public Keyword getTaskKeyword_4() { return cTaskKeyword_4; }
		
		//ct=[CompoundTask|EString]
		public Assignment getCtAssignment_5() { return cCtAssignment_5; }
		
		//[CompoundTask|EString]
		public CrossReference getCtCompoundTaskCrossReference_5_0() { return cCtCompoundTaskCrossReference_5_0; }
		
		//EString
		public RuleCall getCtCompoundTaskEStringParserRuleCall_5_0_1() { return cCtCompoundTaskEStringParserRuleCall_5_0_1; }
		
		//('-''criticality' criticality=EString)?
		public Group getGroup_6() { return cGroup_6; }
		
		//'-'
		public Keyword getHyphenMinusKeyword_6_0() { return cHyphenMinusKeyword_6_0; }
		
		//'criticality'
		public Keyword getCriticalityKeyword_6_1() { return cCriticalityKeyword_6_1; }
		
		//criticality=EString
		public Assignment getCriticalityAssignment_6_2() { return cCriticalityAssignment_6_2; }
		
		//EString
		public RuleCall getCriticalityEStringParserRuleCall_6_2_0() { return cCriticalityEStringParserRuleCall_6_2_0; }
		
		//('(' description=EString ')')?
		public Group getGroup_7() { return cGroup_7; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_7_0() { return cLeftParenthesisKeyword_7_0; }
		
		//description=EString
		public Assignment getDescriptionAssignment_7_1() { return cDescriptionAssignment_7_1; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_7_1_0() { return cDescriptionEStringParserRuleCall_7_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_7_2() { return cRightParenthesisKeyword_7_2; }
	}
	public class CompTaskOneLocElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.CompTaskOneLoc");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCompTaskOneLocAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cCompoundKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTaskKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cCtAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final CrossReference cCtCompoundTaskCrossReference_5_0 = (CrossReference)cCtAssignment_5.eContents().get(0);
		private final RuleCall cCtCompoundTaskEStringParserRuleCall_5_0_1 = (RuleCall)cCtCompoundTaskCrossReference_5_0.eContents().get(1);
		private final Keyword cAtKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cLocAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final CrossReference cLocLocationCrossReference_7_0 = (CrossReference)cLocAssignment_7.eContents().get(0);
		private final RuleCall cLocLocationEStringParserRuleCall_7_0_1 = (RuleCall)cLocLocationCrossReference_7_0.eContents().get(1);
		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
		private final Keyword cHyphenMinusKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
		private final Keyword cCriticalityKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1);
		private final Assignment cCriticalityAssignment_8_2 = (Assignment)cGroup_8.eContents().get(2);
		private final RuleCall cCriticalityEStringParserRuleCall_8_2_0 = (RuleCall)cCriticalityAssignment_8_2.eContents().get(0);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cLeftParenthesisKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Assignment cDescriptionAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
		private final RuleCall cDescriptionEStringParserRuleCall_9_1_0 = (RuleCall)cDescriptionAssignment_9_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_9_2 = (Keyword)cGroup_9.eContents().get(2);
		
		//CompTaskOneLoc returns CompTaskOneLoc:
		//    {CompTaskOneLoc}
		//    name=EString ':'
		//    'compound' 'task' ct=[CompoundTask|EString] 'at' loc=[Location|EString]
		//    ('-''criticality' criticality=EString)?
		//    ('(' description=EString ')')?
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{CompTaskOneLoc}
		//name=EString ':'
		//'compound' 'task' ct=[CompoundTask|EString] 'at' loc=[Location|EString]
		//('-''criticality' criticality=EString)?
		//('(' description=EString ')')?
		public Group getGroup() { return cGroup; }
		
		//{CompTaskOneLoc}
		public Action getCompTaskOneLocAction_0() { return cCompTaskOneLocAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//'compound'
		public Keyword getCompoundKeyword_3() { return cCompoundKeyword_3; }
		
		//'task'
		public Keyword getTaskKeyword_4() { return cTaskKeyword_4; }
		
		//ct=[CompoundTask|EString]
		public Assignment getCtAssignment_5() { return cCtAssignment_5; }
		
		//[CompoundTask|EString]
		public CrossReference getCtCompoundTaskCrossReference_5_0() { return cCtCompoundTaskCrossReference_5_0; }
		
		//EString
		public RuleCall getCtCompoundTaskEStringParserRuleCall_5_0_1() { return cCtCompoundTaskEStringParserRuleCall_5_0_1; }
		
		//'at'
		public Keyword getAtKeyword_6() { return cAtKeyword_6; }
		
		//loc=[Location|EString]
		public Assignment getLocAssignment_7() { return cLocAssignment_7; }
		
		//[Location|EString]
		public CrossReference getLocLocationCrossReference_7_0() { return cLocLocationCrossReference_7_0; }
		
		//EString
		public RuleCall getLocLocationEStringParserRuleCall_7_0_1() { return cLocLocationEStringParserRuleCall_7_0_1; }
		
		//('-''criticality' criticality=EString)?
		public Group getGroup_8() { return cGroup_8; }
		
		//'-'
		public Keyword getHyphenMinusKeyword_8_0() { return cHyphenMinusKeyword_8_0; }
		
		//'criticality'
		public Keyword getCriticalityKeyword_8_1() { return cCriticalityKeyword_8_1; }
		
		//criticality=EString
		public Assignment getCriticalityAssignment_8_2() { return cCriticalityAssignment_8_2; }
		
		//EString
		public RuleCall getCriticalityEStringParserRuleCall_8_2_0() { return cCriticalityEStringParserRuleCall_8_2_0; }
		
		//('(' description=EString ')')?
		public Group getGroup_9() { return cGroup_9; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_9_0() { return cLeftParenthesisKeyword_9_0; }
		
		//description=EString
		public Assignment getDescriptionAssignment_9_1() { return cDescriptionAssignment_9_1; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_9_1_0() { return cDescriptionEStringParserRuleCall_9_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_9_2() { return cRightParenthesisKeyword_9_2; }
	}
	public class CompTaskListLocElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.CompTaskListLoc");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCompTaskListLocAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cCompoundKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTaskKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cCtAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final CrossReference cCtCompoundTaskCrossReference_5_0 = (CrossReference)cCtAssignment_5.eContents().get(0);
		private final RuleCall cCtCompoundTaskEStringParserRuleCall_5_0_1 = (RuleCall)cCtCompoundTaskCrossReference_5_0.eContents().get(1);
		private final Keyword cAtKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Keyword cLeftSquareBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Assignment cLocationListAssignment_8 = (Assignment)cGroup.eContents().get(8);
		private final CrossReference cLocationListLocationCrossReference_8_0 = (CrossReference)cLocationListAssignment_8.eContents().get(0);
		private final RuleCall cLocationListLocationEStringParserRuleCall_8_0_1 = (RuleCall)cLocationListLocationCrossReference_8_0.eContents().get(1);
		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
		private final Keyword cCommaKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
		private final Assignment cLocationListAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
		private final CrossReference cLocationListLocationCrossReference_9_1_0 = (CrossReference)cLocationListAssignment_9_1.eContents().get(0);
		private final RuleCall cLocationListLocationEStringParserRuleCall_9_1_0_1 = (RuleCall)cLocationListLocationCrossReference_9_1_0.eContents().get(1);
		private final Keyword cRightSquareBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Keyword cHyphenMinusKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
		private final Keyword cCriticalityKeyword_11_1 = (Keyword)cGroup_11.eContents().get(1);
		private final Assignment cCriticalityAssignment_11_2 = (Assignment)cGroup_11.eContents().get(2);
		private final RuleCall cCriticalityEStringParserRuleCall_11_2_0 = (RuleCall)cCriticalityAssignment_11_2.eContents().get(0);
		private final Group cGroup_12 = (Group)cGroup.eContents().get(12);
		private final Keyword cLeftParenthesisKeyword_12_0 = (Keyword)cGroup_12.eContents().get(0);
		private final Assignment cDescriptionAssignment_12_1 = (Assignment)cGroup_12.eContents().get(1);
		private final RuleCall cDescriptionEStringParserRuleCall_12_1_0 = (RuleCall)cDescriptionAssignment_12_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_12_2 = (Keyword)cGroup_12.eContents().get(2);
		
		//CompTaskListLoc returns CompTaskListLoc:
		//    {CompTaskListLoc}
		//    name=EString ':'
		//    'compound' 'task' ct=[CompoundTask|EString] 'at'
		//    '[' locationList+=[Location|EString] ( "," locationList+=[Location|EString])* ']'
		//    ('-''criticality' criticality=EString)?
		//    ('(' description=EString ')')?
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{CompTaskListLoc}
		//name=EString ':'
		//'compound' 'task' ct=[CompoundTask|EString] 'at'
		//'[' locationList+=[Location|EString] ( "," locationList+=[Location|EString])* ']'
		//('-''criticality' criticality=EString)?
		//('(' description=EString ')')?
		public Group getGroup() { return cGroup; }
		
		//{CompTaskListLoc}
		public Action getCompTaskListLocAction_0() { return cCompTaskListLocAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//'compound'
		public Keyword getCompoundKeyword_3() { return cCompoundKeyword_3; }
		
		//'task'
		public Keyword getTaskKeyword_4() { return cTaskKeyword_4; }
		
		//ct=[CompoundTask|EString]
		public Assignment getCtAssignment_5() { return cCtAssignment_5; }
		
		//[CompoundTask|EString]
		public CrossReference getCtCompoundTaskCrossReference_5_0() { return cCtCompoundTaskCrossReference_5_0; }
		
		//EString
		public RuleCall getCtCompoundTaskEStringParserRuleCall_5_0_1() { return cCtCompoundTaskEStringParserRuleCall_5_0_1; }
		
		//'at'
		public Keyword getAtKeyword_6() { return cAtKeyword_6; }
		
		//'['
		public Keyword getLeftSquareBracketKeyword_7() { return cLeftSquareBracketKeyword_7; }
		
		//locationList+=[Location|EString]
		public Assignment getLocationListAssignment_8() { return cLocationListAssignment_8; }
		
		//[Location|EString]
		public CrossReference getLocationListLocationCrossReference_8_0() { return cLocationListLocationCrossReference_8_0; }
		
		//EString
		public RuleCall getLocationListLocationEStringParserRuleCall_8_0_1() { return cLocationListLocationEStringParserRuleCall_8_0_1; }
		
		//( "," locationList+=[Location|EString])*
		public Group getGroup_9() { return cGroup_9; }
		
		//","
		public Keyword getCommaKeyword_9_0() { return cCommaKeyword_9_0; }
		
		//locationList+=[Location|EString]
		public Assignment getLocationListAssignment_9_1() { return cLocationListAssignment_9_1; }
		
		//[Location|EString]
		public CrossReference getLocationListLocationCrossReference_9_1_0() { return cLocationListLocationCrossReference_9_1_0; }
		
		//EString
		public RuleCall getLocationListLocationEStringParserRuleCall_9_1_0_1() { return cLocationListLocationEStringParserRuleCall_9_1_0_1; }
		
		//']'
		public Keyword getRightSquareBracketKeyword_10() { return cRightSquareBracketKeyword_10; }
		
		//('-''criticality' criticality=EString)?
		public Group getGroup_11() { return cGroup_11; }
		
		//'-'
		public Keyword getHyphenMinusKeyword_11_0() { return cHyphenMinusKeyword_11_0; }
		
		//'criticality'
		public Keyword getCriticalityKeyword_11_1() { return cCriticalityKeyword_11_1; }
		
		//criticality=EString
		public Assignment getCriticalityAssignment_11_2() { return cCriticalityAssignment_11_2; }
		
		//EString
		public RuleCall getCriticalityEStringParserRuleCall_11_2_0() { return cCriticalityEStringParserRuleCall_11_2_0; }
		
		//('(' description=EString ')')?
		public Group getGroup_12() { return cGroup_12; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_12_0() { return cLeftParenthesisKeyword_12_0; }
		
		//description=EString
		public Assignment getDescriptionAssignment_12_1() { return cDescriptionAssignment_12_1; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_12_1_0() { return cDescriptionEStringParserRuleCall_12_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_12_2() { return cRightParenthesisKeyword_12_2; }
	}
	public class CompTaskAtButElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.CompTaskAtBut");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCompTaskAtButAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cCompoundKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTaskKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cCtAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final CrossReference cCtCompoundTaskCrossReference_5_0 = (CrossReference)cCtAssignment_5.eContents().get(0);
		private final RuleCall cCtCompoundTaskEStringParserRuleCall_5_0_1 = (RuleCall)cCtCompoundTaskCrossReference_5_0.eContents().get(1);
		private final Keyword cAtKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cLocAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final CrossReference cLocLocationCrossReference_7_0 = (CrossReference)cLocAssignment_7.eContents().get(0);
		private final RuleCall cLocLocationEStringParserRuleCall_7_0_1 = (RuleCall)cLocLocationCrossReference_7_0.eContents().get(1);
		private final Keyword cButKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cLeftSquareBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Assignment cLocationListAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cLocationListLocationOrSpaceParserRuleCall_10_0 = (RuleCall)cLocationListAssignment_10.eContents().get(0);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Keyword cCommaKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
		private final Assignment cLocationListAssignment_11_1 = (Assignment)cGroup_11.eContents().get(1);
		private final RuleCall cLocationListLocationOrSpaceParserRuleCall_11_1_0 = (RuleCall)cLocationListAssignment_11_1.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_12 = (Keyword)cGroup.eContents().get(12);
		private final Group cGroup_13 = (Group)cGroup.eContents().get(13);
		private final Keyword cHyphenMinusKeyword_13_0 = (Keyword)cGroup_13.eContents().get(0);
		private final Keyword cCriticalityKeyword_13_1 = (Keyword)cGroup_13.eContents().get(1);
		private final Assignment cCriticalityAssignment_13_2 = (Assignment)cGroup_13.eContents().get(2);
		private final RuleCall cCriticalityEStringParserRuleCall_13_2_0 = (RuleCall)cCriticalityAssignment_13_2.eContents().get(0);
		private final Group cGroup_14 = (Group)cGroup.eContents().get(14);
		private final Keyword cLeftParenthesisKeyword_14_0 = (Keyword)cGroup_14.eContents().get(0);
		private final Assignment cDescriptionAssignment_14_1 = (Assignment)cGroup_14.eContents().get(1);
		private final RuleCall cDescriptionEStringParserRuleCall_14_1_0 = (RuleCall)cDescriptionAssignment_14_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_14_2 = (Keyword)cGroup_14.eContents().get(2);
		
		//CompTaskAtBut returns CompTaskAtBut:
		//    {CompTaskAtBut}
		//    name=EString ':'
		//    'compound' 'task' ct=[CompoundTask|EString] 'at' loc=[Location|EString]
		//    'but' '[' locationList+=LocationOrSpace ( "," locationList+=LocationOrSpace)* ']'
		//    ('-''criticality' criticality=EString)?
		//    ('(' description=EString ')')?
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{CompTaskAtBut}
		//name=EString ':'
		//'compound' 'task' ct=[CompoundTask|EString] 'at' loc=[Location|EString]
		//'but' '[' locationList+=LocationOrSpace ( "," locationList+=LocationOrSpace)* ']'
		//('-''criticality' criticality=EString)?
		//('(' description=EString ')')?
		public Group getGroup() { return cGroup; }
		
		//{CompTaskAtBut}
		public Action getCompTaskAtButAction_0() { return cCompTaskAtButAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//'compound'
		public Keyword getCompoundKeyword_3() { return cCompoundKeyword_3; }
		
		//'task'
		public Keyword getTaskKeyword_4() { return cTaskKeyword_4; }
		
		//ct=[CompoundTask|EString]
		public Assignment getCtAssignment_5() { return cCtAssignment_5; }
		
		//[CompoundTask|EString]
		public CrossReference getCtCompoundTaskCrossReference_5_0() { return cCtCompoundTaskCrossReference_5_0; }
		
		//EString
		public RuleCall getCtCompoundTaskEStringParserRuleCall_5_0_1() { return cCtCompoundTaskEStringParserRuleCall_5_0_1; }
		
		//'at'
		public Keyword getAtKeyword_6() { return cAtKeyword_6; }
		
		//loc=[Location|EString]
		public Assignment getLocAssignment_7() { return cLocAssignment_7; }
		
		//[Location|EString]
		public CrossReference getLocLocationCrossReference_7_0() { return cLocLocationCrossReference_7_0; }
		
		//EString
		public RuleCall getLocLocationEStringParserRuleCall_7_0_1() { return cLocLocationEStringParserRuleCall_7_0_1; }
		
		//'but'
		public Keyword getButKeyword_8() { return cButKeyword_8; }
		
		//'['
		public Keyword getLeftSquareBracketKeyword_9() { return cLeftSquareBracketKeyword_9; }
		
		//locationList+=LocationOrSpace
		public Assignment getLocationListAssignment_10() { return cLocationListAssignment_10; }
		
		//LocationOrSpace
		public RuleCall getLocationListLocationOrSpaceParserRuleCall_10_0() { return cLocationListLocationOrSpaceParserRuleCall_10_0; }
		
		//( "," locationList+=LocationOrSpace)*
		public Group getGroup_11() { return cGroup_11; }
		
		//","
		public Keyword getCommaKeyword_11_0() { return cCommaKeyword_11_0; }
		
		//locationList+=LocationOrSpace
		public Assignment getLocationListAssignment_11_1() { return cLocationListAssignment_11_1; }
		
		//LocationOrSpace
		public RuleCall getLocationListLocationOrSpaceParserRuleCall_11_1_0() { return cLocationListLocationOrSpaceParserRuleCall_11_1_0; }
		
		//']'
		public Keyword getRightSquareBracketKeyword_12() { return cRightSquareBracketKeyword_12; }
		
		//('-''criticality' criticality=EString)?
		public Group getGroup_13() { return cGroup_13; }
		
		//'-'
		public Keyword getHyphenMinusKeyword_13_0() { return cHyphenMinusKeyword_13_0; }
		
		//'criticality'
		public Keyword getCriticalityKeyword_13_1() { return cCriticalityKeyword_13_1; }
		
		//criticality=EString
		public Assignment getCriticalityAssignment_13_2() { return cCriticalityAssignment_13_2; }
		
		//EString
		public RuleCall getCriticalityEStringParserRuleCall_13_2_0() { return cCriticalityEStringParserRuleCall_13_2_0; }
		
		//('(' description=EString ')')?
		public Group getGroup_14() { return cGroup_14; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_14_0() { return cLeftParenthesisKeyword_14_0; }
		
		//description=EString
		public Assignment getDescriptionAssignment_14_1() { return cDescriptionAssignment_14_1; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_14_1_0() { return cDescriptionEStringParserRuleCall_14_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_14_2() { return cRightParenthesisKeyword_14_2; }
	}
	public class CompTaskStatedButElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.CompTaskStatedBut");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCompTaskStatedButAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameEStringParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cCompoundKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTaskKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cCtAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final CrossReference cCtCompoundTaskCrossReference_5_0 = (CrossReference)cCtAssignment_5.eContents().get(0);
		private final RuleCall cCtCompoundTaskEStringParserRuleCall_5_0_1 = (RuleCall)cCtCompoundTaskCrossReference_5_0.eContents().get(1);
		private final Keyword cAsKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Keyword cSpecifiedKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cButKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cLeftSquareBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Assignment cLocationListAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cLocationListLocationOrSpaceParserRuleCall_10_0 = (RuleCall)cLocationListAssignment_10.eContents().get(0);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Keyword cCommaKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
		private final Assignment cLocationListAssignment_11_1 = (Assignment)cGroup_11.eContents().get(1);
		private final RuleCall cLocationListLocationOrSpaceParserRuleCall_11_1_0 = (RuleCall)cLocationListAssignment_11_1.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_12 = (Keyword)cGroup.eContents().get(12);
		private final Group cGroup_13 = (Group)cGroup.eContents().get(13);
		private final Keyword cHyphenMinusKeyword_13_0 = (Keyword)cGroup_13.eContents().get(0);
		private final Keyword cCriticalityKeyword_13_1 = (Keyword)cGroup_13.eContents().get(1);
		private final Assignment cCriticalityAssignment_13_2 = (Assignment)cGroup_13.eContents().get(2);
		private final RuleCall cCriticalityEStringParserRuleCall_13_2_0 = (RuleCall)cCriticalityAssignment_13_2.eContents().get(0);
		private final Group cGroup_14 = (Group)cGroup.eContents().get(14);
		private final Keyword cLeftParenthesisKeyword_14_0 = (Keyword)cGroup_14.eContents().get(0);
		private final Assignment cDescriptionAssignment_14_1 = (Assignment)cGroup_14.eContents().get(1);
		private final RuleCall cDescriptionEStringParserRuleCall_14_1_0 = (RuleCall)cDescriptionAssignment_14_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_14_2 = (Keyword)cGroup_14.eContents().get(2);
		
		//CompTaskStatedBut returns CompTaskStatedBut:
		//    {CompTaskStatedBut}
		//    name=EString ':'
		//    'compound' 'task' ct=[CompoundTask|EString] 'as' 'specified'
		//    'but' '[' locationList+=LocationOrSpace ( "," locationList+=LocationOrSpace)* ']'
		//    ('-''criticality' criticality=EString)?
		//    ('(' description=EString ')')?
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{CompTaskStatedBut}
		//name=EString ':'
		//'compound' 'task' ct=[CompoundTask|EString] 'as' 'specified'
		//'but' '[' locationList+=LocationOrSpace ( "," locationList+=LocationOrSpace)* ']'
		//('-''criticality' criticality=EString)?
		//('(' description=EString ')')?
		public Group getGroup() { return cGroup; }
		
		//{CompTaskStatedBut}
		public Action getCompTaskStatedButAction_0() { return cCompTaskStatedButAction_0; }
		
		//name=EString
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
		
		//EString
		public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
		
		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }
		
		//'compound'
		public Keyword getCompoundKeyword_3() { return cCompoundKeyword_3; }
		
		//'task'
		public Keyword getTaskKeyword_4() { return cTaskKeyword_4; }
		
		//ct=[CompoundTask|EString]
		public Assignment getCtAssignment_5() { return cCtAssignment_5; }
		
		//[CompoundTask|EString]
		public CrossReference getCtCompoundTaskCrossReference_5_0() { return cCtCompoundTaskCrossReference_5_0; }
		
		//EString
		public RuleCall getCtCompoundTaskEStringParserRuleCall_5_0_1() { return cCtCompoundTaskEStringParserRuleCall_5_0_1; }
		
		//'as'
		public Keyword getAsKeyword_6() { return cAsKeyword_6; }
		
		//'specified'
		public Keyword getSpecifiedKeyword_7() { return cSpecifiedKeyword_7; }
		
		//'but'
		public Keyword getButKeyword_8() { return cButKeyword_8; }
		
		//'['
		public Keyword getLeftSquareBracketKeyword_9() { return cLeftSquareBracketKeyword_9; }
		
		//locationList+=LocationOrSpace
		public Assignment getLocationListAssignment_10() { return cLocationListAssignment_10; }
		
		//LocationOrSpace
		public RuleCall getLocationListLocationOrSpaceParserRuleCall_10_0() { return cLocationListLocationOrSpaceParserRuleCall_10_0; }
		
		//( "," locationList+=LocationOrSpace)*
		public Group getGroup_11() { return cGroup_11; }
		
		//","
		public Keyword getCommaKeyword_11_0() { return cCommaKeyword_11_0; }
		
		//locationList+=LocationOrSpace
		public Assignment getLocationListAssignment_11_1() { return cLocationListAssignment_11_1; }
		
		//LocationOrSpace
		public RuleCall getLocationListLocationOrSpaceParserRuleCall_11_1_0() { return cLocationListLocationOrSpaceParserRuleCall_11_1_0; }
		
		//']'
		public Keyword getRightSquareBracketKeyword_12() { return cRightSquareBracketKeyword_12; }
		
		//('-''criticality' criticality=EString)?
		public Group getGroup_13() { return cGroup_13; }
		
		//'-'
		public Keyword getHyphenMinusKeyword_13_0() { return cHyphenMinusKeyword_13_0; }
		
		//'criticality'
		public Keyword getCriticalityKeyword_13_1() { return cCriticalityKeyword_13_1; }
		
		//criticality=EString
		public Assignment getCriticalityAssignment_13_2() { return cCriticalityAssignment_13_2; }
		
		//EString
		public RuleCall getCriticalityEStringParserRuleCall_13_2_0() { return cCriticalityEStringParserRuleCall_13_2_0; }
		
		//('(' description=EString ')')?
		public Group getGroup_14() { return cGroup_14; }
		
		//'('
		public Keyword getLeftParenthesisKeyword_14_0() { return cLeftParenthesisKeyword_14_0; }
		
		//description=EString
		public Assignment getDescriptionAssignment_14_1() { return cDescriptionAssignment_14_1; }
		
		//EString
		public RuleCall getDescriptionEStringParserRuleCall_14_1_0() { return cDescriptionEStringParserRuleCall_14_1_0; }
		
		//')'
		public Keyword getRightParenthesisKeyword_14_2() { return cRightParenthesisKeyword_14_2; }
	}
	public class QoSElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.QoS");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cAllRobotsXXParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cAllRobotsXParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cRobotsXXParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cRobotsXParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cAllRobotsDeployParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cNumAllocationsParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cNumPopulationParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		private final RuleCall cNumEvaluationsParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
		private final RuleCall cTimeAvailableParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
		
		///// ----------- QoS
		//QoS returns QoS:
		//    AllRobotsXX | AllRobotsX | RobotsXX | RobotsX | AllRobotsDeploy | NumAllocations | NumPopulation | NumEvaluations | TimeAvailable
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//AllRobotsXX | AllRobotsX | RobotsXX | RobotsX | AllRobotsDeploy | NumAllocations | NumPopulation | NumEvaluations | TimeAvailable
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//AllRobotsXX
		public RuleCall getAllRobotsXXParserRuleCall_0() { return cAllRobotsXXParserRuleCall_0; }
		
		//AllRobotsX
		public RuleCall getAllRobotsXParserRuleCall_1() { return cAllRobotsXParserRuleCall_1; }
		
		//RobotsXX
		public RuleCall getRobotsXXParserRuleCall_2() { return cRobotsXXParserRuleCall_2; }
		
		//RobotsX
		public RuleCall getRobotsXParserRuleCall_3() { return cRobotsXParserRuleCall_3; }
		
		//AllRobotsDeploy
		public RuleCall getAllRobotsDeployParserRuleCall_4() { return cAllRobotsDeployParserRuleCall_4; }
		
		//NumAllocations
		public RuleCall getNumAllocationsParserRuleCall_5() { return cNumAllocationsParserRuleCall_5; }
		
		//NumPopulation
		public RuleCall getNumPopulationParserRuleCall_6() { return cNumPopulationParserRuleCall_6; }
		
		//NumEvaluations
		public RuleCall getNumEvaluationsParserRuleCall_7() { return cNumEvaluationsParserRuleCall_7; }
		
		//TimeAvailable
		public RuleCall getTimeAvailableParserRuleCall_8() { return cTimeAvailableParserRuleCall_8; }
	}
	public class AllRobotsXXElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.AllRobotsXX");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cAllRobotsXXAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cAllKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cRobotsKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cWorkKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cBetweenKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cCoordinateAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final Alternatives cCoordinateAlternatives_5_0 = (Alternatives)cCoordinateAssignment_5.eContents().get(0);
		private final Keyword cCoordinateXKeyword_5_0_0 = (Keyword)cCoordinateAlternatives_5_0.eContents().get(0);
		private final Keyword cCoordinateYKeyword_5_0_1 = (Keyword)cCoordinateAlternatives_5_0.eContents().get(1);
		private final Keyword cLeftSquareBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cXy1Assignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cXy1EDoubleParserRuleCall_7_0 = (RuleCall)cXy1Assignment_7.eContents().get(0);
		private final Keyword cCommaKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Assignment cXy2Assignment_9 = (Assignment)cGroup.eContents().get(9);
		private final RuleCall cXy2EDoubleParserRuleCall_9_0 = (RuleCall)cXy2Assignment_9.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
		
		//AllRobotsXX returns AllRobotsXX:
		//    {AllRobotsXX}
		//    'all' 'robots' 'work' 'between' coordinate=('x'|'y') '[' xy1=EDouble ',' xy2=EDouble ']'
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{AllRobotsXX}
		//'all' 'robots' 'work' 'between' coordinate=('x'|'y') '[' xy1=EDouble ',' xy2=EDouble ']'
		public Group getGroup() { return cGroup; }
		
		//{AllRobotsXX}
		public Action getAllRobotsXXAction_0() { return cAllRobotsXXAction_0; }
		
		//'all'
		public Keyword getAllKeyword_1() { return cAllKeyword_1; }
		
		//'robots'
		public Keyword getRobotsKeyword_2() { return cRobotsKeyword_2; }
		
		//'work'
		public Keyword getWorkKeyword_3() { return cWorkKeyword_3; }
		
		//'between'
		public Keyword getBetweenKeyword_4() { return cBetweenKeyword_4; }
		
		//coordinate=('x'|'y')
		public Assignment getCoordinateAssignment_5() { return cCoordinateAssignment_5; }
		
		//('x'|'y')
		public Alternatives getCoordinateAlternatives_5_0() { return cCoordinateAlternatives_5_0; }
		
		//'x'
		public Keyword getCoordinateXKeyword_5_0_0() { return cCoordinateXKeyword_5_0_0; }
		
		//'y'
		public Keyword getCoordinateYKeyword_5_0_1() { return cCoordinateYKeyword_5_0_1; }
		
		//'['
		public Keyword getLeftSquareBracketKeyword_6() { return cLeftSquareBracketKeyword_6; }
		
		//xy1=EDouble
		public Assignment getXy1Assignment_7() { return cXy1Assignment_7; }
		
		//EDouble
		public RuleCall getXy1EDoubleParserRuleCall_7_0() { return cXy1EDoubleParserRuleCall_7_0; }
		
		//','
		public Keyword getCommaKeyword_8() { return cCommaKeyword_8; }
		
		//xy2=EDouble
		public Assignment getXy2Assignment_9() { return cXy2Assignment_9; }
		
		//EDouble
		public RuleCall getXy2EDoubleParserRuleCall_9_0() { return cXy2EDoubleParserRuleCall_9_0; }
		
		//']'
		public Keyword getRightSquareBracketKeyword_10() { return cRightSquareBracketKeyword_10; }
	}
	public class AllRobotsXElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.AllRobotsX");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cAllRobotsXAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cAllRobotsWorkInKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cCoordinateAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final Alternatives cCoordinateAlternatives_2_0 = (Alternatives)cCoordinateAssignment_2.eContents().get(0);
		private final Keyword cCoordinateXKeyword_2_0_0 = (Keyword)cCoordinateAlternatives_2_0.eContents().get(0);
		private final Keyword cCoordinateYKeyword_2_0_1 = (Keyword)cCoordinateAlternatives_2_0.eContents().get(1);
		private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final Alternatives cTypeAlternatives_3_0 = (Alternatives)cTypeAssignment_3.eContents().get(0);
		private final Keyword cTypeGreaterThanKeyword_3_0_0 = (Keyword)cTypeAlternatives_3_0.eContents().get(0);
		private final Keyword cTypeLowerThanKeyword_3_0_1 = (Keyword)cTypeAlternatives_3_0.eContents().get(1);
		private final Keyword cTypeGeqKeyword_3_0_2 = (Keyword)cTypeAlternatives_3_0.eContents().get(2);
		private final Keyword cTypeLeqKeyword_3_0_3 = (Keyword)cTypeAlternatives_3_0.eContents().get(3);
		private final Assignment cXyAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cXyEDoubleParserRuleCall_4_0 = (RuleCall)cXyAssignment_4.eContents().get(0);
		
		//AllRobotsX returns AllRobotsX:
		//    {AllRobotsX}
		//    'all robots work in ' coordinate=('x'|'y') type=('greater than' | 'lower than' | 'geq' | 'leq') xy=EDouble
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{AllRobotsX}
		//'all robots work in ' coordinate=('x'|'y') type=('greater than' | 'lower than' | 'geq' | 'leq') xy=EDouble
		public Group getGroup() { return cGroup; }
		
		//{AllRobotsX}
		public Action getAllRobotsXAction_0() { return cAllRobotsXAction_0; }
		
		//'all robots work in '
		public Keyword getAllRobotsWorkInKeyword_1() { return cAllRobotsWorkInKeyword_1; }
		
		//coordinate=('x'|'y')
		public Assignment getCoordinateAssignment_2() { return cCoordinateAssignment_2; }
		
		//('x'|'y')
		public Alternatives getCoordinateAlternatives_2_0() { return cCoordinateAlternatives_2_0; }
		
		//'x'
		public Keyword getCoordinateXKeyword_2_0_0() { return cCoordinateXKeyword_2_0_0; }
		
		//'y'
		public Keyword getCoordinateYKeyword_2_0_1() { return cCoordinateYKeyword_2_0_1; }
		
		//type=('greater than' | 'lower than' | 'geq' | 'leq')
		public Assignment getTypeAssignment_3() { return cTypeAssignment_3; }
		
		//('greater than' | 'lower than' | 'geq' | 'leq')
		public Alternatives getTypeAlternatives_3_0() { return cTypeAlternatives_3_0; }
		
		//'greater than'
		public Keyword getTypeGreaterThanKeyword_3_0_0() { return cTypeGreaterThanKeyword_3_0_0; }
		
		//'lower than'
		public Keyword getTypeLowerThanKeyword_3_0_1() { return cTypeLowerThanKeyword_3_0_1; }
		
		//'geq'
		public Keyword getTypeGeqKeyword_3_0_2() { return cTypeGeqKeyword_3_0_2; }
		
		//'leq'
		public Keyword getTypeLeqKeyword_3_0_3() { return cTypeLeqKeyword_3_0_3; }
		
		//xy=EDouble
		public Assignment getXyAssignment_4() { return cXyAssignment_4; }
		
		//EDouble
		public RuleCall getXyEDoubleParserRuleCall_4_0() { return cXyEDoubleParserRuleCall_4_0; }
	}
	public class RobotsXXElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.RobotsXX");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cRobotsXXAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cRobotKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cRobotAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final CrossReference cRobotRobotCrossReference_2_0 = (CrossReference)cRobotAssignment_2.eContents().get(0);
		private final RuleCall cRobotRobotEStringParserRuleCall_2_0_1 = (RuleCall)cRobotRobotCrossReference_2_0.eContents().get(1);
		private final Keyword cWorkBetweenKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cCoordinateAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final Alternatives cCoordinateAlternatives_4_0 = (Alternatives)cCoordinateAssignment_4.eContents().get(0);
		private final Keyword cCoordinateXKeyword_4_0_0 = (Keyword)cCoordinateAlternatives_4_0.eContents().get(0);
		private final Keyword cCoordinateYKeyword_4_0_1 = (Keyword)cCoordinateAlternatives_4_0.eContents().get(1);
		private final Keyword cLeftSquareBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cXy1Assignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cXy1EDoubleParserRuleCall_6_0 = (RuleCall)cXy1Assignment_6.eContents().get(0);
		private final Keyword cCommaKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Assignment cXy2Assignment_8 = (Assignment)cGroup.eContents().get(8);
		private final RuleCall cXy2EDoubleParserRuleCall_8_0 = (RuleCall)cXy2Assignment_8.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
		
		//RobotsXX returns RobotsXX:
		//    {RobotsXX}
		//    'robot' robot=[Robot|EString] 'work between'  coordinate=('x'|'y') '[' xy1=EDouble ',' xy2=EDouble ']'
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{RobotsXX}
		//'robot' robot=[Robot|EString] 'work between'  coordinate=('x'|'y') '[' xy1=EDouble ',' xy2=EDouble ']'
		public Group getGroup() { return cGroup; }
		
		//{RobotsXX}
		public Action getRobotsXXAction_0() { return cRobotsXXAction_0; }
		
		//'robot'
		public Keyword getRobotKeyword_1() { return cRobotKeyword_1; }
		
		//robot=[Robot|EString]
		public Assignment getRobotAssignment_2() { return cRobotAssignment_2; }
		
		//[Robot|EString]
		public CrossReference getRobotRobotCrossReference_2_0() { return cRobotRobotCrossReference_2_0; }
		
		//EString
		public RuleCall getRobotRobotEStringParserRuleCall_2_0_1() { return cRobotRobotEStringParserRuleCall_2_0_1; }
		
		//'work between'
		public Keyword getWorkBetweenKeyword_3() { return cWorkBetweenKeyword_3; }
		
		//coordinate=('x'|'y')
		public Assignment getCoordinateAssignment_4() { return cCoordinateAssignment_4; }
		
		//('x'|'y')
		public Alternatives getCoordinateAlternatives_4_0() { return cCoordinateAlternatives_4_0; }
		
		//'x'
		public Keyword getCoordinateXKeyword_4_0_0() { return cCoordinateXKeyword_4_0_0; }
		
		//'y'
		public Keyword getCoordinateYKeyword_4_0_1() { return cCoordinateYKeyword_4_0_1; }
		
		//'['
		public Keyword getLeftSquareBracketKeyword_5() { return cLeftSquareBracketKeyword_5; }
		
		//xy1=EDouble
		public Assignment getXy1Assignment_6() { return cXy1Assignment_6; }
		
		//EDouble
		public RuleCall getXy1EDoubleParserRuleCall_6_0() { return cXy1EDoubleParserRuleCall_6_0; }
		
		//','
		public Keyword getCommaKeyword_7() { return cCommaKeyword_7; }
		
		//xy2=EDouble
		public Assignment getXy2Assignment_8() { return cXy2Assignment_8; }
		
		//EDouble
		public RuleCall getXy2EDoubleParserRuleCall_8_0() { return cXy2EDoubleParserRuleCall_8_0; }
		
		//']'
		public Keyword getRightSquareBracketKeyword_9() { return cRightSquareBracketKeyword_9; }
	}
	public class RobotsXElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.RobotsX");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cRobotsXAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cRobotKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cRobotAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final CrossReference cRobotRobotCrossReference_2_0 = (CrossReference)cRobotAssignment_2.eContents().get(0);
		private final RuleCall cRobotRobotEStringParserRuleCall_2_0_1 = (RuleCall)cRobotRobotCrossReference_2_0.eContents().get(1);
		private final Keyword cWorkInKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cCoordinateAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final Alternatives cCoordinateAlternatives_4_0 = (Alternatives)cCoordinateAssignment_4.eContents().get(0);
		private final Keyword cCoordinateXKeyword_4_0_0 = (Keyword)cCoordinateAlternatives_4_0.eContents().get(0);
		private final Keyword cCoordinateYKeyword_4_0_1 = (Keyword)cCoordinateAlternatives_4_0.eContents().get(1);
		private final Assignment cTypeAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final Alternatives cTypeAlternatives_5_0 = (Alternatives)cTypeAssignment_5.eContents().get(0);
		private final Keyword cTypeGreaterThanKeyword_5_0_0 = (Keyword)cTypeAlternatives_5_0.eContents().get(0);
		private final Keyword cTypeLowerThanKeyword_5_0_1 = (Keyword)cTypeAlternatives_5_0.eContents().get(1);
		private final Keyword cTypeQegKeyword_5_0_2 = (Keyword)cTypeAlternatives_5_0.eContents().get(2);
		private final Keyword cTypeLeqKeyword_5_0_3 = (Keyword)cTypeAlternatives_5_0.eContents().get(3);
		private final Assignment cXyAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cXyEDoubleParserRuleCall_6_0 = (RuleCall)cXyAssignment_6.eContents().get(0);
		
		//RobotsX returns RobotsX:
		//    {RobotsX}
		//    'robot' robot=[Robot|EString] 'work in ' coordinate=('x'|'y') type=('greater than' | 'lower than' | 'qeg' | 'leq') xy=EDouble
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{RobotsX}
		//'robot' robot=[Robot|EString] 'work in ' coordinate=('x'|'y') type=('greater than' | 'lower than' | 'qeg' | 'leq') xy=EDouble
		public Group getGroup() { return cGroup; }
		
		//{RobotsX}
		public Action getRobotsXAction_0() { return cRobotsXAction_0; }
		
		//'robot'
		public Keyword getRobotKeyword_1() { return cRobotKeyword_1; }
		
		//robot=[Robot|EString]
		public Assignment getRobotAssignment_2() { return cRobotAssignment_2; }
		
		//[Robot|EString]
		public CrossReference getRobotRobotCrossReference_2_0() { return cRobotRobotCrossReference_2_0; }
		
		//EString
		public RuleCall getRobotRobotEStringParserRuleCall_2_0_1() { return cRobotRobotEStringParserRuleCall_2_0_1; }
		
		//'work in '
		public Keyword getWorkInKeyword_3() { return cWorkInKeyword_3; }
		
		//coordinate=('x'|'y')
		public Assignment getCoordinateAssignment_4() { return cCoordinateAssignment_4; }
		
		//('x'|'y')
		public Alternatives getCoordinateAlternatives_4_0() { return cCoordinateAlternatives_4_0; }
		
		//'x'
		public Keyword getCoordinateXKeyword_4_0_0() { return cCoordinateXKeyword_4_0_0; }
		
		//'y'
		public Keyword getCoordinateYKeyword_4_0_1() { return cCoordinateYKeyword_4_0_1; }
		
		//type=('greater than' | 'lower than' | 'qeg' | 'leq')
		public Assignment getTypeAssignment_5() { return cTypeAssignment_5; }
		
		//('greater than' | 'lower than' | 'qeg' | 'leq')
		public Alternatives getTypeAlternatives_5_0() { return cTypeAlternatives_5_0; }
		
		//'greater than'
		public Keyword getTypeGreaterThanKeyword_5_0_0() { return cTypeGreaterThanKeyword_5_0_0; }
		
		//'lower than'
		public Keyword getTypeLowerThanKeyword_5_0_1() { return cTypeLowerThanKeyword_5_0_1; }
		
		//'qeg'
		public Keyword getTypeQegKeyword_5_0_2() { return cTypeQegKeyword_5_0_2; }
		
		//'leq'
		public Keyword getTypeLeqKeyword_5_0_3() { return cTypeLeqKeyword_5_0_3; }
		
		//xy=EDouble
		public Assignment getXyAssignment_6() { return cXyAssignment_6; }
		
		//EDouble
		public RuleCall getXyEDoubleParserRuleCall_6_0() { return cXyEDoubleParserRuleCall_6_0; }
	}
	public class AllRobotsDeployElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.AllRobotsDeploy");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cAllRobotsDeployAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cAllRobotDeployedKeyword_1 = (Keyword)cGroup.eContents().get(1);
		
		//AllRobotsDeploy returns AllRobotsDeploy:
		//    {AllRobotsDeploy}
		//    'all robot deployed'
		//    ;
		@Override public ParserRule getRule() { return rule; }
		
		//{AllRobotsDeploy}
		//'all robot deployed'
		public Group getGroup() { return cGroup; }
		
		//{AllRobotsDeploy}
		public Action getAllRobotsDeployAction_0() { return cAllRobotsDeployAction_0; }
		
		//'all robot deployed'
		public Keyword getAllRobotDeployedKeyword_1() { return cAllRobotDeployedKeyword_1; }
	}
	public class TimeAvailableElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.TimeAvailable");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cTimeAvailableAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cTimeAvailableKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNumberAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNumberEIntParserRuleCall_2_0 = (RuleCall)cNumberAssignment_2.eContents().get(0);
		
		//TimeAvailable returns TimeAvailable:
		//    {TimeAvailable}
		//    'time available:' number = EInt
		//;
		@Override public ParserRule getRule() { return rule; }
		
		//{TimeAvailable}
		//'time available:' number = EInt
		public Group getGroup() { return cGroup; }
		
		//{TimeAvailable}
		public Action getTimeAvailableAction_0() { return cTimeAvailableAction_0; }
		
		//'time available:'
		public Keyword getTimeAvailableKeyword_1() { return cTimeAvailableKeyword_1; }
		
		//number = EInt
		public Assignment getNumberAssignment_2() { return cNumberAssignment_2; }
		
		//EInt
		public RuleCall getNumberEIntParserRuleCall_2_0() { return cNumberEIntParserRuleCall_2_0; }
	}
	public class NumAllocationsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.NumAllocations");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cNumAllocationsAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cSystemGetKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNumberAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNumberEIntParserRuleCall_2_0 = (RuleCall)cNumberAssignment_2.eContents().get(0);
		private final Keyword cNumberOfAllocationsKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//NumAllocations returns NumAllocations:
		//    {NumAllocations}
		//    'system: get ' number = EInt 'number of allocations'
		//;
		@Override public ParserRule getRule() { return rule; }
		
		//{NumAllocations}
		//'system: get ' number = EInt 'number of allocations'
		public Group getGroup() { return cGroup; }
		
		//{NumAllocations}
		public Action getNumAllocationsAction_0() { return cNumAllocationsAction_0; }
		
		//'system: get '
		public Keyword getSystemGetKeyword_1() { return cSystemGetKeyword_1; }
		
		//number = EInt
		public Assignment getNumberAssignment_2() { return cNumberAssignment_2; }
		
		//EInt
		public RuleCall getNumberEIntParserRuleCall_2_0() { return cNumberEIntParserRuleCall_2_0; }
		
		//'number of allocations'
		public Keyword getNumberOfAllocationsKeyword_3() { return cNumberOfAllocationsKeyword_3; }
	}
	public class NumPopulationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.NumPopulation");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cNumPopulationAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cSystemEvocheckerPopulationKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNumberAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNumberEIntParserRuleCall_2_0 = (RuleCall)cNumberAssignment_2.eContents().get(0);
		
		//NumPopulation returns NumPopulation:
		//    {NumPopulation}
		//    'system: evochecker population' number = EInt
		//;
		@Override public ParserRule getRule() { return rule; }
		
		//{NumPopulation}
		//'system: evochecker population' number = EInt
		public Group getGroup() { return cGroup; }
		
		//{NumPopulation}
		public Action getNumPopulationAction_0() { return cNumPopulationAction_0; }
		
		//'system: evochecker population'
		public Keyword getSystemEvocheckerPopulationKeyword_1() { return cSystemEvocheckerPopulationKeyword_1; }
		
		//number = EInt
		public Assignment getNumberAssignment_2() { return cNumberAssignment_2; }
		
		//EInt
		public RuleCall getNumberEIntParserRuleCall_2_0() { return cNumberEIntParserRuleCall_2_0; }
	}
	public class NumEvaluationsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.NumEvaluations");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cNumEvaluationsAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cSystemEvocheckerEvaluationsKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNumberAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNumberEIntParserRuleCall_2_0 = (RuleCall)cNumberAssignment_2.eContents().get(0);
		
		//NumEvaluations returns NumEvaluations:
		//    {NumEvaluations}
		//    'system: evochecker evaluations' number = EInt
		//;
		@Override public ParserRule getRule() { return rule; }
		
		//{NumEvaluations}
		//'system: evochecker evaluations' number = EInt
		public Group getGroup() { return cGroup; }
		
		//{NumEvaluations}
		public Action getNumEvaluationsAction_0() { return cNumEvaluationsAction_0; }
		
		//'system: evochecker evaluations'
		public Keyword getSystemEvocheckerEvaluationsKeyword_1() { return cSystemEvocheckerEvaluationsKeyword_1; }
		
		//number = EInt
		public Assignment getNumberAssignment_2() { return cNumberAssignment_2; }
		
		//EInt
		public RuleCall getNumberEIntParserRuleCall_2_0() { return cNumberEIntParserRuleCall_2_0; }
	}
	public class LocationOrSpaceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.LocationOrSpace");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final Assignment cSpaceAssignment_0 = (Assignment)cAlternatives.eContents().get(0);
		private final Keyword cSpaceHyphenMinusKeyword_0_0 = (Keyword)cSpaceAssignment_0.eContents().get(0);
		private final Assignment cLocAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
		private final CrossReference cLocLocationCrossReference_1_0 = (CrossReference)cLocAssignment_1.eContents().get(0);
		private final RuleCall cLocLocationEStringParserRuleCall_1_0_1 = (RuleCall)cLocLocationCrossReference_1_0.eContents().get(1);
		
		///// ----------- Others
		//LocationOrSpace returns LocationOrSpace:
		//    space='-' | loc=[Location|EString];
		@Override public ParserRule getRule() { return rule; }
		
		//space='-' | loc=[Location|EString]
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//space='-'
		public Assignment getSpaceAssignment_0() { return cSpaceAssignment_0; }
		
		//'-'
		public Keyword getSpaceHyphenMinusKeyword_0_0() { return cSpaceHyphenMinusKeyword_0_0; }
		
		//loc=[Location|EString]
		public Assignment getLocAssignment_1() { return cLocAssignment_1; }
		
		//[Location|EString]
		public CrossReference getLocLocationCrossReference_1_0() { return cLocLocationCrossReference_1_0; }
		
		//EString
		public RuleCall getLocLocationEStringParserRuleCall_1_0_1() { return cLocLocationEStringParserRuleCall_1_0_1; }
	}
	public class EStringElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.EString");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSTRINGTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cIDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//EString returns ecore::EString:
		//    STRING | ID;
		@Override public ParserRule getRule() { return rule; }
		
		//STRING | ID
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//STRING
		public RuleCall getSTRINGTerminalRuleCall_0() { return cSTRINGTerminalRuleCall_0; }
		
		//ID
		public RuleCall getIDTerminalRuleCall_1() { return cIDTerminalRuleCall_1; }
	}
	public class EDoubleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.EDouble");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final RuleCall cINTTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Alternatives cAlternatives_4_0 = (Alternatives)cGroup_4.eContents().get(0);
		private final Keyword cEKeyword_4_0_0 = (Keyword)cAlternatives_4_0.eContents().get(0);
		private final Keyword cEKeyword_4_0_1 = (Keyword)cAlternatives_4_0.eContents().get(1);
		private final Keyword cHyphenMinusKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final RuleCall cINTTerminalRuleCall_4_2 = (RuleCall)cGroup_4.eContents().get(2);
		
		//EDouble returns ecore::EDouble:
		//    '-'? INT? '.' INT (('E'|'e') '-'? INT)?;
		@Override public ParserRule getRule() { return rule; }
		
		//'-'? INT? '.' INT (('E'|'e') '-'? INT)?
		public Group getGroup() { return cGroup; }
		
		//'-'?
		public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
		
		//INT?
		public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; }
		
		//'.'
		public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; }
		
		//INT
		public RuleCall getINTTerminalRuleCall_3() { return cINTTerminalRuleCall_3; }
		
		//(('E'|'e') '-'? INT)?
		public Group getGroup_4() { return cGroup_4; }
		
		//('E'|'e')
		public Alternatives getAlternatives_4_0() { return cAlternatives_4_0; }
		
		//'E'
		public Keyword getEKeyword_4_0_0() { return cEKeyword_4_0_0; }
		
		//'e'
		public Keyword getEKeyword_4_0_1() { return cEKeyword_4_0_1; }
		
		//'-'?
		public Keyword getHyphenMinusKeyword_4_1() { return cHyphenMinusKeyword_4_1; }
		
		//INT
		public RuleCall getINTTerminalRuleCall_4_2() { return cINTTerminalRuleCall_4_2; }
	}
	public class EIntElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.EInt");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
		
		//EInt returns ecore::EInt:
		//    '-'? INT;
		@Override public ParserRule getRule() { return rule; }
		
		//'-'? INT
		public Group getGroup() { return cGroup; }
		
		//'-'?
		public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
		
		//INT
		public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; }
	}
	public class EBooleanElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.xtext.example.mydsl.MyDsl.EBoolean");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final Keyword cTrueKeyword_0 = (Keyword)cAlternatives.eContents().get(0);
		private final Keyword cFalseKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
		
		//EBoolean returns ecore::EBoolean:
		//    'true' | 'false';
		@Override public ParserRule getRule() { return rule; }
		
		//'true' | 'false'
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//'true'
		public Keyword getTrueKeyword_0() { return cTrueKeyword_0; }
		
		//'false'
		public Keyword getFalseKeyword_1() { return cFalseKeyword_1; }
	}
	
	
	private final ProblemSpecificationElements pProblemSpecification;
	private final TasksModelElements pTasksModel;
	private final AtomicTaskElements pAtomicTask;
	private final CompoundTaskElements pCompoundTask;
	private final WorldModelElements pWorldModel;
	private final LocationElements pLocation;
	private final PathsElements pPaths;
	private final RobotsModelElements pRobotsModel;
	private final CapabilityElements pCapability;
	private final RobotElements pRobot;
	private final Robots2tasksPerformanceElements pRobots2tasksPerformance;
	private final MissionElements pMission;
	private final AtomicTaskNoLocElements pAtomicTaskNoLoc;
	private final AtomicTaskLocElements pAtomicTaskLoc;
	private final CompTaskNoLocElements pCompTaskNoLoc;
	private final CompTaskOneLocElements pCompTaskOneLoc;
	private final CompTaskListLocElements pCompTaskListLoc;
	private final CompTaskAtButElements pCompTaskAtBut;
	private final CompTaskStatedButElements pCompTaskStatedBut;
	private final QoSElements pQoS;
	private final AllRobotsXXElements pAllRobotsXX;
	private final AllRobotsXElements pAllRobotsX;
	private final RobotsXXElements pRobotsXX;
	private final RobotsXElements pRobotsX;
	private final AllRobotsDeployElements pAllRobotsDeploy;
	private final TimeAvailableElements pTimeAvailable;
	private final NumAllocationsElements pNumAllocations;
	private final NumPopulationElements pNumPopulation;
	private final NumEvaluationsElements pNumEvaluations;
	private final LocationOrSpaceElements pLocationOrSpace;
	private final EStringElements pEString;
	private final EDoubleElements pEDouble;
	private final EIntElements pEInt;
	private final EBooleanElements pEBoolean;
	
	private final Grammar grammar;
	
	private final TerminalsGrammarAccess gaTerminals;

	@Inject
	public MyDslGrammarAccess(GrammarProvider grammarProvider,
			TerminalsGrammarAccess gaTerminals) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaTerminals = gaTerminals;
		this.pProblemSpecification = new ProblemSpecificationElements();
		this.pTasksModel = new TasksModelElements();
		this.pAtomicTask = new AtomicTaskElements();
		this.pCompoundTask = new CompoundTaskElements();
		this.pWorldModel = new WorldModelElements();
		this.pLocation = new LocationElements();
		this.pPaths = new PathsElements();
		this.pRobotsModel = new RobotsModelElements();
		this.pCapability = new CapabilityElements();
		this.pRobot = new RobotElements();
		this.pRobots2tasksPerformance = new Robots2tasksPerformanceElements();
		this.pMission = new MissionElements();
		this.pAtomicTaskNoLoc = new AtomicTaskNoLocElements();
		this.pAtomicTaskLoc = new AtomicTaskLocElements();
		this.pCompTaskNoLoc = new CompTaskNoLocElements();
		this.pCompTaskOneLoc = new CompTaskOneLocElements();
		this.pCompTaskListLoc = new CompTaskListLocElements();
		this.pCompTaskAtBut = new CompTaskAtButElements();
		this.pCompTaskStatedBut = new CompTaskStatedButElements();
		this.pQoS = new QoSElements();
		this.pAllRobotsXX = new AllRobotsXXElements();
		this.pAllRobotsX = new AllRobotsXElements();
		this.pRobotsXX = new RobotsXXElements();
		this.pRobotsX = new RobotsXElements();
		this.pAllRobotsDeploy = new AllRobotsDeployElements();
		this.pTimeAvailable = new TimeAvailableElements();
		this.pNumAllocations = new NumAllocationsElements();
		this.pNumPopulation = new NumPopulationElements();
		this.pNumEvaluations = new NumEvaluationsElements();
		this.pLocationOrSpace = new LocationOrSpaceElements();
		this.pEString = new EStringElements();
		this.pEDouble = new EDoubleElements();
		this.pEInt = new EIntElements();
		this.pEBoolean = new EBooleanElements();
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("org.xtext.example.mydsl.MyDsl".equals(grammar.getName())) {
				return grammar;
			}
			List<Grammar> grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	@Override
	public Grammar getGrammar() {
		return grammar;
	}
	
	
	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//ProblemSpecification returns ProblemSpecification:
	//    {ProblemSpecification}
	//    'ProblemSpecification'
	//    '{'
	//        'WorldModel' ':' worldModel+=WorldModel ( worldModel+=WorldModel)*
	//        'TasksModel' ':' tasksModel+=TasksModel ( tasksModel+=TasksModel)*
	//        'RobotsModel' ':' robotsModel=RobotsModel
	//        'Mission' ':' mission+=Mission ( mission+=Mission)*
	//        //('QoS' ':' qos+=QoS ( qos+=QoS)*)?
	//        (qos+=QoS ( qos+=QoS)*)?
	//    '}';
	public ProblemSpecificationElements getProblemSpecificationAccess() {
		return pProblemSpecification;
	}
	
	public ParserRule getProblemSpecificationRule() {
		return getProblemSpecificationAccess().getRule();
	}
	
	///// --------- Tasks
	//TasksModel returns TasksModel:
	//    AtomicTask | CompoundTask;
	public TasksModelElements getTasksModelAccess() {
		return pTasksModel;
	}
	
	public ParserRule getTasksModelRule() {
		return getTasksModelAccess().getRule();
	}
	
	//AtomicTask returns AtomicTask:
	//    {AtomicTask}
	//    name=EString ':'
	//        robots=EInt 'robots' 'needed'
	//        ('at' 'location' loc=[Location|EString])?
	//        ('with' 'criticality'':'criticality=EBoolean)?
	//        ('(''description' ':' description=EString')')?
	//        ;
	public AtomicTaskElements getAtomicTaskAccess() {
		return pAtomicTask;
	}
	
	public ParserRule getAtomicTaskRule() {
		return getAtomicTaskAccess().getRule();
	}
	
	//CompoundTask returns CompoundTask:
	//    {CompoundTask}
	//    name=EString ':'
	//        //('location' location=[Location|EString])?
	//        'subtasks' '['
	//         canDoTask+=[TasksModel|EString] ("," canDoTask+=[TasksModel|EString])*
	//        ']'
	//        ('at' location=[Location|EString])?
	//        ('with' 'criticality'':'criticality=EBoolean)?
	//        ('ordered'':'ordered=EBoolean)?
	//        ('consecutive'':'consecutive=EBoolean)?
	//        ('(''description' ':' description=EString')')?
	//        ;
	public CompoundTaskElements getCompoundTaskAccess() {
		return pCompoundTask;
	}
	
	public ParserRule getCompoundTaskRule() {
		return getCompoundTaskAccess().getRule();
	}
	
	///// --------- World model
	//WorldModel returns WorldModel:
	//        Location | Paths ;
	public WorldModelElements getWorldModelAccess() {
		return pWorldModel;
	}
	
	public ParserRule getWorldModelRule() {
		return getWorldModelAccess().getRule();
	}
	
	//Location returns Location:
	//    {Location}
	//    name=EString ':'
	//    '('
	//        'x' x=EDouble
	//        'y' y=EDouble
	//        ('description' description=EString)?
	//    ')';
	public LocationElements getLocationAccess() {
		return pLocation;
	}
	
	public ParserRule getLocationRule() {
		return getLocationAccess().getRule();
	}
	
	//Paths returns Paths:
	//    {Paths}
	//        loc1=[Location|EString] 'to'
	//         loc2=[Location|EString] ','
	//        'distance' distance=EDouble;
	public PathsElements getPathsAccess() {
		return pPaths;
	}
	
	public ParserRule getPathsRule() {
		return getPathsAccess().getRule();
	}
	
	///// ----------- Robots
	//RobotsModel returns RobotsModel:
	//        //'capabilities' ':' capability+=Capability (capability+=Capability)*
	//        'robots' ':' robots+=Robot (robots+=Robot)*
	//        ;
	public RobotsModelElements getRobotsModelAccess() {
		return pRobotsModel;
	}
	
	public ParserRule getRobotsModelRule() {
		return getRobotsModelAccess().getRule();
	}
	
	//Capability returns Capability:
	//    {Capability}
	//        name=EString  ':' 'can' 'do' 'atomic' 'tasks' at+=[AtomicTask|EString]
	//        ( "," at+=[AtomicTask|EString])*
	//        ('('description=EString')')?
	//        ;
	public CapabilityElements getCapabilityAccess() {
		return pCapability;
	}
	
	public ParserRule getCapabilityRule() {
		return getCapabilityAccess().getRule();
	}
	
	//Robot returns Robot:
	//    {Robot}
	//    name=EString ':' 'at' 'initial' 'location' initLoc=[Location|EString]
	//    'has' 'velocity' velocity=EDouble
	//    //'with' 'capabilities' capabilities+=[Capability|EString] ( "," capabilities+=[Capability|EString])*
	//    'can' 'do'
	//    '('
	//    robots2tasksPerformance+=Robots2tasksPerformance ( "," robots2tasksPerformance+=Robots2tasksPerformance)*
	//    ')'
	//    ;
	public RobotElements getRobotAccess() {
		return pRobot;
	}
	
	public ParserRule getRobotRule() {
		return getRobotAccess().getRule();
	}
	
	//Robots2tasksPerformance returns Robots2tasksPerformance:
	//    {Robots2tasksPerformance}
	//        at=[AtomicTask|EString]   '-' 'time required' ':' time=EDouble ',' 'success' 'probability' ':' prob=EDouble
	//    ;
	public Robots2tasksPerformanceElements getRobots2tasksPerformanceAccess() {
		return pRobots2tasksPerformance;
	}
	
	public ParserRule getRobots2tasksPerformanceRule() {
		return getRobots2tasksPerformanceAccess().getRule();
	}
	
	///// ----------- Missions
	//Mission returns Mission:
	//    AtomicTaskNoLoc | AtomicTaskLoc | CompTaskNoLoc | CompTaskOneLoc | CompTaskListLoc | CompTaskAtBut | CompTaskStatedBut
	//    ;
	public MissionElements getMissionAccess() {
		return pMission;
	}
	
	public ParserRule getMissionRule() {
		return getMissionAccess().getRule();
	}
	
	//AtomicTaskNoLoc returns AtomicTaskNoLoc:
	//    {AtomicTaskNoLoc}
	//    name=EString ':' at=[AtomicTask|EString]
	//    ('(' description=EString ')')?
	//    ;
	public AtomicTaskNoLocElements getAtomicTaskNoLocAccess() {
		return pAtomicTaskNoLoc;
	}
	
	public ParserRule getAtomicTaskNoLocRule() {
		return getAtomicTaskNoLocAccess().getRule();
	}
	
	//AtomicTaskLoc returns AtomicTaskLoc:
	//    {AtomicTaskLoc}
	//    name=EString ':'
	//    'atomic' 'task' at=[AtomicTask|EString] 'at' loc=[Location|EString]
	//    ('(' description=EString ')')?
	//    ;
	public AtomicTaskLocElements getAtomicTaskLocAccess() {
		return pAtomicTaskLoc;
	}
	
	public ParserRule getAtomicTaskLocRule() {
		return getAtomicTaskLocAccess().getRule();
	}
	
	//CompTaskNoLoc returns CompTaskNoLoc:
	//    {CompTaskNoLoc}
	//    name=EString ':'
	//    'compound' 'task' ct=[CompoundTask|EString]
	//    ('-''criticality' criticality=EString)?
	//    ('(' description=EString ')')?
	//    ;
	public CompTaskNoLocElements getCompTaskNoLocAccess() {
		return pCompTaskNoLoc;
	}
	
	public ParserRule getCompTaskNoLocRule() {
		return getCompTaskNoLocAccess().getRule();
	}
	
	//CompTaskOneLoc returns CompTaskOneLoc:
	//    {CompTaskOneLoc}
	//    name=EString ':'
	//    'compound' 'task' ct=[CompoundTask|EString] 'at' loc=[Location|EString]
	//    ('-''criticality' criticality=EString)?
	//    ('(' description=EString ')')?
	//    ;
	public CompTaskOneLocElements getCompTaskOneLocAccess() {
		return pCompTaskOneLoc;
	}
	
	public ParserRule getCompTaskOneLocRule() {
		return getCompTaskOneLocAccess().getRule();
	}
	
	//CompTaskListLoc returns CompTaskListLoc:
	//    {CompTaskListLoc}
	//    name=EString ':'
	//    'compound' 'task' ct=[CompoundTask|EString] 'at'
	//    '[' locationList+=[Location|EString] ( "," locationList+=[Location|EString])* ']'
	//    ('-''criticality' criticality=EString)?
	//    ('(' description=EString ')')?
	//    ;
	public CompTaskListLocElements getCompTaskListLocAccess() {
		return pCompTaskListLoc;
	}
	
	public ParserRule getCompTaskListLocRule() {
		return getCompTaskListLocAccess().getRule();
	}
	
	//CompTaskAtBut returns CompTaskAtBut:
	//    {CompTaskAtBut}
	//    name=EString ':'
	//    'compound' 'task' ct=[CompoundTask|EString] 'at' loc=[Location|EString]
	//    'but' '[' locationList+=LocationOrSpace ( "," locationList+=LocationOrSpace)* ']'
	//    ('-''criticality' criticality=EString)?
	//    ('(' description=EString ')')?
	//    ;
	public CompTaskAtButElements getCompTaskAtButAccess() {
		return pCompTaskAtBut;
	}
	
	public ParserRule getCompTaskAtButRule() {
		return getCompTaskAtButAccess().getRule();
	}
	
	//CompTaskStatedBut returns CompTaskStatedBut:
	//    {CompTaskStatedBut}
	//    name=EString ':'
	//    'compound' 'task' ct=[CompoundTask|EString] 'as' 'specified'
	//    'but' '[' locationList+=LocationOrSpace ( "," locationList+=LocationOrSpace)* ']'
	//    ('-''criticality' criticality=EString)?
	//    ('(' description=EString ')')?
	//    ;
	public CompTaskStatedButElements getCompTaskStatedButAccess() {
		return pCompTaskStatedBut;
	}
	
	public ParserRule getCompTaskStatedButRule() {
		return getCompTaskStatedButAccess().getRule();
	}
	
	///// ----------- QoS
	//QoS returns QoS:
	//    AllRobotsXX | AllRobotsX | RobotsXX | RobotsX | AllRobotsDeploy | NumAllocations | NumPopulation | NumEvaluations | TimeAvailable
	//    ;
	public QoSElements getQoSAccess() {
		return pQoS;
	}
	
	public ParserRule getQoSRule() {
		return getQoSAccess().getRule();
	}
	
	//AllRobotsXX returns AllRobotsXX:
	//    {AllRobotsXX}
	//    'all' 'robots' 'work' 'between' coordinate=('x'|'y') '[' xy1=EDouble ',' xy2=EDouble ']'
	//    ;
	public AllRobotsXXElements getAllRobotsXXAccess() {
		return pAllRobotsXX;
	}
	
	public ParserRule getAllRobotsXXRule() {
		return getAllRobotsXXAccess().getRule();
	}
	
	//AllRobotsX returns AllRobotsX:
	//    {AllRobotsX}
	//    'all robots work in ' coordinate=('x'|'y') type=('greater than' | 'lower than' | 'geq' | 'leq') xy=EDouble
	//    ;
	public AllRobotsXElements getAllRobotsXAccess() {
		return pAllRobotsX;
	}
	
	public ParserRule getAllRobotsXRule() {
		return getAllRobotsXAccess().getRule();
	}
	
	//RobotsXX returns RobotsXX:
	//    {RobotsXX}
	//    'robot' robot=[Robot|EString] 'work between'  coordinate=('x'|'y') '[' xy1=EDouble ',' xy2=EDouble ']'
	//    ;
	public RobotsXXElements getRobotsXXAccess() {
		return pRobotsXX;
	}
	
	public ParserRule getRobotsXXRule() {
		return getRobotsXXAccess().getRule();
	}
	
	//RobotsX returns RobotsX:
	//    {RobotsX}
	//    'robot' robot=[Robot|EString] 'work in ' coordinate=('x'|'y') type=('greater than' | 'lower than' | 'qeg' | 'leq') xy=EDouble
	//    ;
	public RobotsXElements getRobotsXAccess() {
		return pRobotsX;
	}
	
	public ParserRule getRobotsXRule() {
		return getRobotsXAccess().getRule();
	}
	
	//AllRobotsDeploy returns AllRobotsDeploy:
	//    {AllRobotsDeploy}
	//    'all robot deployed'
	//    ;
	public AllRobotsDeployElements getAllRobotsDeployAccess() {
		return pAllRobotsDeploy;
	}
	
	public ParserRule getAllRobotsDeployRule() {
		return getAllRobotsDeployAccess().getRule();
	}
	
	//TimeAvailable returns TimeAvailable:
	//    {TimeAvailable}
	//    'time available:' number = EInt
	//;
	public TimeAvailableElements getTimeAvailableAccess() {
		return pTimeAvailable;
	}
	
	public ParserRule getTimeAvailableRule() {
		return getTimeAvailableAccess().getRule();
	}
	
	//NumAllocations returns NumAllocations:
	//    {NumAllocations}
	//    'system: get ' number = EInt 'number of allocations'
	//;
	public NumAllocationsElements getNumAllocationsAccess() {
		return pNumAllocations;
	}
	
	public ParserRule getNumAllocationsRule() {
		return getNumAllocationsAccess().getRule();
	}
	
	//NumPopulation returns NumPopulation:
	//    {NumPopulation}
	//    'system: evochecker population' number = EInt
	//;
	public NumPopulationElements getNumPopulationAccess() {
		return pNumPopulation;
	}
	
	public ParserRule getNumPopulationRule() {
		return getNumPopulationAccess().getRule();
	}
	
	//NumEvaluations returns NumEvaluations:
	//    {NumEvaluations}
	//    'system: evochecker evaluations' number = EInt
	//;
	public NumEvaluationsElements getNumEvaluationsAccess() {
		return pNumEvaluations;
	}
	
	public ParserRule getNumEvaluationsRule() {
		return getNumEvaluationsAccess().getRule();
	}
	
	///// ----------- Others
	//LocationOrSpace returns LocationOrSpace:
	//    space='-' | loc=[Location|EString];
	public LocationOrSpaceElements getLocationOrSpaceAccess() {
		return pLocationOrSpace;
	}
	
	public ParserRule getLocationOrSpaceRule() {
		return getLocationOrSpaceAccess().getRule();
	}
	
	//EString returns ecore::EString:
	//    STRING | ID;
	public EStringElements getEStringAccess() {
		return pEString;
	}
	
	public ParserRule getEStringRule() {
		return getEStringAccess().getRule();
	}
	
	//EDouble returns ecore::EDouble:
	//    '-'? INT? '.' INT (('E'|'e') '-'? INT)?;
	public EDoubleElements getEDoubleAccess() {
		return pEDouble;
	}
	
	public ParserRule getEDoubleRule() {
		return getEDoubleAccess().getRule();
	}
	
	//EInt returns ecore::EInt:
	//    '-'? INT;
	public EIntElements getEIntAccess() {
		return pEInt;
	}
	
	public ParserRule getEIntRule() {
		return getEIntAccess().getRule();
	}
	
	//EBoolean returns ecore::EBoolean:
	//    'true' | 'false';
	public EBooleanElements getEBooleanAccess() {
		return pEBoolean;
	}
	
	public ParserRule getEBooleanRule() {
		return getEBooleanAccess().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();
	}
}
