/*
* generated by Xtext 2.9.2
*/
package fr.inria.diverse.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.AbstractGrammarElementFinder;
import org.eclipse.xtext.service.GrammarProvider;
@Singleton
public class MiniFSMGrammarAccess extends AbstractGrammarElementFinder {
public class FSMElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.FSM");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cFSMKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
private final Assignment cStatesAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
private final RuleCall cStatesStateParserRuleCall_2_0_0 = (RuleCall)cStatesAssignment_2_0.eContents().get(0);
private final Assignment cStatesAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
private final RuleCall cStatesStateParserRuleCall_2_1_0 = (RuleCall)cStatesAssignment_2_1.eContents().get(0);
private final Keyword cInitialStateKeyword_3 = (Keyword)cGroup.eContents().get(3);
private final Assignment cInitialStateAssignment_4 = (Assignment)cGroup.eContents().get(4);
private final CrossReference cInitialStateStateCrossReference_4_0 = (CrossReference)cInitialStateAssignment_4.eContents().get(0);
private final RuleCall cInitialStateStateEStringParserRuleCall_4_0_1 = (RuleCall)cInitialStateStateCrossReference_4_0.eContents().get(1);
private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
private final Assignment cTransitionsAssignment_5_0 = (Assignment)cGroup_5.eContents().get(0);
private final RuleCall cTransitionsTransitionParserRuleCall_5_0_0 = (RuleCall)cTransitionsAssignment_5_0.eContents().get(0);
private final Assignment cTransitionsAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
private final RuleCall cTransitionsTransitionParserRuleCall_5_1_0 = (RuleCall)cTransitionsAssignment_5_1.eContents().get(0);
private final Assignment cContextAssignment_6 = (Assignment)cGroup.eContents().get(6);
private final RuleCall cContextContextParserRuleCall_6_0 = (RuleCall)cContextAssignment_6.eContents().get(0);
private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
//FSM:
// 'FSM'
// '{' (states+=State states+=State*)?
// 'initialState' initialState=[State|EString] (transitions+=Transition transitions+=Transition*)?
// context=Context?
// '}';
@Override public ParserRule getRule() { return rule; }
//'FSM' '{' (states+=State states+=State*)? 'initialState' initialState=[State|EString] (transitions+=Transition
//transitions+=Transition*)? context=Context? '}'
public Group getGroup() { return cGroup; }
//'FSM'
public Keyword getFSMKeyword_0() { return cFSMKeyword_0; }
//'{'
public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
//(states+=State states+=State*)?
public Group getGroup_2() { return cGroup_2; }
//states+=State
public Assignment getStatesAssignment_2_0() { return cStatesAssignment_2_0; }
//State
public RuleCall getStatesStateParserRuleCall_2_0_0() { return cStatesStateParserRuleCall_2_0_0; }
//states+=State*
public Assignment getStatesAssignment_2_1() { return cStatesAssignment_2_1; }
//State
public RuleCall getStatesStateParserRuleCall_2_1_0() { return cStatesStateParserRuleCall_2_1_0; }
//'initialState'
public Keyword getInitialStateKeyword_3() { return cInitialStateKeyword_3; }
//initialState=[State|EString]
public Assignment getInitialStateAssignment_4() { return cInitialStateAssignment_4; }
//[State|EString]
public CrossReference getInitialStateStateCrossReference_4_0() { return cInitialStateStateCrossReference_4_0; }
//EString
public RuleCall getInitialStateStateEStringParserRuleCall_4_0_1() { return cInitialStateStateEStringParserRuleCall_4_0_1; }
//(transitions+=Transition transitions+=Transition*)?
public Group getGroup_5() { return cGroup_5; }
//transitions+=Transition
public Assignment getTransitionsAssignment_5_0() { return cTransitionsAssignment_5_0; }
//Transition
public RuleCall getTransitionsTransitionParserRuleCall_5_0_0() { return cTransitionsTransitionParserRuleCall_5_0_0; }
//transitions+=Transition*
public Assignment getTransitionsAssignment_5_1() { return cTransitionsAssignment_5_1; }
//Transition
public RuleCall getTransitionsTransitionParserRuleCall_5_1_0() { return cTransitionsTransitionParserRuleCall_5_1_0; }
//context=Context?
public Assignment getContextAssignment_6() { return cContextAssignment_6; }
//Context
public RuleCall getContextContextParserRuleCall_6_0() { return cContextContextParserRuleCall_6_0; }
//'}'
public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
}
public class StateElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.State");
private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
private final RuleCall cState_ImplParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
private final RuleCall cFinalStateParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
//State:
// State_Impl | FinalState;
@Override public ParserRule getRule() { return rule; }
//State_Impl | FinalState
public Alternatives getAlternatives() { return cAlternatives; }
//State_Impl
public RuleCall getState_ImplParserRuleCall_0() { return cState_ImplParserRuleCall_0; }
//FinalState
public RuleCall getFinalStateParserRuleCall_1() { return cFinalStateParserRuleCall_1; }
}
public class VariableElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Variable");
private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
private final RuleCall cIntegerVarParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
private final RuleCall cBooleanVarParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
//Variable:
// IntegerVar | BooleanVar;
@Override public ParserRule getRule() { return rule; }
//IntegerVar | BooleanVar
public Alternatives getAlternatives() { return cAlternatives; }
//IntegerVar
public RuleCall getIntegerVarParserRuleCall_0() { return cIntegerVarParserRuleCall_0; }
//BooleanVar
public RuleCall getBooleanVarParserRuleCall_1() { return cBooleanVarParserRuleCall_1; }
}
public class StatementElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Statement");
private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
private final RuleCall cBooleanAssignmentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
private final RuleCall cIntAssignmentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
private final RuleCall cPrintVarParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
private final RuleCall cPrintStrParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
//Statement:
// BooleanAssignment | IntAssignment | PrintVar | PrintStr;
@Override public ParserRule getRule() { return rule; }
//BooleanAssignment | IntAssignment | PrintVar | PrintStr
public Alternatives getAlternatives() { return cAlternatives; }
//BooleanAssignment
public RuleCall getBooleanAssignmentParserRuleCall_0() { return cBooleanAssignmentParserRuleCall_0; }
//IntAssignment
public RuleCall getIntAssignmentParserRuleCall_1() { return cIntAssignmentParserRuleCall_1; }
//PrintVar
public RuleCall getPrintVarParserRuleCall_2() { return cPrintVarParserRuleCall_2; }
//PrintStr
public RuleCall getPrintStrParserRuleCall_3() { return cPrintStrParserRuleCall_3; }
}
public class State_ImplElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.State_Impl");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Action cStateAction_0 = (Action)cGroup.eContents().get(0);
private final Keyword cStateKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
private final Assignment cBlockAssignment_3 = (Assignment)cGroup.eContents().get(3);
private final RuleCall cBlockBlockParserRuleCall_3_0 = (RuleCall)cBlockAssignment_3.eContents().get(0);
//State_Impl State:
// {State}
// 'State' name=EString
// block=Block?
@Override public ParserRule getRule() { return rule; }
//{State} 'State' name=EString block=Block?
public Group getGroup() { return cGroup; }
//{State}
public Action getStateAction_0() { return cStateAction_0; }
//'State'
public Keyword getStateKeyword_1() { return cStateKeyword_1; }
//name=EString
public Assignment getNameAssignment_2() { return cNameAssignment_2; }
//EString
public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }
//block=Block?
public Assignment getBlockAssignment_3() { return cBlockAssignment_3; }
//Block
public RuleCall getBlockBlockParserRuleCall_3_0() { return cBlockBlockParserRuleCall_3_0; }
}
public class TransitionElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Transition");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Assignment cInputAssignment_0 = (Assignment)cGroup.eContents().get(0);
private final CrossReference cInputStateCrossReference_0_0 = (CrossReference)cInputAssignment_0.eContents().get(0);
private final RuleCall cInputStateEStringParserRuleCall_0_0_1 = (RuleCall)cInputStateCrossReference_0_0.eContents().get(1);
private final Keyword cHyphenMinusGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cOutputAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final CrossReference cOutputStateCrossReference_2_0 = (CrossReference)cOutputAssignment_2.eContents().get(0);
private final RuleCall cOutputStateEStringParserRuleCall_2_0_1 = (RuleCall)cOutputStateCrossReference_2_0.eContents().get(1);
private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
private final Keyword cLeftSquareBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
private final Assignment cExpressionAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
private final RuleCall cExpressionBooleanExpressionParserRuleCall_3_1_0 = (RuleCall)cExpressionAssignment_3_1.eContents().get(0);
private final Keyword cRightSquareBracketKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
//Transition:
// input=[State|EString] '->' output=[State|EString] ('[' expression=BooleanExpression ']')?;
@Override public ParserRule getRule() { return rule; }
//input=[State|EString] '->' output=[State|EString] ('[' expression=BooleanExpression ']')?
public Group getGroup() { return cGroup; }
//input=[State|EString]
public Assignment getInputAssignment_0() { return cInputAssignment_0; }
//[State|EString]
public CrossReference getInputStateCrossReference_0_0() { return cInputStateCrossReference_0_0; }
//EString
public RuleCall getInputStateEStringParserRuleCall_0_0_1() { return cInputStateEStringParserRuleCall_0_0_1; }
//'->'
public Keyword getHyphenMinusGreaterThanSignKeyword_1() { return cHyphenMinusGreaterThanSignKeyword_1; }
//output=[State|EString]
public Assignment getOutputAssignment_2() { return cOutputAssignment_2; }
//[State|EString]
public CrossReference getOutputStateCrossReference_2_0() { return cOutputStateCrossReference_2_0; }
//EString
public RuleCall getOutputStateEStringParserRuleCall_2_0_1() { return cOutputStateEStringParserRuleCall_2_0_1; }
//('[' expression=BooleanExpression ']')?
public Group getGroup_3() { return cGroup_3; }
//'['
public Keyword getLeftSquareBracketKeyword_3_0() { return cLeftSquareBracketKeyword_3_0; }
//expression=BooleanExpression
public Assignment getExpressionAssignment_3_1() { return cExpressionAssignment_3_1; }
//BooleanExpression
public RuleCall getExpressionBooleanExpressionParserRuleCall_3_1_0() { return cExpressionBooleanExpressionParserRuleCall_3_1_0; }
//']'
public Keyword getRightSquareBracketKeyword_3_2() { return cRightSquareBracketKeyword_3_2; }
}
public class ContextElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Context");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Action cContextAction_0 = (Action)cGroup.eContents().get(0);
private final Keyword cContextKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
private final Assignment cVariablesAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
private final RuleCall cVariablesVariableParserRuleCall_3_0_0 = (RuleCall)cVariablesAssignment_3_0.eContents().get(0);
private final Assignment cVariablesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
private final RuleCall cVariablesVariableParserRuleCall_3_1_0 = (RuleCall)cVariablesAssignment_3_1.eContents().get(0);
private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
//Context:
// {Context}
// 'Context'
// '{' (variables+=Variable variables+=Variable*)?
// '}';
@Override public ParserRule getRule() { return rule; }
//{Context} 'Context' '{' (variables+=Variable variables+=Variable*)? '}'
public Group getGroup() { return cGroup; }
//{Context}
public Action getContextAction_0() { return cContextAction_0; }
//'Context'
public Keyword getContextKeyword_1() { return cContextKeyword_1; }
//'{'
public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
//(variables+=Variable variables+=Variable*)?
public Group getGroup_3() { return cGroup_3; }
//variables+=Variable
public Assignment getVariablesAssignment_3_0() { return cVariablesAssignment_3_0; }
//Variable
public RuleCall getVariablesVariableParserRuleCall_3_0_0() { return cVariablesVariableParserRuleCall_3_0_0; }
//variables+=Variable*
public Assignment getVariablesAssignment_3_1() { return cVariablesAssignment_3_1; }
//Variable
public RuleCall getVariablesVariableParserRuleCall_3_1_0() { return cVariablesVariableParserRuleCall_3_1_0; }
//'}'
public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
}
public class BlockElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Block");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Action cBlockAction_0 = (Action)cGroup.eContents().get(0);
private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
private final Assignment cStatementAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
private final RuleCall cStatementStatementParserRuleCall_2_0_0 = (RuleCall)cStatementAssignment_2_0.eContents().get(0);
private final Assignment cStatementAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
private final RuleCall cStatementStatementParserRuleCall_2_1_0 = (RuleCall)cStatementAssignment_2_1.eContents().get(0);
private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
//Block:
// {Block}
// '{' (statement+=Statement statement+=Statement*)?
// '}';
@Override public ParserRule getRule() { return rule; }
//{Block} '{' (statement+=Statement statement+=Statement*)? '}'
public Group getGroup() { return cGroup; }
//{Block}
public Action getBlockAction_0() { return cBlockAction_0; }
//'{'
public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
//(statement+=Statement statement+=Statement*)?
public Group getGroup_2() { return cGroup_2; }
//statement+=Statement
public Assignment getStatementAssignment_2_0() { return cStatementAssignment_2_0; }
//Statement
public RuleCall getStatementStatementParserRuleCall_2_0_0() { return cStatementStatementParserRuleCall_2_0_0; }
//statement+=Statement*
public Assignment getStatementAssignment_2_1() { return cStatementAssignment_2_1; }
//Statement
public RuleCall getStatementStatementParserRuleCall_2_1_0() { return cStatementStatementParserRuleCall_2_1_0; }
//'}'
public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
}
public class FinalStateElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.FinalState");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Action cFinalStateAction_0 = (Action)cGroup.eContents().get(0);
private final Keyword cFinalStateKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
private final Assignment cBlockAssignment_3 = (Assignment)cGroup.eContents().get(3);
private final RuleCall cBlockBlockParserRuleCall_3_0 = (RuleCall)cBlockAssignment_3.eContents().get(0);
//FinalState:
// {FinalState}
// 'FinalState' name=EString
// block=Block?;
@Override public ParserRule getRule() { return rule; }
//{FinalState} 'FinalState' name=EString block=Block?
public Group getGroup() { return cGroup; }
//{FinalState}
public Action getFinalStateAction_0() { return cFinalStateAction_0; }
//'FinalState'
public Keyword getFinalStateKeyword_1() { return cFinalStateKeyword_1; }
//name=EString
public Assignment getNameAssignment_2() { return cNameAssignment_2; }
//EString
public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }
//block=Block?
public Assignment getBlockAssignment_3() { return cBlockAssignment_3; }
//Block
public RuleCall getBlockBlockParserRuleCall_3_0() { return cBlockBlockParserRuleCall_3_0; }
}
public class BooleanAssignmentElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.BooleanAssignment");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cAssignBoolKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cVariableAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cVariableBooleanVariableRefParserRuleCall_2_0 = (RuleCall)cVariableAssignment_2.eContents().get(0);
private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
private final RuleCall cValueBooleanExpressionParserRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0);
private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
//BooleanAssignment:
// 'AssignBool' '(' variable=BooleanVariableRef ',' value=BooleanExpression ')';
@Override public ParserRule getRule() { return rule; }
//'AssignBool' '(' variable=BooleanVariableRef ',' value=BooleanExpression ')'
public Group getGroup() { return cGroup; }
//'AssignBool'
public Keyword getAssignBoolKeyword_0() { return cAssignBoolKeyword_0; }
//'('
public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
//variable=BooleanVariableRef
public Assignment getVariableAssignment_2() { return cVariableAssignment_2; }
//BooleanVariableRef
public RuleCall getVariableBooleanVariableRefParserRuleCall_2_0() { return cVariableBooleanVariableRefParserRuleCall_2_0; }
//','
public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
//value=BooleanExpression
public Assignment getValueAssignment_4() { return cValueAssignment_4; }
//BooleanExpression
public RuleCall getValueBooleanExpressionParserRuleCall_4_0() { return cValueBooleanExpressionParserRuleCall_4_0; }
//')'
public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
}
public class IntAssignmentElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.IntAssignment");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cAssignIntKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cVariableAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cVariableIntVariableRefParserRuleCall_2_0 = (RuleCall)cVariableAssignment_2.eContents().get(0);
private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
private final RuleCall cValueIntExpressionParserRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0);
private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
//IntAssignment:
// 'AssignInt' '(' variable=IntVariableRef ',' value=IntExpression ')';
@Override public ParserRule getRule() { return rule; }
//'AssignInt' '(' variable=IntVariableRef ',' value=IntExpression ')'
public Group getGroup() { return cGroup; }
//'AssignInt'
public Keyword getAssignIntKeyword_0() { return cAssignIntKeyword_0; }
//'('
public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
//variable=IntVariableRef
public Assignment getVariableAssignment_2() { return cVariableAssignment_2; }
//IntVariableRef
public RuleCall getVariableIntVariableRefParserRuleCall_2_0() { return cVariableIntVariableRefParserRuleCall_2_0; }
//','
public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
//value=IntExpression
public Assignment getValueAssignment_4() { return cValueAssignment_4; }
//IntExpression
public RuleCall getValueIntExpressionParserRuleCall_4_0() { return cValueIntExpressionParserRuleCall_4_0; }
//')'
public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
}
public class PrintVarElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.PrintVar");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cPrintVarKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cValueEStringParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
//PrintVar:
// 'PrintVar' '(' value=EString ')';
@Override public ParserRule getRule() { return rule; }
//'PrintVar' '(' value=EString ')'
public Group getGroup() { return cGroup; }
//'PrintVar'
public Keyword getPrintVarKeyword_0() { return cPrintVarKeyword_0; }
//'('
public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
//value=EString
public Assignment getValueAssignment_2() { return cValueAssignment_2; }
//EString
public RuleCall getValueEStringParserRuleCall_2_0() { return cValueEStringParserRuleCall_2_0; }
//')'
public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
}
public class PrintStrElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.PrintStr");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cPrintStrKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cValueEStringParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
//PrintStr:
// 'PrintStr' '(' value=EString ')';
@Override public ParserRule getRule() { return rule; }
//'PrintStr' '(' value=EString ')'
public Group getGroup() { return cGroup; }
//'PrintStr'
public Keyword getPrintStrKeyword_0() { return cPrintStrKeyword_0; }
//'('
public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
//value=EString
public Assignment getValueAssignment_2() { return cValueAssignment_2; }
//EString
public RuleCall getValueEStringParserRuleCall_2_0() { return cValueEStringParserRuleCall_2_0; }
//')'
public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
}
public class BooleanExpressionElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.BooleanExpression");
private final RuleCall cAndOrParserRuleCall = (RuleCall)rule.eContents().get(1);
/// *
// * Logical operators
// * / BooleanExpression:
// AndOr;
@Override public ParserRule getRule() { return rule; }
//AndOr
public RuleCall getAndOrParserRuleCall() { return cAndOrParserRuleCall; }
}
public class AndOrElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.AndOr");
private final Group cGroup = (Group)rule.eContents().get(1);
private final RuleCall cTermBoolParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
private final Action cOrLeftAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0);
private final Keyword cORKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1);
private final Assignment cRightAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2);
private final RuleCall cRightAndOrParserRuleCall_1_0_2_0 = (RuleCall)cRightAssignment_1_0_2.eContents().get(0);
private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
private final Action cAndLeftAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0);
private final Keyword cANDKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
private final Assignment cRightAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
private final RuleCall cRightAndOrParserRuleCall_1_1_2_0 = (RuleCall)cRightAssignment_1_1_2.eContents().get(0);
//AndOr BooleanExpression:
// TermBool ({Or.left=current} 'OR' right=AndOr | {And.left=current} 'AND' right=AndOr)?
@Override public ParserRule getRule() { return rule; }
//TermBool ({Or.left=current} 'OR' right=AndOr | {And.left=current} 'AND' right=AndOr)?
public Group getGroup() { return cGroup; }
//TermBool
public RuleCall getTermBoolParserRuleCall_0() { return cTermBoolParserRuleCall_0; }
//({Or.left=current} 'OR' right=AndOr | {And.left=current} 'AND' right=AndOr)?
public Alternatives getAlternatives_1() { return cAlternatives_1; }
//{Or.left=current} 'OR' right=AndOr
public Group getGroup_1_0() { return cGroup_1_0; }
//{Or.left=current}
public Action getOrLeftAction_1_0_0() { return cOrLeftAction_1_0_0; }
//'OR'
public Keyword getORKeyword_1_0_1() { return cORKeyword_1_0_1; }
//right=AndOr
public Assignment getRightAssignment_1_0_2() { return cRightAssignment_1_0_2; }
//AndOr
public RuleCall getRightAndOrParserRuleCall_1_0_2_0() { return cRightAndOrParserRuleCall_1_0_2_0; }
//{And.left=current} 'AND' right=AndOr
public Group getGroup_1_1() { return cGroup_1_1; }
//{And.left=current}
public Action getAndLeftAction_1_1_0() { return cAndLeftAction_1_1_0; }
//'AND'
public Keyword getANDKeyword_1_1_1() { return cANDKeyword_1_1_1; }
//right=AndOr
public Assignment getRightAssignment_1_1_2() { return cRightAssignment_1_1_2; }
//AndOr
public RuleCall getRightAndOrParserRuleCall_1_1_2_0() { return cRightAndOrParserRuleCall_1_1_2_0; }
}
public class TermBoolElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.TermBool");
private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
private final RuleCall cBooleanParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
private final RuleCall cBooleanVariableRefParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
private final RuleCall cIntComparisonParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3);
private final Action cNotAction_3_0 = (Action)cGroup_3.eContents().get(0);
private final Keyword cExclamationMarkKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
private final Assignment cExpressionAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
private final RuleCall cExpressionTermBoolParserRuleCall_3_2_0 = (RuleCall)cExpressionAssignment_3_2.eContents().get(0);
//TermBool BooleanExpression:
// Boolean | BooleanVariableRef | IntComparison | {Not} '!' expression=TermBool
@Override public ParserRule getRule() { return rule; }
//Boolean | BooleanVariableRef | IntComparison | {Not} '!' expression=TermBool
public Alternatives getAlternatives() { return cAlternatives; }
//Boolean
public RuleCall getBooleanParserRuleCall_0() { return cBooleanParserRuleCall_0; }
//BooleanVariableRef
public RuleCall getBooleanVariableRefParserRuleCall_1() { return cBooleanVariableRefParserRuleCall_1; }
//IntComparison
public RuleCall getIntComparisonParserRuleCall_2() { return cIntComparisonParserRuleCall_2; }
//{Not} '!' expression=TermBool
public Group getGroup_3() { return cGroup_3; }
//{Not}
public Action getNotAction_3_0() { return cNotAction_3_0; }
//'!'
public Keyword getExclamationMarkKeyword_3_1() { return cExclamationMarkKeyword_3_1; }
//expression=TermBool
public Assignment getExpressionAssignment_3_2() { return cExpressionAssignment_3_2; }
//TermBool
public RuleCall getExpressionTermBoolParserRuleCall_3_2_0() { return cExpressionTermBoolParserRuleCall_3_2_0; }
}
public class NotElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Not");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cExclamationMarkKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Assignment cExpressionAssignment_1 = (Assignment)cGroup.eContents().get(1);
private final RuleCall cExpressionAndOrParserRuleCall_1_0 = (RuleCall)cExpressionAssignment_1.eContents().get(0);
//Not:
// '!' expression=AndOr;
@Override public ParserRule getRule() { return rule; }
//'!' expression=AndOr
public Group getGroup() { return cGroup; }
//'!'
public Keyword getExclamationMarkKeyword_0() { return cExclamationMarkKeyword_0; }
//expression=AndOr
public Assignment getExpressionAssignment_1() { return cExpressionAssignment_1; }
//AndOr
public RuleCall getExpressionAndOrParserRuleCall_1_0() { return cExpressionAndOrParserRuleCall_1_0; }
}
public class BooleanVariableRefElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.BooleanVariableRef");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Action cBooleanVariableRefAction_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);
//BooleanVariableRef:
// {BooleanVariableRef} name=EString;
@Override public ParserRule getRule() { return rule; }
//{BooleanVariableRef} name=EString
public Group getGroup() { return cGroup; }
//{BooleanVariableRef}
public Action getBooleanVariableRefAction_0() { return cBooleanVariableRefAction_0; }
//name=EString
public Assignment getNameAssignment_1() { return cNameAssignment_1; }
//EString
public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
}
public class BooleanElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Boolean");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Assignment cValueAssignment_0 = (Assignment)cGroup.eContents().get(0);
private final Keyword cValueValueKeyword_0_0 = (Keyword)cValueAssignment_0.eContents().get(0);
private final Keyword cBooleanKeyword_1 = (Keyword)cGroup.eContents().get(1);
//Boolean:
// value?='value'
// 'Boolean';
@Override public ParserRule getRule() { return rule; }
//value?='value' 'Boolean'
public Group getGroup() { return cGroup; }
//value?='value'
public Assignment getValueAssignment_0() { return cValueAssignment_0; }
//'value'
public Keyword getValueValueKeyword_0_0() { return cValueValueKeyword_0_0; }
//'Boolean'
public Keyword getBooleanKeyword_1() { return cBooleanKeyword_1; }
}
public class EBooleanElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.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 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; }
}
public class IntComparisonElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.IntComparison");
private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
private final RuleCall cEqualParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
private final RuleCall cGreaterParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
private final RuleCall cGreaterOrEqualParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
private final RuleCall cLessParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
private final RuleCall cLessOrEqualParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
/// *
// * Integer comparators
// * / IntComparison:
// Equal | Greater | GreaterOrEqual | Less | LessOrEqual;
@Override public ParserRule getRule() { return rule; }
//Equal | Greater | GreaterOrEqual | Less | LessOrEqual
public Alternatives getAlternatives() { return cAlternatives; }
//Equal
public RuleCall getEqualParserRuleCall_0() { return cEqualParserRuleCall_0; }
//Greater
public RuleCall getGreaterParserRuleCall_1() { return cGreaterParserRuleCall_1; }
//GreaterOrEqual
public RuleCall getGreaterOrEqualParserRuleCall_2() { return cGreaterOrEqualParserRuleCall_2; }
//Less
public RuleCall getLessParserRuleCall_3() { return cLessParserRuleCall_3; }
//LessOrEqual
public RuleCall getLessOrEqualParserRuleCall_4() { return cLessOrEqualParserRuleCall_4; }
}
public class EqualElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Equal");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cEqualKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cLeftAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cLeftIntExpressionParserRuleCall_2_0 = (RuleCall)cLeftAssignment_2.eContents().get(0);
private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
private final Assignment cRightAssignment_4 = (Assignment)cGroup.eContents().get(4);
private final RuleCall cRightIntExpressionParserRuleCall_4_0 = (RuleCall)cRightAssignment_4.eContents().get(0);
private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
//Equal:
// 'equal' '(' left=IntExpression ',' right=IntExpression ')';
@Override public ParserRule getRule() { return rule; }
//'equal' '(' left=IntExpression ',' right=IntExpression ')'
public Group getGroup() { return cGroup; }
//'equal'
public Keyword getEqualKeyword_0() { return cEqualKeyword_0; }
//'('
public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
//left=IntExpression
public Assignment getLeftAssignment_2() { return cLeftAssignment_2; }
//IntExpression
public RuleCall getLeftIntExpressionParserRuleCall_2_0() { return cLeftIntExpressionParserRuleCall_2_0; }
//','
public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
//right=IntExpression
public Assignment getRightAssignment_4() { return cRightAssignment_4; }
//IntExpression
public RuleCall getRightIntExpressionParserRuleCall_4_0() { return cRightIntExpressionParserRuleCall_4_0; }
//')'
public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
}
public class GreaterElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Greater");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cGreaterKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cLeftAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cLeftIntExpressionParserRuleCall_2_0 = (RuleCall)cLeftAssignment_2.eContents().get(0);
private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
private final Assignment cRightAssignment_4 = (Assignment)cGroup.eContents().get(4);
private final RuleCall cRightIntExpressionParserRuleCall_4_0 = (RuleCall)cRightAssignment_4.eContents().get(0);
private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
//Greater:
// 'greater' '(' left=IntExpression ',' right=IntExpression ')';
@Override public ParserRule getRule() { return rule; }
//'greater' '(' left=IntExpression ',' right=IntExpression ')'
public Group getGroup() { return cGroup; }
//'greater'
public Keyword getGreaterKeyword_0() { return cGreaterKeyword_0; }
//'('
public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
//left=IntExpression
public Assignment getLeftAssignment_2() { return cLeftAssignment_2; }
//IntExpression
public RuleCall getLeftIntExpressionParserRuleCall_2_0() { return cLeftIntExpressionParserRuleCall_2_0; }
//','
public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
//right=IntExpression
public Assignment getRightAssignment_4() { return cRightAssignment_4; }
//IntExpression
public RuleCall getRightIntExpressionParserRuleCall_4_0() { return cRightIntExpressionParserRuleCall_4_0; }
//')'
public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
}
public class GreaterOrEqualElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.GreaterOrEqual");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cGreaterOrEqualKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cLeftAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cLeftIntExpressionParserRuleCall_2_0 = (RuleCall)cLeftAssignment_2.eContents().get(0);
private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
private final Assignment cRightAssignment_4 = (Assignment)cGroup.eContents().get(4);
private final RuleCall cRightIntExpressionParserRuleCall_4_0 = (RuleCall)cRightAssignment_4.eContents().get(0);
private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
//GreaterOrEqual:
// 'greaterOrEqual' '(' left=IntExpression ',' right=IntExpression ')';
@Override public ParserRule getRule() { return rule; }
//'greaterOrEqual' '(' left=IntExpression ',' right=IntExpression ')'
public Group getGroup() { return cGroup; }
//'greaterOrEqual'
public Keyword getGreaterOrEqualKeyword_0() { return cGreaterOrEqualKeyword_0; }
//'('
public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
//left=IntExpression
public Assignment getLeftAssignment_2() { return cLeftAssignment_2; }
//IntExpression
public RuleCall getLeftIntExpressionParserRuleCall_2_0() { return cLeftIntExpressionParserRuleCall_2_0; }
//','
public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
//right=IntExpression
public Assignment getRightAssignment_4() { return cRightAssignment_4; }
//IntExpression
public RuleCall getRightIntExpressionParserRuleCall_4_0() { return cRightIntExpressionParserRuleCall_4_0; }
//')'
public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
}
public class LessElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Less");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cLessKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cLeftAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cLeftIntExpressionParserRuleCall_2_0 = (RuleCall)cLeftAssignment_2.eContents().get(0);
private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
private final Assignment cRightAssignment_4 = (Assignment)cGroup.eContents().get(4);
private final RuleCall cRightIntExpressionParserRuleCall_4_0 = (RuleCall)cRightAssignment_4.eContents().get(0);
private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
//Less:
// 'less' '(' left=IntExpression ',' right=IntExpression ')';
@Override public ParserRule getRule() { return rule; }
//'less' '(' left=IntExpression ',' right=IntExpression ')'
public Group getGroup() { return cGroup; }
//'less'
public Keyword getLessKeyword_0() { return cLessKeyword_0; }
//'('
public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
//left=IntExpression
public Assignment getLeftAssignment_2() { return cLeftAssignment_2; }
//IntExpression
public RuleCall getLeftIntExpressionParserRuleCall_2_0() { return cLeftIntExpressionParserRuleCall_2_0; }
//','
public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
//right=IntExpression
public Assignment getRightAssignment_4() { return cRightAssignment_4; }
//IntExpression
public RuleCall getRightIntExpressionParserRuleCall_4_0() { return cRightIntExpressionParserRuleCall_4_0; }
//')'
public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
}
public class LessOrEqualElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.LessOrEqual");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cLessOrEqualKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cLeftAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cLeftIntExpressionParserRuleCall_2_0 = (RuleCall)cLeftAssignment_2.eContents().get(0);
private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
private final Assignment cRightAssignment_4 = (Assignment)cGroup.eContents().get(4);
private final RuleCall cRightIntExpressionParserRuleCall_4_0 = (RuleCall)cRightAssignment_4.eContents().get(0);
private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
//LessOrEqual:
// 'lessOrEqual' '(' left=IntExpression ',' right=IntExpression ')';
@Override public ParserRule getRule() { return rule; }
//'lessOrEqual' '(' left=IntExpression ',' right=IntExpression ')'
public Group getGroup() { return cGroup; }
//'lessOrEqual'
public Keyword getLessOrEqualKeyword_0() { return cLessOrEqualKeyword_0; }
//'('
public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
//left=IntExpression
public Assignment getLeftAssignment_2() { return cLeftAssignment_2; }
//IntExpression
public RuleCall getLeftIntExpressionParserRuleCall_2_0() { return cLeftIntExpressionParserRuleCall_2_0; }
//','
public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }
//right=IntExpression
public Assignment getRightAssignment_4() { return cRightAssignment_4; }
//IntExpression
public RuleCall getRightIntExpressionParserRuleCall_4_0() { return cRightIntExpressionParserRuleCall_4_0; }
//')'
public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
}
public class IntExpressionElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.IntExpression");
private final RuleCall cPlusMinusParserRuleCall = (RuleCall)rule.eContents().get(1);
/// *
// * Integer operators
// * / IntExpression:
// PlusMinus;
@Override public ParserRule getRule() { return rule; }
//PlusMinus
public RuleCall getPlusMinusParserRuleCall() { return cPlusMinusParserRuleCall; }
}
public class PlusMinusElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.PlusMinus");
private final Group cGroup = (Group)rule.eContents().get(1);
private final RuleCall cMultDivParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
private final Action cPlusLeftAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0);
private final Keyword cPlusSignKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1);
private final Assignment cRightAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2);
private final RuleCall cRightMultDivParserRuleCall_1_0_2_0 = (RuleCall)cRightAssignment_1_0_2.eContents().get(0);
private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
private final Action cMinusLeftAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0);
private final Keyword cHyphenMinusKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
private final Assignment cRightAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
private final RuleCall cRightMultDivParserRuleCall_1_1_2_0 = (RuleCall)cRightAssignment_1_1_2.eContents().get(0);
//PlusMinus IntExpression:
// MultDiv ({Plus.left=current} '+' right=MultDiv | {Minus.left=current} '-' right=MultDiv)?
@Override public ParserRule getRule() { return rule; }
//MultDiv ({Plus.left=current} '+' right=MultDiv | {Minus.left=current} '-' right=MultDiv)?
public Group getGroup() { return cGroup; }
//MultDiv
public RuleCall getMultDivParserRuleCall_0() { return cMultDivParserRuleCall_0; }
//({Plus.left=current} '+' right=MultDiv | {Minus.left=current} '-' right=MultDiv)?
public Alternatives getAlternatives_1() { return cAlternatives_1; }
//{Plus.left=current} '+' right=MultDiv
public Group getGroup_1_0() { return cGroup_1_0; }
//{Plus.left=current}
public Action getPlusLeftAction_1_0_0() { return cPlusLeftAction_1_0_0; }
//'+'
public Keyword getPlusSignKeyword_1_0_1() { return cPlusSignKeyword_1_0_1; }
//right=MultDiv
public Assignment getRightAssignment_1_0_2() { return cRightAssignment_1_0_2; }
//MultDiv
public RuleCall getRightMultDivParserRuleCall_1_0_2_0() { return cRightMultDivParserRuleCall_1_0_2_0; }
//{Minus.left=current} '-' right=MultDiv
public Group getGroup_1_1() { return cGroup_1_1; }
//{Minus.left=current}
public Action getMinusLeftAction_1_1_0() { return cMinusLeftAction_1_1_0; }
//'-'
public Keyword getHyphenMinusKeyword_1_1_1() { return cHyphenMinusKeyword_1_1_1; }
//right=MultDiv
public Assignment getRightAssignment_1_1_2() { return cRightAssignment_1_1_2; }
//MultDiv
public RuleCall getRightMultDivParserRuleCall_1_1_2_0() { return cRightMultDivParserRuleCall_1_1_2_0; }
}
public class MultDivElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.MultDiv");
private final Group cGroup = (Group)rule.eContents().get(1);
private final RuleCall cTermIntParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
private final Action cMultiplyLeftAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0);
private final Keyword cAsteriskKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1);
private final Assignment cRightAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2);
private final RuleCall cRightTermIntParserRuleCall_1_0_2_0 = (RuleCall)cRightAssignment_1_0_2.eContents().get(0);
private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
private final Action cDivideLeftAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0);
private final Keyword cSolidusKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
private final Assignment cRightAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
private final RuleCall cRightTermIntParserRuleCall_1_1_2_0 = (RuleCall)cRightAssignment_1_1_2.eContents().get(0);
//MultDiv IntExpression:
// TermInt ({Multiply.left=current} '*' right=TermInt | {Divide.left=current} '/' right=TermInt)?
@Override public ParserRule getRule() { return rule; }
//TermInt ({Multiply.left=current} '*' right=TermInt | {Divide.left=current} '/' right=TermInt)?
public Group getGroup() { return cGroup; }
//TermInt
public RuleCall getTermIntParserRuleCall_0() { return cTermIntParserRuleCall_0; }
//({Multiply.left=current} '*' right=TermInt | {Divide.left=current} '/' right=TermInt)?
public Alternatives getAlternatives_1() { return cAlternatives_1; }
//{Multiply.left=current} '*' right=TermInt
public Group getGroup_1_0() { return cGroup_1_0; }
//{Multiply.left=current}
public Action getMultiplyLeftAction_1_0_0() { return cMultiplyLeftAction_1_0_0; }
//'*'
public Keyword getAsteriskKeyword_1_0_1() { return cAsteriskKeyword_1_0_1; }
//right=TermInt
public Assignment getRightAssignment_1_0_2() { return cRightAssignment_1_0_2; }
//TermInt
public RuleCall getRightTermIntParserRuleCall_1_0_2_0() { return cRightTermIntParserRuleCall_1_0_2_0; }
//{Divide.left=current} '/' right=TermInt
public Group getGroup_1_1() { return cGroup_1_1; }
//{Divide.left=current}
public Action getDivideLeftAction_1_1_0() { return cDivideLeftAction_1_1_0; }
//'/'
public Keyword getSolidusKeyword_1_1_1() { return cSolidusKeyword_1_1_1; }
//right=TermInt
public Assignment getRightAssignment_1_1_2() { return cRightAssignment_1_1_2; }
//TermInt
public RuleCall getRightTermIntParserRuleCall_1_1_2_0() { return cRightTermIntParserRuleCall_1_1_2_0; }
}
public class TermIntElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.TermInt");
private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
private final RuleCall cIntegerParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
private final RuleCall cIntVariableRefParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2);
private final Keyword cLeftParenthesisKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
private final RuleCall cPlusMinusParserRuleCall_2_1 = (RuleCall)cGroup_2.eContents().get(1);
private final Keyword cRightParenthesisKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
//TermInt IntExpression:
// Integer | IntVariableRef | '(' PlusMinus ')'
@Override public ParserRule getRule() { return rule; }
//Integer | IntVariableRef | '(' PlusMinus ')'
public Alternatives getAlternatives() { return cAlternatives; }
//Integer
public RuleCall getIntegerParserRuleCall_0() { return cIntegerParserRuleCall_0; }
//IntVariableRef
public RuleCall getIntVariableRefParserRuleCall_1() { return cIntVariableRefParserRuleCall_1; }
//'(' PlusMinus ')'
public Group getGroup_2() { return cGroup_2; }
//'('
public Keyword getLeftParenthesisKeyword_2_0() { return cLeftParenthesisKeyword_2_0; }
//PlusMinus
public RuleCall getPlusMinusParserRuleCall_2_1() { return cPlusMinusParserRuleCall_2_1; }
//')'
public Keyword getRightParenthesisKeyword_2_2() { return cRightParenthesisKeyword_2_2; }
}
public class IntegerElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.Integer");
private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
private final RuleCall cValueEIntParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
//Integer:
// value=EInt;
@Override public ParserRule getRule() { return rule; }
//value=EInt
public Assignment getValueAssignment() { return cValueAssignment; }
//EInt
public RuleCall getValueEIntParserRuleCall_0() { return cValueEIntParserRuleCall_0; }
}
public class IntVariableRefElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.IntVariableRef");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Action cIntVariableRefAction_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);
//IntVariableRef:
// {IntVariableRef} name=EString;
@Override public ParserRule getRule() { return rule; }
//{IntVariableRef} name=EString
public Group getGroup() { return cGroup; }
//{IntVariableRef}
public Action getIntVariableRefAction_0() { return cIntVariableRefAction_0; }
//name=EString
public Assignment getNameAssignment_1() { return cNameAssignment_1; }
//EString
public RuleCall getNameEStringParserRuleCall_1_0() { return cNameEStringParserRuleCall_1_0; }
}
public class EIntElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.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 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 IntegerVarElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.IntegerVar");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Action cIntegerVarAction_0 = (Action)cGroup.eContents().get(0);
private final Keyword cIntegerKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
private final Keyword cEqualsSignKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
private final Assignment cValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
private final RuleCall cValueEIntParserRuleCall_3_1_0 = (RuleCall)cValueAssignment_3_1.eContents().get(0);
//IntegerVar:
// {IntegerVar}
// 'Integer' name=EString ('=' value=EInt)?;
@Override public ParserRule getRule() { return rule; }
//{IntegerVar} 'Integer' name=EString ('=' value=EInt)?
public Group getGroup() { return cGroup; }
//{IntegerVar}
public Action getIntegerVarAction_0() { return cIntegerVarAction_0; }
//'Integer'
public Keyword getIntegerKeyword_1() { return cIntegerKeyword_1; }
//name=EString
public Assignment getNameAssignment_2() { return cNameAssignment_2; }
//EString
public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }
//('=' value=EInt)?
public Group getGroup_3() { return cGroup_3; }
//'='
public Keyword getEqualsSignKeyword_3_0() { return cEqualsSignKeyword_3_0; }
//value=EInt
public Assignment getValueAssignment_3_1() { return cValueAssignment_3_1; }
//EInt
public RuleCall getValueEIntParserRuleCall_3_1_0() { return cValueEIntParserRuleCall_3_1_0; }
}
public class EStringElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.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:
// 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 BooleanVarElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "fr.inria.diverse.MiniFSM.BooleanVar");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Action cBooleanVarAction_0 = (Action)cGroup.eContents().get(0);
private final Keyword cBooleanKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cNameEStringParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
private final Keyword cEqualsSignKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
private final Assignment cValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
private final RuleCall cValueEBooleanParserRuleCall_3_1_0 = (RuleCall)cValueAssignment_3_1.eContents().get(0);
//BooleanVar:
// {BooleanVar}
// 'Boolean' name=EString ('=' value=EBoolean)?;
@Override public ParserRule getRule() { return rule; }
//{BooleanVar} 'Boolean' name=EString ('=' value=EBoolean)?
public Group getGroup() { return cGroup; }
//{BooleanVar}
public Action getBooleanVarAction_0() { return cBooleanVarAction_0; }
//'Boolean'
public Keyword getBooleanKeyword_1() { return cBooleanKeyword_1; }
//name=EString
public Assignment getNameAssignment_2() { return cNameAssignment_2; }
//EString
public RuleCall getNameEStringParserRuleCall_2_0() { return cNameEStringParserRuleCall_2_0; }
//('=' value=EBoolean)?
public Group getGroup_3() { return cGroup_3; }
//'='
public Keyword getEqualsSignKeyword_3_0() { return cEqualsSignKeyword_3_0; }
//value=EBoolean
public Assignment getValueAssignment_3_1() { return cValueAssignment_3_1; }
//EBoolean
public RuleCall getValueEBooleanParserRuleCall_3_1_0() { return cValueEBooleanParserRuleCall_3_1_0; }
}
private final FSMElements pFSM;
private final StateElements pState;
private final VariableElements pVariable;
private final StatementElements pStatement;
private final State_ImplElements pState_Impl;
private final TransitionElements pTransition;
private final ContextElements pContext;
private final BlockElements pBlock;
private final FinalStateElements pFinalState;
private final BooleanAssignmentElements pBooleanAssignment;
private final IntAssignmentElements pIntAssignment;
private final PrintVarElements pPrintVar;
private final PrintStrElements pPrintStr;
private final BooleanExpressionElements pBooleanExpression;
private final AndOrElements pAndOr;
private final TermBoolElements pTermBool;
private final NotElements pNot;
private final BooleanVariableRefElements pBooleanVariableRef;
private final BooleanElements pBoolean;
private final EBooleanElements pEBoolean;
private final IntComparisonElements pIntComparison;
private final EqualElements pEqual;
private final GreaterElements pGreater;
private final GreaterOrEqualElements pGreaterOrEqual;
private final LessElements pLess;
private final LessOrEqualElements pLessOrEqual;
private final IntExpressionElements pIntExpression;
private final PlusMinusElements pPlusMinus;
private final MultDivElements pMultDiv;
private final TermIntElements pTermInt;
private final IntegerElements pInteger;
private final IntVariableRefElements pIntVariableRef;
private final EIntElements pEInt;
private final IntegerVarElements pIntegerVar;
private final EStringElements pEString;
private final BooleanVarElements pBooleanVar;
private final Grammar grammar;
private final TerminalsGrammarAccess gaTerminals;
@Inject
public MiniFSMGrammarAccess(GrammarProvider grammarProvider,
TerminalsGrammarAccess gaTerminals) {
this.grammar = internalFindGrammar(grammarProvider);
this.gaTerminals = gaTerminals;
this.pFSM = new FSMElements();
this.pState = new StateElements();
this.pVariable = new VariableElements();
this.pStatement = new StatementElements();
this.pState_Impl = new State_ImplElements();
this.pTransition = new TransitionElements();
this.pContext = new ContextElements();
this.pBlock = new BlockElements();
this.pFinalState = new FinalStateElements();
this.pBooleanAssignment = new BooleanAssignmentElements();
this.pIntAssignment = new IntAssignmentElements();
this.pPrintVar = new PrintVarElements();
this.pPrintStr = new PrintStrElements();
this.pBooleanExpression = new BooleanExpressionElements();
this.pAndOr = new AndOrElements();
this.pTermBool = new TermBoolElements();
this.pNot = new NotElements();
this.pBooleanVariableRef = new BooleanVariableRefElements();
this.pBoolean = new BooleanElements();
this.pEBoolean = new EBooleanElements();
this.pIntComparison = new IntComparisonElements();
this.pEqual = new EqualElements();
this.pGreater = new GreaterElements();
this.pGreaterOrEqual = new GreaterOrEqualElements();
this.pLess = new LessElements();
this.pLessOrEqual = new LessOrEqualElements();
this.pIntExpression = new IntExpressionElements();
this.pPlusMinus = new PlusMinusElements();
this.pMultDiv = new MultDivElements();
this.pTermInt = new TermIntElements();
this.pInteger = new IntegerElements();
this.pIntVariableRef = new IntVariableRefElements();
this.pEInt = new EIntElements();
this.pIntegerVar = new IntegerVarElements();
this.pEString = new EStringElements();
this.pBooleanVar = new BooleanVarElements();
}
protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
Grammar grammar = grammarProvider.getGrammar(this);
while (grammar != null) {
if ("fr.inria.diverse.MiniFSM".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;
}
//FSM:
// 'FSM'
// '{' (states+=State states+=State*)?
// 'initialState' initialState=[State|EString] (transitions+=Transition transitions+=Transition*)?
// context=Context?
// '}';
public FSMElements getFSMAccess() {
return pFSM;
}
public ParserRule getFSMRule() {
return getFSMAccess().getRule();
}
//State:
// State_Impl | FinalState;
public StateElements getStateAccess() {
return pState;
}
public ParserRule getStateRule() {
return getStateAccess().getRule();
}
//Variable:
// IntegerVar | BooleanVar;
public VariableElements getVariableAccess() {
return pVariable;
}
public ParserRule getVariableRule() {
return getVariableAccess().getRule();
}
//Statement:
// BooleanAssignment | IntAssignment | PrintVar | PrintStr;
public StatementElements getStatementAccess() {
return pStatement;
}
public ParserRule getStatementRule() {
return getStatementAccess().getRule();
}
//State_Impl State:
// {State}
// 'State' name=EString
// block=Block?
public State_ImplElements getState_ImplAccess() {
return pState_Impl;
}
public ParserRule getState_ImplRule() {
return getState_ImplAccess().getRule();
}
//Transition:
// input=[State|EString] '->' output=[State|EString] ('[' expression=BooleanExpression ']')?;
public TransitionElements getTransitionAccess() {
return pTransition;
}
public ParserRule getTransitionRule() {
return getTransitionAccess().getRule();
}
//Context:
// {Context}
// 'Context'
// '{' (variables+=Variable variables+=Variable*)?
// '}';
public ContextElements getContextAccess() {
return pContext;
}
public ParserRule getContextRule() {
return getContextAccess().getRule();
}
//Block:
// {Block}
// '{' (statement+=Statement statement+=Statement*)?
// '}';
public BlockElements getBlockAccess() {
return pBlock;
}
public ParserRule getBlockRule() {
return getBlockAccess().getRule();
}
//FinalState:
// {FinalState}
// 'FinalState' name=EString
// block=Block?;
public FinalStateElements getFinalStateAccess() {
return pFinalState;
}
public ParserRule getFinalStateRule() {
return getFinalStateAccess().getRule();
}
//BooleanAssignment:
// 'AssignBool' '(' variable=BooleanVariableRef ',' value=BooleanExpression ')';
public BooleanAssignmentElements getBooleanAssignmentAccess() {
return pBooleanAssignment;
}
public ParserRule getBooleanAssignmentRule() {
return getBooleanAssignmentAccess().getRule();
}
//IntAssignment:
// 'AssignInt' '(' variable=IntVariableRef ',' value=IntExpression ')';
public IntAssignmentElements getIntAssignmentAccess() {
return pIntAssignment;
}
public ParserRule getIntAssignmentRule() {
return getIntAssignmentAccess().getRule();
}
//PrintVar:
// 'PrintVar' '(' value=EString ')';
public PrintVarElements getPrintVarAccess() {
return pPrintVar;
}
public ParserRule getPrintVarRule() {
return getPrintVarAccess().getRule();
}
//PrintStr:
// 'PrintStr' '(' value=EString ')';
public PrintStrElements getPrintStrAccess() {
return pPrintStr;
}
public ParserRule getPrintStrRule() {
return getPrintStrAccess().getRule();
}
/// *
// * Logical operators
// * / BooleanExpression:
// AndOr;
public BooleanExpressionElements getBooleanExpressionAccess() {
return pBooleanExpression;
}
public ParserRule getBooleanExpressionRule() {
return getBooleanExpressionAccess().getRule();
}
//AndOr BooleanExpression:
// TermBool ({Or.left=current} 'OR' right=AndOr | {And.left=current} 'AND' right=AndOr)?
public AndOrElements getAndOrAccess() {
return pAndOr;
}
public ParserRule getAndOrRule() {
return getAndOrAccess().getRule();
}
//TermBool BooleanExpression:
// Boolean | BooleanVariableRef | IntComparison | {Not} '!' expression=TermBool
public TermBoolElements getTermBoolAccess() {
return pTermBool;
}
public ParserRule getTermBoolRule() {
return getTermBoolAccess().getRule();
}
//Not:
// '!' expression=AndOr;
public NotElements getNotAccess() {
return pNot;
}
public ParserRule getNotRule() {
return getNotAccess().getRule();
}
//BooleanVariableRef:
// {BooleanVariableRef} name=EString;
public BooleanVariableRefElements getBooleanVariableRefAccess() {
return pBooleanVariableRef;
}
public ParserRule getBooleanVariableRefRule() {
return getBooleanVariableRefAccess().getRule();
}
//Boolean:
// value?='value'
// 'Boolean';
public BooleanElements getBooleanAccess() {
return pBoolean;
}
public ParserRule getBooleanRule() {
return getBooleanAccess().getRule();
}
//EBoolean ecore::EBoolean:
// 'true' | 'false'
public EBooleanElements getEBooleanAccess() {
return pEBoolean;
}
public ParserRule getEBooleanRule() {
return getEBooleanAccess().getRule();
}
/// *
// * Integer comparators
// * / IntComparison:
// Equal | Greater | GreaterOrEqual | Less | LessOrEqual;
public IntComparisonElements getIntComparisonAccess() {
return pIntComparison;
}
public ParserRule getIntComparisonRule() {
return getIntComparisonAccess().getRule();
}
//Equal:
// 'equal' '(' left=IntExpression ',' right=IntExpression ')';
public EqualElements getEqualAccess() {
return pEqual;
}
public ParserRule getEqualRule() {
return getEqualAccess().getRule();
}
//Greater:
// 'greater' '(' left=IntExpression ',' right=IntExpression ')';
public GreaterElements getGreaterAccess() {
return pGreater;
}
public ParserRule getGreaterRule() {
return getGreaterAccess().getRule();
}
//GreaterOrEqual:
// 'greaterOrEqual' '(' left=IntExpression ',' right=IntExpression ')';
public GreaterOrEqualElements getGreaterOrEqualAccess() {
return pGreaterOrEqual;
}
public ParserRule getGreaterOrEqualRule() {
return getGreaterOrEqualAccess().getRule();
}
//Less:
// 'less' '(' left=IntExpression ',' right=IntExpression ')';
public LessElements getLessAccess() {
return pLess;
}
public ParserRule getLessRule() {
return getLessAccess().getRule();
}
//LessOrEqual:
// 'lessOrEqual' '(' left=IntExpression ',' right=IntExpression ')';
public LessOrEqualElements getLessOrEqualAccess() {
return pLessOrEqual;
}
public ParserRule getLessOrEqualRule() {
return getLessOrEqualAccess().getRule();
}
/// *
// * Integer operators
// * / IntExpression:
// PlusMinus;
public IntExpressionElements getIntExpressionAccess() {
return pIntExpression;
}
public ParserRule getIntExpressionRule() {
return getIntExpressionAccess().getRule();
}
//PlusMinus IntExpression:
// MultDiv ({Plus.left=current} '+' right=MultDiv | {Minus.left=current} '-' right=MultDiv)?
public PlusMinusElements getPlusMinusAccess() {
return pPlusMinus;
}
public ParserRule getPlusMinusRule() {
return getPlusMinusAccess().getRule();
}
//MultDiv IntExpression:
// TermInt ({Multiply.left=current} '*' right=TermInt | {Divide.left=current} '/' right=TermInt)?
public MultDivElements getMultDivAccess() {
return pMultDiv;
}
public ParserRule getMultDivRule() {
return getMultDivAccess().getRule();
}
//TermInt IntExpression:
// Integer | IntVariableRef | '(' PlusMinus ')'
public TermIntElements getTermIntAccess() {
return pTermInt;
}
public ParserRule getTermIntRule() {
return getTermIntAccess().getRule();
}
//Integer:
// value=EInt;
public IntegerElements getIntegerAccess() {
return pInteger;
}
public ParserRule getIntegerRule() {
return getIntegerAccess().getRule();
}
//IntVariableRef:
// {IntVariableRef} name=EString;
public IntVariableRefElements getIntVariableRefAccess() {
return pIntVariableRef;
}
public ParserRule getIntVariableRefRule() {
return getIntVariableRefAccess().getRule();
}
//EInt ecore::EInt:
// '-'? INT
public EIntElements getEIntAccess() {
return pEInt;
}
public ParserRule getEIntRule() {
return getEIntAccess().getRule();
}
//IntegerVar:
// {IntegerVar}
// 'Integer' name=EString ('=' value=EInt)?;
public IntegerVarElements getIntegerVarAccess() {
return pIntegerVar;
}
public ParserRule getIntegerVarRule() {
return getIntegerVarAccess().getRule();
}
//EString:
// STRING | ID;
public EStringElements getEStringAccess() {
return pEString;
}
public ParserRule getEStringRule() {
return getEStringAccess().getRule();
}
//BooleanVar:
// {BooleanVar}
// 'Boolean' name=EString ('=' value=EBoolean)?;
public BooleanVarElements getBooleanVarAccess() {
return pBooleanVar;
}
public ParserRule getBooleanVarRule() {
return getBooleanVarAccess().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:
// '"' ('\\' . | !('\\' | '"'))* '"' |
// "'" ('\\' . | !('\\' | "'"))* "'";
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();
}
}