/* * generated by Xtext */ package insa.services; import com.google.inject.Singleton; import com.google.inject.Inject; import java.util.List; import org.eclipse.xtext.*; import org.eclipse.xtext.service.GrammarProvider; import org.eclipse.xtext.service.AbstractElementFinder.*; @Singleton public class LegoGrammarAccess extends AbstractGrammarElementFinder { public class ProgramUnitElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ProgramUnit"); private final Assignment cBlockAssignment = (Assignment)rule.eContents().get(1); private final RuleCall cBlockExpressionParserRuleCall_0 = (RuleCall)cBlockAssignment.eContents().get(0); //ProgramUnit returns robot::ProgramUnit: // block+=Expression*; public ParserRule getRule() { return rule; } //block+=Expression* public Assignment getBlockAssignment() { return cBlockAssignment; } //Expression public RuleCall getBlockExpressionParserRuleCall_0() { return cBlockExpressionParserRuleCall_0; } } public class ExpressionElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Expression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cWhileLoopParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cNegExpParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cAndExpParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); private final RuleCall cIfBlockParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); private final RuleCall cCommandParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); //Expression returns FlotCtrl::Expression: // WhileLoop | NegExp | AndExp | IfBlock | Command; public ParserRule getRule() { return rule; } //WhileLoop | NegExp | AndExp | IfBlock | Command public Alternatives getAlternatives() { return cAlternatives; } //WhileLoop public RuleCall getWhileLoopParserRuleCall_0() { return cWhileLoopParserRuleCall_0; } //NegExp public RuleCall getNegExpParserRuleCall_1() { return cNegExpParserRuleCall_1; } //AndExp public RuleCall getAndExpParserRuleCall_2() { return cAndExpParserRuleCall_2; } //IfBlock public RuleCall getIfBlockParserRuleCall_3() { return cIfBlockParserRuleCall_3; } //Command public RuleCall getCommandParserRuleCall_4() { return cCommandParserRuleCall_4; } } public class BoolExpElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BoolExp"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cNegExpParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cAndExpParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cHasTurnedCmdParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); private final RuleCall cObstacleCmdParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); //BoolExp returns FlotCtrl::BoolExp: // NegExp | AndExp | HasTurnedCmd | ObstacleCmd; public ParserRule getRule() { return rule; } //NegExp | AndExp | HasTurnedCmd | ObstacleCmd public Alternatives getAlternatives() { return cAlternatives; } //NegExp public RuleCall getNegExpParserRuleCall_0() { return cNegExpParserRuleCall_0; } //AndExp public RuleCall getAndExpParserRuleCall_1() { return cAndExpParserRuleCall_1; } //HasTurnedCmd public RuleCall getHasTurnedCmdParserRuleCall_2() { return cHasTurnedCmdParserRuleCall_2; } //ObstacleCmd public RuleCall getObstacleCmdParserRuleCall_3() { return cObstacleCmdParserRuleCall_3; } } public class WhileLoopElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "WhileLoop"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cWhileKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cLoopCondAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cLoopCondBoolExpParserRuleCall_1_0 = (RuleCall)cLoopCondAssignment_1.eContents().get(0); private final Keyword cDoKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cBlockAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cBlockExpressionParserRuleCall_3_0 = (RuleCall)cBlockAssignment_3.eContents().get(0); private final Keyword cEndKeyword_4 = (Keyword)cGroup.eContents().get(4); //WhileLoop returns FlotCtrl::WhileLoop: // "while" loopCond=BoolExp "do" block+=Expression* "end"; public ParserRule getRule() { return rule; } //"while" loopCond=BoolExp "do" block+=Expression* "end" public Group getGroup() { return cGroup; } //"while" public Keyword getWhileKeyword_0() { return cWhileKeyword_0; } //loopCond=BoolExp public Assignment getLoopCondAssignment_1() { return cLoopCondAssignment_1; } //BoolExp public RuleCall getLoopCondBoolExpParserRuleCall_1_0() { return cLoopCondBoolExpParserRuleCall_1_0; } //"do" public Keyword getDoKeyword_2() { return cDoKeyword_2; } //block+=Expression* public Assignment getBlockAssignment_3() { return cBlockAssignment_3; } //Expression public RuleCall getBlockExpressionParserRuleCall_3_0() { return cBlockExpressionParserRuleCall_3_0; } //"end" public Keyword getEndKeyword_4() { return cEndKeyword_4; } } public class NegExpElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NegExp"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cNotKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cExpAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cExpBoolExpParserRuleCall_1_0 = (RuleCall)cExpAssignment_1.eContents().get(0); //NegExp returns FlotCtrl::NegExp: // "not" exp=BoolExp; public ParserRule getRule() { return rule; } //"not" exp=BoolExp public Group getGroup() { return cGroup; } //"not" public Keyword getNotKeyword_0() { return cNotKeyword_0; } //exp=BoolExp public Assignment getExpAssignment_1() { return cExpAssignment_1; } //BoolExp public RuleCall getExpBoolExpParserRuleCall_1_0() { return cExpBoolExpParserRuleCall_1_0; } } public class AndExpElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AndExp"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cAndKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cLeftExpAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cLeftExpBoolExpParserRuleCall_1_0 = (RuleCall)cLeftExpAssignment_1.eContents().get(0); private final Assignment cRightExpAssignment_2 = (Assignment)cGroup.eContents().get(2); private final RuleCall cRightExpBoolExpParserRuleCall_2_0 = (RuleCall)cRightExpAssignment_2.eContents().get(0); //AndExp returns FlotCtrl::AndExp: // "and" leftExp=BoolExp rightExp=BoolExp; public ParserRule getRule() { return rule; } //"and" leftExp=BoolExp rightExp=BoolExp public Group getGroup() { return cGroup; } //"and" public Keyword getAndKeyword_0() { return cAndKeyword_0; } //leftExp=BoolExp public Assignment getLeftExpAssignment_1() { return cLeftExpAssignment_1; } //BoolExp public RuleCall getLeftExpBoolExpParserRuleCall_1_0() { return cLeftExpBoolExpParserRuleCall_1_0; } //rightExp=BoolExp public Assignment getRightExpAssignment_2() { return cRightExpAssignment_2; } //BoolExp public RuleCall getRightExpBoolExpParserRuleCall_2_0() { return cRightExpBoolExpParserRuleCall_2_0; } } public class IfBlockElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "IfBlock"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1); private final RuleCall cConditionBoolExpParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0); private final Keyword cThenKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Assignment cThenBlockAssignment_3 = (Assignment)cGroup.eContents().get(3); private final RuleCall cThenBlockExpressionParserRuleCall_3_0 = (RuleCall)cThenBlockAssignment_3.eContents().get(0); private final Group cGroup_4 = (Group)cGroup.eContents().get(4); private final Keyword cElseKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); private final Assignment cElseBlockAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); private final RuleCall cElseBlockExpressionParserRuleCall_4_1_0 = (RuleCall)cElseBlockAssignment_4_1.eContents().get(0); private final Keyword cEndKeyword_5 = (Keyword)cGroup.eContents().get(5); //IfBlock returns FlotCtrl::IfBlock: // "if" condition=BoolExp "then" thenBlock+=Expression* ("else" elseBlock+=Expression*)? "end"; public ParserRule getRule() { return rule; } //"if" condition=BoolExp "then" thenBlock+=Expression* ("else" elseBlock+=Expression*)? "end" public Group getGroup() { return cGroup; } //"if" public Keyword getIfKeyword_0() { return cIfKeyword_0; } //condition=BoolExp public Assignment getConditionAssignment_1() { return cConditionAssignment_1; } //BoolExp public RuleCall getConditionBoolExpParserRuleCall_1_0() { return cConditionBoolExpParserRuleCall_1_0; } //"then" public Keyword getThenKeyword_2() { return cThenKeyword_2; } //thenBlock+=Expression* public Assignment getThenBlockAssignment_3() { return cThenBlockAssignment_3; } //Expression public RuleCall getThenBlockExpressionParserRuleCall_3_0() { return cThenBlockExpressionParserRuleCall_3_0; } //("else" elseBlock+=Expression*)? public Group getGroup_4() { return cGroup_4; } //"else" public Keyword getElseKeyword_4_0() { return cElseKeyword_4_0; } //elseBlock+=Expression* public Assignment getElseBlockAssignment_4_1() { return cElseBlockAssignment_4_1; } //Expression public RuleCall getElseBlockExpressionParserRuleCall_4_1_0() { return cElseBlockExpressionParserRuleCall_4_1_0; } //"end" public Keyword getEndKeyword_5() { return cEndKeyword_5; } } public class CommandElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Command"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final RuleCall cMoveCmdParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); private final RuleCall cPrintCmdParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); private final RuleCall cSetTurnAngleCmdParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); private final RuleCall cStopEngineCmdParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); private final RuleCall cStopProgramCmdParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); private final RuleCall cTurnCmdParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5); private final RuleCall cHasTurnedCmdParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6); private final RuleCall cObstacleCmdParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7); //Command returns robot::Command: // MoveCmd | PrintCmd | SetTurnAngleCmd | StopEngineCmd | StopProgramCmd | TurnCmd | HasTurnedCmd | ObstacleCmd; public ParserRule getRule() { return rule; } //MoveCmd | PrintCmd | SetTurnAngleCmd | StopEngineCmd | StopProgramCmd | TurnCmd | HasTurnedCmd | ObstacleCmd public Alternatives getAlternatives() { return cAlternatives; } //MoveCmd public RuleCall getMoveCmdParserRuleCall_0() { return cMoveCmdParserRuleCall_0; } //PrintCmd public RuleCall getPrintCmdParserRuleCall_1() { return cPrintCmdParserRuleCall_1; } //SetTurnAngleCmd public RuleCall getSetTurnAngleCmdParserRuleCall_2() { return cSetTurnAngleCmdParserRuleCall_2; } //StopEngineCmd public RuleCall getStopEngineCmdParserRuleCall_3() { return cStopEngineCmdParserRuleCall_3; } //StopProgramCmd public RuleCall getStopProgramCmdParserRuleCall_4() { return cStopProgramCmdParserRuleCall_4; } //TurnCmd public RuleCall getTurnCmdParserRuleCall_5() { return cTurnCmdParserRuleCall_5; } //HasTurnedCmd public RuleCall getHasTurnedCmdParserRuleCall_6() { return cHasTurnedCmdParserRuleCall_6; } //ObstacleCmd public RuleCall getObstacleCmdParserRuleCall_7() { return cObstacleCmdParserRuleCall_7; } } public class BipElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Bip"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cBipKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Keyword cDurationKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cDurationAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cDurationINTTerminalRuleCall_4_0 = (RuleCall)cDurationAssignment_4.eContents().get(0); private final Keyword cCommaKeyword_5 = (Keyword)cGroup.eContents().get(5); private final Keyword cPowerKeyword_6 = (Keyword)cGroup.eContents().get(6); private final Keyword cEqualsSignKeyword_7 = (Keyword)cGroup.eContents().get(7); private final Assignment cPowerAssignment_8 = (Assignment)cGroup.eContents().get(8); private final RuleCall cPowerDOUBLETerminalRuleCall_8_0 = (RuleCall)cPowerAssignment_8.eContents().get(0); private final Keyword cCommaKeyword_9 = (Keyword)cGroup.eContents().get(9); private final Keyword cRepeatKeyword_10 = (Keyword)cGroup.eContents().get(10); private final Keyword cEqualsSignKeyword_11 = (Keyword)cGroup.eContents().get(11); private final Assignment cRepetAssignment_12 = (Assignment)cGroup.eContents().get(12); private final RuleCall cRepetBOOLEAN_LITERALParserRuleCall_12_0 = (RuleCall)cRepetAssignment_12.eContents().get(0); private final Keyword cRightParenthesisKeyword_13 = (Keyword)cGroup.eContents().get(13); //Bip returns robot::Bip: // "bip" "(" "duration" "=" duration=INT "," "power" "=" power=DOUBLE "," "repeat" "=" repet=BOOLEAN_LITERAL ")"; public ParserRule getRule() { return rule; } //"bip" "(" "duration" "=" duration=INT "," "power" "=" power=DOUBLE "," "repeat" "=" repet=BOOLEAN_LITERAL ")" public Group getGroup() { return cGroup; } //"bip" public Keyword getBipKeyword_0() { return cBipKeyword_0; } //"(" public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } //"duration" public Keyword getDurationKeyword_2() { return cDurationKeyword_2; } //"=" public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; } //duration=INT public Assignment getDurationAssignment_4() { return cDurationAssignment_4; } //INT public RuleCall getDurationINTTerminalRuleCall_4_0() { return cDurationINTTerminalRuleCall_4_0; } //"," public Keyword getCommaKeyword_5() { return cCommaKeyword_5; } //"power" public Keyword getPowerKeyword_6() { return cPowerKeyword_6; } //"=" public Keyword getEqualsSignKeyword_7() { return cEqualsSignKeyword_7; } //power=DOUBLE public Assignment getPowerAssignment_8() { return cPowerAssignment_8; } //DOUBLE public RuleCall getPowerDOUBLETerminalRuleCall_8_0() { return cPowerDOUBLETerminalRuleCall_8_0; } //"," public Keyword getCommaKeyword_9() { return cCommaKeyword_9; } //"repeat" public Keyword getRepeatKeyword_10() { return cRepeatKeyword_10; } //"=" public Keyword getEqualsSignKeyword_11() { return cEqualsSignKeyword_11; } //repet=BOOLEAN_LITERAL public Assignment getRepetAssignment_12() { return cRepetAssignment_12; } //BOOLEAN_LITERAL public RuleCall getRepetBOOLEAN_LITERALParserRuleCall_12_0() { return cRepetBOOLEAN_LITERALParserRuleCall_12_0; } //")" public Keyword getRightParenthesisKeyword_13() { return cRightParenthesisKeyword_13; } } public class HasTurnedCmdElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HasTurnedCmd"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cHasTurnedKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Keyword cAngleKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cAngleAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cAngleDOUBLETerminalRuleCall_4_0 = (RuleCall)cAngleAssignment_4.eContents().get(0); private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5); //HasTurnedCmd returns robot::HasTurnedCmd: // "hasTurned" "(" "angle" "=" angle=DOUBLE ")"; public ParserRule getRule() { return rule; } //"hasTurned" "(" "angle" "=" angle=DOUBLE ")" public Group getGroup() { return cGroup; } //"hasTurned" public Keyword getHasTurnedKeyword_0() { return cHasTurnedKeyword_0; } //"(" public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } //"angle" public Keyword getAngleKeyword_2() { return cAngleKeyword_2; } //"=" public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; } //angle=DOUBLE public Assignment getAngleAssignment_4() { return cAngleAssignment_4; } //DOUBLE public RuleCall getAngleDOUBLETerminalRuleCall_4_0() { return cAngleDOUBLETerminalRuleCall_4_0; } //")" public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; } } public class MoveCmdElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MoveCmd"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cMoveKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Keyword cPowerKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cPowerAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cPowerDOUBLETerminalRuleCall_4_0 = (RuleCall)cPowerAssignment_4.eContents().get(0); private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5); //MoveCmd returns robot::MoveCmd: // "move" "(" "power" "=" power=DOUBLE ")"; public ParserRule getRule() { return rule; } //"move" "(" "power" "=" power=DOUBLE ")" public Group getGroup() { return cGroup; } //"move" public Keyword getMoveKeyword_0() { return cMoveKeyword_0; } //"(" public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } //"power" public Keyword getPowerKeyword_2() { return cPowerKeyword_2; } //"=" public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; } //power=DOUBLE public Assignment getPowerAssignment_4() { return cPowerAssignment_4; } //DOUBLE public RuleCall getPowerDOUBLETerminalRuleCall_4_0() { return cPowerDOUBLETerminalRuleCall_4_0; } //")" public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; } } public class PrintCmdElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PrintCmd"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cDisplayKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Keyword cMsgKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cMsgAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cMsgSTRINGTerminalRuleCall_4_0 = (RuleCall)cMsgAssignment_4.eContents().get(0); private final Keyword cCommaKeyword_5 = (Keyword)cGroup.eContents().get(5); private final Keyword cDurationKeyword_6 = (Keyword)cGroup.eContents().get(6); private final Keyword cEqualsSignKeyword_7 = (Keyword)cGroup.eContents().get(7); private final Assignment cDurationAssignment_8 = (Assignment)cGroup.eContents().get(8); private final RuleCall cDurationINTTerminalRuleCall_8_0 = (RuleCall)cDurationAssignment_8.eContents().get(0); private final Keyword cCommaKeyword_9 = (Keyword)cGroup.eContents().get(9); private final Keyword cLineKeyword_10 = (Keyword)cGroup.eContents().get(10); private final Keyword cEqualsSignKeyword_11 = (Keyword)cGroup.eContents().get(11); private final Assignment cLineAssignment_12 = (Assignment)cGroup.eContents().get(12); private final RuleCall cLineINTTerminalRuleCall_12_0 = (RuleCall)cLineAssignment_12.eContents().get(0); private final Keyword cCommaKeyword_13 = (Keyword)cGroup.eContents().get(13); private final Keyword cColKeyword_14 = (Keyword)cGroup.eContents().get(14); private final Keyword cEqualsSignKeyword_15 = (Keyword)cGroup.eContents().get(15); private final Assignment cColAssignment_16 = (Assignment)cGroup.eContents().get(16); private final RuleCall cColINTTerminalRuleCall_16_0 = (RuleCall)cColAssignment_16.eContents().get(0); private final Keyword cRightParenthesisKeyword_17 = (Keyword)cGroup.eContents().get(17); //PrintCmd returns robot::PrintCmd: // "display" "(" "msg" "=" msg=STRING "," "duration" "=" duration=INT "," "line" "=" line=INT "," "col" "=" col=INT ")"; public ParserRule getRule() { return rule; } //"display" "(" "msg" "=" msg=STRING "," "duration" "=" duration=INT "," "line" "=" line=INT "," "col" "=" col=INT ")" public Group getGroup() { return cGroup; } //"display" public Keyword getDisplayKeyword_0() { return cDisplayKeyword_0; } //"(" public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } //"msg" public Keyword getMsgKeyword_2() { return cMsgKeyword_2; } //"=" public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; } //msg=STRING public Assignment getMsgAssignment_4() { return cMsgAssignment_4; } //STRING public RuleCall getMsgSTRINGTerminalRuleCall_4_0() { return cMsgSTRINGTerminalRuleCall_4_0; } //"," public Keyword getCommaKeyword_5() { return cCommaKeyword_5; } //"duration" public Keyword getDurationKeyword_6() { return cDurationKeyword_6; } //"=" public Keyword getEqualsSignKeyword_7() { return cEqualsSignKeyword_7; } //duration=INT public Assignment getDurationAssignment_8() { return cDurationAssignment_8; } //INT public RuleCall getDurationINTTerminalRuleCall_8_0() { return cDurationINTTerminalRuleCall_8_0; } //"," public Keyword getCommaKeyword_9() { return cCommaKeyword_9; } //"line" public Keyword getLineKeyword_10() { return cLineKeyword_10; } //"=" public Keyword getEqualsSignKeyword_11() { return cEqualsSignKeyword_11; } //line=INT public Assignment getLineAssignment_12() { return cLineAssignment_12; } //INT public RuleCall getLineINTTerminalRuleCall_12_0() { return cLineINTTerminalRuleCall_12_0; } //"," public Keyword getCommaKeyword_13() { return cCommaKeyword_13; } //"col" public Keyword getColKeyword_14() { return cColKeyword_14; } //"=" public Keyword getEqualsSignKeyword_15() { return cEqualsSignKeyword_15; } //col=INT public Assignment getColAssignment_16() { return cColAssignment_16; } //INT public RuleCall getColINTTerminalRuleCall_16_0() { return cColINTTerminalRuleCall_16_0; } //")" public Keyword getRightParenthesisKeyword_17() { return cRightParenthesisKeyword_17; } } public class SetTurnAngleCmdElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SetTurnAngleCmd"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cSetTurnAngleKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Keyword cAngleKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cAngleAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cAngleDOUBLETerminalRuleCall_4_0 = (RuleCall)cAngleAssignment_4.eContents().get(0); private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5); //SetTurnAngleCmd returns robot::SetTurnAngleCmd: // "setTurnAngle" "(" "angle" "=" angle=DOUBLE ")"; public ParserRule getRule() { return rule; } //"setTurnAngle" "(" "angle" "=" angle=DOUBLE ")" public Group getGroup() { return cGroup; } //"setTurnAngle" public Keyword getSetTurnAngleKeyword_0() { return cSetTurnAngleKeyword_0; } //"(" public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } //"angle" public Keyword getAngleKeyword_2() { return cAngleKeyword_2; } //"=" public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; } //angle=DOUBLE public Assignment getAngleAssignment_4() { return cAngleAssignment_4; } //DOUBLE public RuleCall getAngleDOUBLETerminalRuleCall_4_0() { return cAngleDOUBLETerminalRuleCall_4_0; } //")" public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; } } public class StopEngineCmdElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StopEngineCmd"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cStopEngineCmdAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cStopEngineKeyword_1 = (Keyword)cGroup.eContents().get(1); //StopEngineCmd returns robot::StopEngineCmd: // {robot::StopEngineCmd} "stopEngine"; public ParserRule getRule() { return rule; } //{robot::StopEngineCmd} "stopEngine" public Group getGroup() { return cGroup; } //{robot::StopEngineCmd} public Action getStopEngineCmdAction_0() { return cStopEngineCmdAction_0; } //"stopEngine" public Keyword getStopEngineKeyword_1() { return cStopEngineKeyword_1; } } public class StopProgramCmdElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StopProgramCmd"); private final Group cGroup = (Group)rule.eContents().get(1); private final Action cStopProgramCmdAction_0 = (Action)cGroup.eContents().get(0); private final Keyword cStopProgramKeyword_1 = (Keyword)cGroup.eContents().get(1); //StopProgramCmd returns robot::StopProgramCmd: // {robot::StopProgramCmd} "stopProgram"; public ParserRule getRule() { return rule; } //{robot::StopProgramCmd} "stopProgram" public Group getGroup() { return cGroup; } //{robot::StopProgramCmd} public Action getStopProgramCmdAction_0() { return cStopProgramCmdAction_0; } //"stopProgram" public Keyword getStopProgramKeyword_1() { return cStopProgramKeyword_1; } } public class TurnCmdElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TurnCmd"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cTurnKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Keyword cPowerKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cPowerAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cPowerDOUBLETerminalRuleCall_4_0 = (RuleCall)cPowerAssignment_4.eContents().get(0); private final Keyword cCommaKeyword_5 = (Keyword)cGroup.eContents().get(5); private final Keyword cAngleKeyword_6 = (Keyword)cGroup.eContents().get(6); private final Keyword cEqualsSignKeyword_7 = (Keyword)cGroup.eContents().get(7); private final Assignment cAngleAssignment_8 = (Assignment)cGroup.eContents().get(8); private final RuleCall cAngleDOUBLETerminalRuleCall_8_0 = (RuleCall)cAngleAssignment_8.eContents().get(0); private final Keyword cRightParenthesisKeyword_9 = (Keyword)cGroup.eContents().get(9); //TurnCmd returns robot::TurnCmd: // "turn" "(" "power" "=" power=DOUBLE "," "angle" "=" angle=DOUBLE ")"; public ParserRule getRule() { return rule; } //"turn" "(" "power" "=" power=DOUBLE "," "angle" "=" angle=DOUBLE ")" public Group getGroup() { return cGroup; } //"turn" public Keyword getTurnKeyword_0() { return cTurnKeyword_0; } //"(" public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } //"power" public Keyword getPowerKeyword_2() { return cPowerKeyword_2; } //"=" public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; } //power=DOUBLE public Assignment getPowerAssignment_4() { return cPowerAssignment_4; } //DOUBLE public RuleCall getPowerDOUBLETerminalRuleCall_4_0() { return cPowerDOUBLETerminalRuleCall_4_0; } //"," public Keyword getCommaKeyword_5() { return cCommaKeyword_5; } //"angle" public Keyword getAngleKeyword_6() { return cAngleKeyword_6; } //"=" public Keyword getEqualsSignKeyword_7() { return cEqualsSignKeyword_7; } //angle=DOUBLE public Assignment getAngleAssignment_8() { return cAngleAssignment_8; } //DOUBLE public RuleCall getAngleDOUBLETerminalRuleCall_8_0() { return cAngleDOUBLETerminalRuleCall_8_0; } //")" public Keyword getRightParenthesisKeyword_9() { return cRightParenthesisKeyword_9; } } public class ObstacleCmdElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ObstacleCmd"); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword cObstacleKeyword_0 = (Keyword)cGroup.eContents().get(0); private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); private final Keyword cDistanceKeyword_2 = (Keyword)cGroup.eContents().get(2); private final Keyword cEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3); private final Assignment cDistanceAssignment_4 = (Assignment)cGroup.eContents().get(4); private final RuleCall cDistanceDOUBLETerminalRuleCall_4_0 = (RuleCall)cDistanceAssignment_4.eContents().get(0); private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5); //ObstacleCmd returns robot::ObstacleCmd: // "obstacle" "(" "distance" "=" distance=DOUBLE ")"; public ParserRule getRule() { return rule; } //"obstacle" "(" "distance" "=" distance=DOUBLE ")" public Group getGroup() { return cGroup; } //"obstacle" public Keyword getObstacleKeyword_0() { return cObstacleKeyword_0; } //"(" public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } //"distance" public Keyword getDistanceKeyword_2() { return cDistanceKeyword_2; } //"=" public Keyword getEqualsSignKeyword_3() { return cEqualsSignKeyword_3; } //distance=DOUBLE public Assignment getDistanceAssignment_4() { return cDistanceAssignment_4; } //DOUBLE public RuleCall getDistanceDOUBLETerminalRuleCall_4_0() { return cDistanceDOUBLETerminalRuleCall_4_0; } //")" public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; } } public class BOOLEAN_LITERALElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BOOLEAN_LITERAL"); 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); //BOOLEAN_LITERAL returns ecore::EBoolean: // "true" | "false"; 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 ProgramUnitElements pProgramUnit; private ExpressionElements pExpression; private BoolExpElements pBoolExp; private WhileLoopElements pWhileLoop; private NegExpElements pNegExp; private AndExpElements pAndExp; private IfBlockElements pIfBlock; private CommandElements pCommand; private BipElements pBip; private HasTurnedCmdElements pHasTurnedCmd; private MoveCmdElements pMoveCmd; private PrintCmdElements pPrintCmd; private SetTurnAngleCmdElements pSetTurnAngleCmd; private StopEngineCmdElements pStopEngineCmd; private StopProgramCmdElements pStopProgramCmd; private TurnCmdElements pTurnCmd; private ObstacleCmdElements pObstacleCmd; private BOOLEAN_LITERALElements pBOOLEAN_LITERAL; private TerminalRule tSTRING; private TerminalRule tML_COMMENT; private TerminalRule tSL_COMMENT; private TerminalRule tWS; private TerminalRule tDIGIT; private TerminalRule tDOUBLE; private TerminalRule tINT; private final Grammar grammar; @Inject public LegoGrammarAccess(GrammarProvider grammarProvider) { this.grammar = internalFindGrammar(grammarProvider); } protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { Grammar grammar = grammarProvider.getGrammar(this); while (grammar != null) { if ("insa.Lego".equals(grammar.getName())) { return grammar; } List<Grammar> grammars = grammar.getUsedGrammars(); if (!grammars.isEmpty()) { grammar = grammars.iterator().next(); } else { return null; } } return grammar; } public Grammar getGrammar() { return grammar; } //ProgramUnit returns robot::ProgramUnit: // block+=Expression*; public ProgramUnitElements getProgramUnitAccess() { return (pProgramUnit != null) ? pProgramUnit : (pProgramUnit = new ProgramUnitElements()); } public ParserRule getProgramUnitRule() { return getProgramUnitAccess().getRule(); } //Expression returns FlotCtrl::Expression: // WhileLoop | NegExp | AndExp | IfBlock | Command; public ExpressionElements getExpressionAccess() { return (pExpression != null) ? pExpression : (pExpression = new ExpressionElements()); } public ParserRule getExpressionRule() { return getExpressionAccess().getRule(); } //BoolExp returns FlotCtrl::BoolExp: // NegExp | AndExp | HasTurnedCmd | ObstacleCmd; public BoolExpElements getBoolExpAccess() { return (pBoolExp != null) ? pBoolExp : (pBoolExp = new BoolExpElements()); } public ParserRule getBoolExpRule() { return getBoolExpAccess().getRule(); } //WhileLoop returns FlotCtrl::WhileLoop: // "while" loopCond=BoolExp "do" block+=Expression* "end"; public WhileLoopElements getWhileLoopAccess() { return (pWhileLoop != null) ? pWhileLoop : (pWhileLoop = new WhileLoopElements()); } public ParserRule getWhileLoopRule() { return getWhileLoopAccess().getRule(); } //NegExp returns FlotCtrl::NegExp: // "not" exp=BoolExp; public NegExpElements getNegExpAccess() { return (pNegExp != null) ? pNegExp : (pNegExp = new NegExpElements()); } public ParserRule getNegExpRule() { return getNegExpAccess().getRule(); } //AndExp returns FlotCtrl::AndExp: // "and" leftExp=BoolExp rightExp=BoolExp; public AndExpElements getAndExpAccess() { return (pAndExp != null) ? pAndExp : (pAndExp = new AndExpElements()); } public ParserRule getAndExpRule() { return getAndExpAccess().getRule(); } //IfBlock returns FlotCtrl::IfBlock: // "if" condition=BoolExp "then" thenBlock+=Expression* ("else" elseBlock+=Expression*)? "end"; public IfBlockElements getIfBlockAccess() { return (pIfBlock != null) ? pIfBlock : (pIfBlock = new IfBlockElements()); } public ParserRule getIfBlockRule() { return getIfBlockAccess().getRule(); } //Command returns robot::Command: // MoveCmd | PrintCmd | SetTurnAngleCmd | StopEngineCmd | StopProgramCmd | TurnCmd | HasTurnedCmd | ObstacleCmd; public CommandElements getCommandAccess() { return (pCommand != null) ? pCommand : (pCommand = new CommandElements()); } public ParserRule getCommandRule() { return getCommandAccess().getRule(); } //Bip returns robot::Bip: // "bip" "(" "duration" "=" duration=INT "," "power" "=" power=DOUBLE "," "repeat" "=" repet=BOOLEAN_LITERAL ")"; public BipElements getBipAccess() { return (pBip != null) ? pBip : (pBip = new BipElements()); } public ParserRule getBipRule() { return getBipAccess().getRule(); } //HasTurnedCmd returns robot::HasTurnedCmd: // "hasTurned" "(" "angle" "=" angle=DOUBLE ")"; public HasTurnedCmdElements getHasTurnedCmdAccess() { return (pHasTurnedCmd != null) ? pHasTurnedCmd : (pHasTurnedCmd = new HasTurnedCmdElements()); } public ParserRule getHasTurnedCmdRule() { return getHasTurnedCmdAccess().getRule(); } //MoveCmd returns robot::MoveCmd: // "move" "(" "power" "=" power=DOUBLE ")"; public MoveCmdElements getMoveCmdAccess() { return (pMoveCmd != null) ? pMoveCmd : (pMoveCmd = new MoveCmdElements()); } public ParserRule getMoveCmdRule() { return getMoveCmdAccess().getRule(); } //PrintCmd returns robot::PrintCmd: // "display" "(" "msg" "=" msg=STRING "," "duration" "=" duration=INT "," "line" "=" line=INT "," "col" "=" col=INT ")"; public PrintCmdElements getPrintCmdAccess() { return (pPrintCmd != null) ? pPrintCmd : (pPrintCmd = new PrintCmdElements()); } public ParserRule getPrintCmdRule() { return getPrintCmdAccess().getRule(); } //SetTurnAngleCmd returns robot::SetTurnAngleCmd: // "setTurnAngle" "(" "angle" "=" angle=DOUBLE ")"; public SetTurnAngleCmdElements getSetTurnAngleCmdAccess() { return (pSetTurnAngleCmd != null) ? pSetTurnAngleCmd : (pSetTurnAngleCmd = new SetTurnAngleCmdElements()); } public ParserRule getSetTurnAngleCmdRule() { return getSetTurnAngleCmdAccess().getRule(); } //StopEngineCmd returns robot::StopEngineCmd: // {robot::StopEngineCmd} "stopEngine"; public StopEngineCmdElements getStopEngineCmdAccess() { return (pStopEngineCmd != null) ? pStopEngineCmd : (pStopEngineCmd = new StopEngineCmdElements()); } public ParserRule getStopEngineCmdRule() { return getStopEngineCmdAccess().getRule(); } //StopProgramCmd returns robot::StopProgramCmd: // {robot::StopProgramCmd} "stopProgram"; public StopProgramCmdElements getStopProgramCmdAccess() { return (pStopProgramCmd != null) ? pStopProgramCmd : (pStopProgramCmd = new StopProgramCmdElements()); } public ParserRule getStopProgramCmdRule() { return getStopProgramCmdAccess().getRule(); } //TurnCmd returns robot::TurnCmd: // "turn" "(" "power" "=" power=DOUBLE "," "angle" "=" angle=DOUBLE ")"; public TurnCmdElements getTurnCmdAccess() { return (pTurnCmd != null) ? pTurnCmd : (pTurnCmd = new TurnCmdElements()); } public ParserRule getTurnCmdRule() { return getTurnCmdAccess().getRule(); } //ObstacleCmd returns robot::ObstacleCmd: // "obstacle" "(" "distance" "=" distance=DOUBLE ")"; public ObstacleCmdElements getObstacleCmdAccess() { return (pObstacleCmd != null) ? pObstacleCmd : (pObstacleCmd = new ObstacleCmdElements()); } public ParserRule getObstacleCmdRule() { return getObstacleCmdAccess().getRule(); } //BOOLEAN_LITERAL returns ecore::EBoolean: // "true" | "false"; public BOOLEAN_LITERALElements getBOOLEAN_LITERALAccess() { return (pBOOLEAN_LITERAL != null) ? pBOOLEAN_LITERAL : (pBOOLEAN_LITERAL = new BOOLEAN_LITERALElements()); } public ParserRule getBOOLEAN_LITERALRule() { return getBOOLEAN_LITERALAccess().getRule(); } //terminal STRING: // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" | // "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'"; public TerminalRule getSTRINGRule() { return (tSTRING != null) ? tSTRING : (tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "STRING")); } //terminal ML_COMMENT: // "/ *"->"* /"; public TerminalRule getML_COMMENTRule() { return (tML_COMMENT != null) ? tML_COMMENT : (tML_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "ML_COMMENT")); } //terminal SL_COMMENT: // "//" !("\n" | "\r")* ("\r"? "\n")?; public TerminalRule getSL_COMMENTRule() { return (tSL_COMMENT != null) ? tSL_COMMENT : (tSL_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "SL_COMMENT")); } //terminal WS: // (" " | "\t" | "\r" | "\n")+; public TerminalRule getWSRule() { return (tWS != null) ? tWS : (tWS = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "WS")); } //terminal fragment DIGIT: // "0".."9"; public TerminalRule getDIGITRule() { return (tDIGIT != null) ? tDIGIT : (tDIGIT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "DIGIT")); } //terminal DOUBLE returns ecore::EDouble: // INT ("." DIGIT*); public TerminalRule getDOUBLERule() { return (tDOUBLE != null) ? tDOUBLE : (tDOUBLE = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "DOUBLE")); } //terminal INT returns ecore::EInt: // "0" | "1".."9" DIGIT*; public TerminalRule getINTRule() { return (tINT != null) ? tINT : (tINT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "INT")); } }