| /* |
| * generated by Xtext |
| */ |
| |
| package org.eclipse.xtext.example.fowlerdsl.services; |
| |
| import com.google.inject.Singleton; |
| import com.google.inject.Inject; |
| |
| import org.eclipse.xtext.*; |
| import org.eclipse.xtext.service.GrammarProvider; |
| import org.eclipse.xtext.service.AbstractElementFinder.*; |
| |
| import org.eclipse.xtext.common.services.TerminalsGrammarAccess; |
| |
| @Singleton |
| public class StatemachineGrammarAccess extends AbstractGrammarElementFinder { |
| |
| |
| public class StatemachineElements extends AbstractParserRuleElementFinder { |
| private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Statemachine"); |
| private final Group cGroup = (Group)rule.eContents().get(1); |
| private final Action cStatemachineAction_0 = (Action)cGroup.eContents().get(0); |
| private final Group cGroup_1 = (Group)cGroup.eContents().get(1); |
| private final Keyword cEventsKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); |
| private final Assignment cEventsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); |
| private final RuleCall cEventsEventParserRuleCall_1_1_0 = (RuleCall)cEventsAssignment_1_1.eContents().get(0); |
| private final Keyword cEndKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); |
| private final Group cGroup_2 = (Group)cGroup.eContents().get(2); |
| private final Keyword cResetEventsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); |
| private final Assignment cResetEventsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1); |
| private final CrossReference cResetEventsEventCrossReference_2_1_0 = (CrossReference)cResetEventsAssignment_2_1.eContents().get(0); |
| private final RuleCall cResetEventsEventIDTerminalRuleCall_2_1_0_1 = (RuleCall)cResetEventsEventCrossReference_2_1_0.eContents().get(1); |
| private final Keyword cEndKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2); |
| private final Group cGroup_3 = (Group)cGroup.eContents().get(3); |
| private final Keyword cCommandsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); |
| private final Assignment cCommandsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); |
| private final RuleCall cCommandsCommandParserRuleCall_3_1_0 = (RuleCall)cCommandsAssignment_3_1.eContents().get(0); |
| private final Keyword cEndKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2); |
| private final Assignment cStatesAssignment_4 = (Assignment)cGroup.eContents().get(4); |
| private final RuleCall cStatesStateParserRuleCall_4_0 = (RuleCall)cStatesAssignment_4.eContents().get(0); |
| |
| //Statemachine: |
| // {Statemachine} ("events" events+=Event+ "end")? ("resetEvents" resetEvents+=[Event]+ "end")? ("commands" |
| // commands+=Command+ "end")? states+=State*; |
| public ParserRule getRule() { return rule; } |
| |
| //{Statemachine} ("events" events+=Event+ "end")? ("resetEvents" resetEvents+=[Event]+ "end")? ("commands" |
| //commands+=Command+ "end")? states+=State* |
| public Group getGroup() { return cGroup; } |
| |
| //{Statemachine} |
| public Action getStatemachineAction_0() { return cStatemachineAction_0; } |
| |
| //("events" events+=Event+ "end")? |
| public Group getGroup_1() { return cGroup_1; } |
| |
| //"events" |
| public Keyword getEventsKeyword_1_0() { return cEventsKeyword_1_0; } |
| |
| //events+=Event+ |
| public Assignment getEventsAssignment_1_1() { return cEventsAssignment_1_1; } |
| |
| //Event |
| public RuleCall getEventsEventParserRuleCall_1_1_0() { return cEventsEventParserRuleCall_1_1_0; } |
| |
| //"end" |
| public Keyword getEndKeyword_1_2() { return cEndKeyword_1_2; } |
| |
| //("resetEvents" resetEvents+=[Event]+ "end")? |
| public Group getGroup_2() { return cGroup_2; } |
| |
| //"resetEvents" |
| public Keyword getResetEventsKeyword_2_0() { return cResetEventsKeyword_2_0; } |
| |
| //resetEvents+=[Event]+ |
| public Assignment getResetEventsAssignment_2_1() { return cResetEventsAssignment_2_1; } |
| |
| //[Event] |
| public CrossReference getResetEventsEventCrossReference_2_1_0() { return cResetEventsEventCrossReference_2_1_0; } |
| |
| //ID |
| public RuleCall getResetEventsEventIDTerminalRuleCall_2_1_0_1() { return cResetEventsEventIDTerminalRuleCall_2_1_0_1; } |
| |
| //"end" |
| public Keyword getEndKeyword_2_2() { return cEndKeyword_2_2; } |
| |
| //("commands" commands+=Command+ "end")? |
| public Group getGroup_3() { return cGroup_3; } |
| |
| //"commands" |
| public Keyword getCommandsKeyword_3_0() { return cCommandsKeyword_3_0; } |
| |
| //commands+=Command+ |
| public Assignment getCommandsAssignment_3_1() { return cCommandsAssignment_3_1; } |
| |
| //Command |
| public RuleCall getCommandsCommandParserRuleCall_3_1_0() { return cCommandsCommandParserRuleCall_3_1_0; } |
| |
| //"end" |
| public Keyword getEndKeyword_3_2() { return cEndKeyword_3_2; } |
| |
| //states+=State* |
| public Assignment getStatesAssignment_4() { return cStatesAssignment_4; } |
| |
| //State |
| public RuleCall getStatesStateParserRuleCall_4_0() { return cStatesStateParserRuleCall_4_0; } |
| } |
| |
| public class EventElements extends AbstractParserRuleElementFinder { |
| private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Event"); |
| private final Group cGroup = (Group)rule.eContents().get(1); |
| private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0); |
| private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); |
| private final Assignment cCodeAssignment_1 = (Assignment)cGroup.eContents().get(1); |
| private final RuleCall cCodeIDTerminalRuleCall_1_0 = (RuleCall)cCodeAssignment_1.eContents().get(0); |
| |
| //Event: |
| // name=ID code=ID; |
| public ParserRule getRule() { return rule; } |
| |
| //name=ID code=ID |
| public Group getGroup() { return cGroup; } |
| |
| //name=ID |
| public Assignment getNameAssignment_0() { return cNameAssignment_0; } |
| |
| //ID |
| public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } |
| |
| //code=ID |
| public Assignment getCodeAssignment_1() { return cCodeAssignment_1; } |
| |
| //ID |
| public RuleCall getCodeIDTerminalRuleCall_1_0() { return cCodeIDTerminalRuleCall_1_0; } |
| } |
| |
| public class CommandElements extends AbstractParserRuleElementFinder { |
| private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Command"); |
| private final Group cGroup = (Group)rule.eContents().get(1); |
| private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0); |
| private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0); |
| private final Assignment cCodeAssignment_1 = (Assignment)cGroup.eContents().get(1); |
| private final RuleCall cCodeIDTerminalRuleCall_1_0 = (RuleCall)cCodeAssignment_1.eContents().get(0); |
| |
| //Command: |
| // name=ID code=ID; |
| public ParserRule getRule() { return rule; } |
| |
| //name=ID code=ID |
| public Group getGroup() { return cGroup; } |
| |
| //name=ID |
| public Assignment getNameAssignment_0() { return cNameAssignment_0; } |
| |
| //ID |
| public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; } |
| |
| //code=ID |
| public Assignment getCodeAssignment_1() { return cCodeAssignment_1; } |
| |
| //ID |
| public RuleCall getCodeIDTerminalRuleCall_1_0() { return cCodeIDTerminalRuleCall_1_0; } |
| } |
| |
| public class StateElements extends AbstractParserRuleElementFinder { |
| private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "State"); |
| private final Group cGroup = (Group)rule.eContents().get(1); |
| private final Keyword cStateKeyword_0 = (Keyword)cGroup.eContents().get(0); |
| private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); |
| private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); |
| private final Group cGroup_2 = (Group)cGroup.eContents().get(2); |
| private final Keyword cActionsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); |
| private final Keyword cLeftCurlyBracketKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1); |
| private final Assignment cActionsAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2); |
| private final CrossReference cActionsCommandCrossReference_2_2_0 = (CrossReference)cActionsAssignment_2_2.eContents().get(0); |
| private final RuleCall cActionsCommandIDTerminalRuleCall_2_2_0_1 = (RuleCall)cActionsCommandCrossReference_2_2_0.eContents().get(1); |
| private final Keyword cRightCurlyBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3); |
| private final Assignment cTransitionsAssignment_3 = (Assignment)cGroup.eContents().get(3); |
| private final RuleCall cTransitionsTransitionParserRuleCall_3_0 = (RuleCall)cTransitionsAssignment_3.eContents().get(0); |
| private final Keyword cEndKeyword_4 = (Keyword)cGroup.eContents().get(4); |
| |
| //State: |
| // "state" name=ID ("actions" "{" actions+=[Command]+ "}")? transitions+=Transition* "end"; |
| public ParserRule getRule() { return rule; } |
| |
| //"state" name=ID ("actions" "{" actions+=[Command]+ "}")? transitions+=Transition* "end" |
| public Group getGroup() { return cGroup; } |
| |
| //"state" |
| public Keyword getStateKeyword_0() { return cStateKeyword_0; } |
| |
| //name=ID |
| public Assignment getNameAssignment_1() { return cNameAssignment_1; } |
| |
| //ID |
| public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } |
| |
| //("actions" "{" actions+=[Command]+ "}")? |
| public Group getGroup_2() { return cGroup_2; } |
| |
| //"actions" |
| public Keyword getActionsKeyword_2_0() { return cActionsKeyword_2_0; } |
| |
| //"{" |
| public Keyword getLeftCurlyBracketKeyword_2_1() { return cLeftCurlyBracketKeyword_2_1; } |
| |
| //actions+=[Command]+ |
| public Assignment getActionsAssignment_2_2() { return cActionsAssignment_2_2; } |
| |
| //[Command] |
| public CrossReference getActionsCommandCrossReference_2_2_0() { return cActionsCommandCrossReference_2_2_0; } |
| |
| //ID |
| public RuleCall getActionsCommandIDTerminalRuleCall_2_2_0_1() { return cActionsCommandIDTerminalRuleCall_2_2_0_1; } |
| |
| //"}" |
| public Keyword getRightCurlyBracketKeyword_2_3() { return cRightCurlyBracketKeyword_2_3; } |
| |
| //transitions+=Transition* |
| public Assignment getTransitionsAssignment_3() { return cTransitionsAssignment_3; } |
| |
| //Transition |
| public RuleCall getTransitionsTransitionParserRuleCall_3_0() { return cTransitionsTransitionParserRuleCall_3_0; } |
| |
| //"end" |
| public Keyword getEndKeyword_4() { return cEndKeyword_4; } |
| } |
| |
| public class TransitionElements extends AbstractParserRuleElementFinder { |
| private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Transition"); |
| private final Group cGroup = (Group)rule.eContents().get(1); |
| private final Assignment cEventAssignment_0 = (Assignment)cGroup.eContents().get(0); |
| private final CrossReference cEventEventCrossReference_0_0 = (CrossReference)cEventAssignment_0.eContents().get(0); |
| private final RuleCall cEventEventIDTerminalRuleCall_0_0_1 = (RuleCall)cEventEventCrossReference_0_0.eContents().get(1); |
| private final Keyword cEqualsSignGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1); |
| private final Assignment cStateAssignment_2 = (Assignment)cGroup.eContents().get(2); |
| private final CrossReference cStateStateCrossReference_2_0 = (CrossReference)cStateAssignment_2.eContents().get(0); |
| private final RuleCall cStateStateIDTerminalRuleCall_2_0_1 = (RuleCall)cStateStateCrossReference_2_0.eContents().get(1); |
| |
| //Transition: |
| // event=[Event] "=>" state=[State]; |
| public ParserRule getRule() { return rule; } |
| |
| //event=[Event] "=>" state=[State] |
| public Group getGroup() { return cGroup; } |
| |
| //event=[Event] |
| public Assignment getEventAssignment_0() { return cEventAssignment_0; } |
| |
| //[Event] |
| public CrossReference getEventEventCrossReference_0_0() { return cEventEventCrossReference_0_0; } |
| |
| //ID |
| public RuleCall getEventEventIDTerminalRuleCall_0_0_1() { return cEventEventIDTerminalRuleCall_0_0_1; } |
| |
| //"=>" |
| public Keyword getEqualsSignGreaterThanSignKeyword_1() { return cEqualsSignGreaterThanSignKeyword_1; } |
| |
| //state=[State] |
| public Assignment getStateAssignment_2() { return cStateAssignment_2; } |
| |
| //[State] |
| public CrossReference getStateStateCrossReference_2_0() { return cStateStateCrossReference_2_0; } |
| |
| //ID |
| public RuleCall getStateStateIDTerminalRuleCall_2_0_1() { return cStateStateIDTerminalRuleCall_2_0_1; } |
| } |
| |
| |
| private StatemachineElements pStatemachine; |
| private EventElements pEvent; |
| private CommandElements pCommand; |
| private StateElements pState; |
| private TransitionElements pTransition; |
| |
| private final GrammarProvider grammarProvider; |
| |
| private TerminalsGrammarAccess gaTerminals; |
| |
| @Inject |
| public StatemachineGrammarAccess(GrammarProvider grammarProvider, |
| TerminalsGrammarAccess gaTerminals) { |
| this.grammarProvider = grammarProvider; |
| this.gaTerminals = gaTerminals; |
| } |
| |
| public Grammar getGrammar() { |
| return grammarProvider.getGrammar(this); |
| } |
| |
| |
| public TerminalsGrammarAccess getTerminalsGrammarAccess() { |
| return gaTerminals; |
| } |
| |
| |
| //Statemachine: |
| // {Statemachine} ("events" events+=Event+ "end")? ("resetEvents" resetEvents+=[Event]+ "end")? ("commands" |
| // commands+=Command+ "end")? states+=State*; |
| public StatemachineElements getStatemachineAccess() { |
| return (pStatemachine != null) ? pStatemachine : (pStatemachine = new StatemachineElements()); |
| } |
| |
| public ParserRule getStatemachineRule() { |
| return getStatemachineAccess().getRule(); |
| } |
| |
| //Event: |
| // name=ID code=ID; |
| public EventElements getEventAccess() { |
| return (pEvent != null) ? pEvent : (pEvent = new EventElements()); |
| } |
| |
| public ParserRule getEventRule() { |
| return getEventAccess().getRule(); |
| } |
| |
| //Command: |
| // name=ID code=ID; |
| public CommandElements getCommandAccess() { |
| return (pCommand != null) ? pCommand : (pCommand = new CommandElements()); |
| } |
| |
| public ParserRule getCommandRule() { |
| return getCommandAccess().getRule(); |
| } |
| |
| //State: |
| // "state" name=ID ("actions" "{" actions+=[Command]+ "}")? transitions+=Transition* "end"; |
| public StateElements getStateAccess() { |
| return (pState != null) ? pState : (pState = new StateElements()); |
| } |
| |
| public ParserRule getStateRule() { |
| return getStateAccess().getRule(); |
| } |
| |
| //Transition: |
| // event=[Event] "=>" state=[State]; |
| public TransitionElements getTransitionAccess() { |
| return (pTransition != null) ? pTransition : (pTransition = new TransitionElements()); |
| } |
| |
| public ParserRule getTransitionRule() { |
| return getTransitionAccess().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(); |
| } |
| } |