/*
* generated by Xtext 2.9.2
*/
package fr.inria.diverse.serializer;
import com.google.inject.Inject;
import fr.inria.diverse.melanger.melangedlang.minifsm.And;
import fr.inria.diverse.melanger.melangedlang.minifsm.Block;
import fr.inria.diverse.melanger.melangedlang.minifsm.BooleanAssignment;
import fr.inria.diverse.melanger.melangedlang.minifsm.BooleanVar;
import fr.inria.diverse.melanger.melangedlang.minifsm.BooleanVariableRef;
import fr.inria.diverse.melanger.melangedlang.minifsm.Context;
import fr.inria.diverse.melanger.melangedlang.minifsm.Divide;
import fr.inria.diverse.melanger.melangedlang.minifsm.Equal;
import fr.inria.diverse.melanger.melangedlang.minifsm.FSM;
import fr.inria.diverse.melanger.melangedlang.minifsm.FinalState;
import fr.inria.diverse.melanger.melangedlang.minifsm.Greater;
import fr.inria.diverse.melanger.melangedlang.minifsm.GreaterOrEqual;
import fr.inria.diverse.melanger.melangedlang.minifsm.IntAssignment;
import fr.inria.diverse.melanger.melangedlang.minifsm.IntVariableRef;
import fr.inria.diverse.melanger.melangedlang.minifsm.IntegerVar;
import fr.inria.diverse.melanger.melangedlang.minifsm.Less;
import fr.inria.diverse.melanger.melangedlang.minifsm.LessOrEqual;
import fr.inria.diverse.melanger.melangedlang.minifsm.MinifsmPackage;
import fr.inria.diverse.melanger.melangedlang.minifsm.Minus;
import fr.inria.diverse.melanger.melangedlang.minifsm.Multiply;
import fr.inria.diverse.melanger.melangedlang.minifsm.Not;
import fr.inria.diverse.melanger.melangedlang.minifsm.Or;
import fr.inria.diverse.melanger.melangedlang.minifsm.Plus;
import fr.inria.diverse.melanger.melangedlang.minifsm.PrintStr;
import fr.inria.diverse.melanger.melangedlang.minifsm.PrintVar;
import fr.inria.diverse.melanger.melangedlang.minifsm.State;
import fr.inria.diverse.melanger.melangedlang.minifsm.Transition;
import fr.inria.diverse.services.MiniFSMGrammarAccess;
import java.util.Set;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.xtext.Action;
import org.eclipse.xtext.Parameter;
import org.eclipse.xtext.ParserRule;
import org.eclipse.xtext.serializer.ISerializationContext;
import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
@SuppressWarnings("all")
public class MiniFSMSemanticSequencer extends AbstractDelegatingSemanticSequencer {
@Inject
private MiniFSMGrammarAccess grammarAccess;
@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
EPackage epackage = semanticObject.eClass().getEPackage();
ParserRule rule = context.getParserRule();
Action action = context.getAssignedAction();
Set<Parameter> parameters = context.getEnabledBooleanParameters();
if (epackage == MinifsmPackage.eINSTANCE)
switch (semanticObject.eClass().getClassifierID()) {
case MinifsmPackage.AND:
sequence_AndOr(context, (And) semanticObject);
return;
case MinifsmPackage.BLOCK:
sequence_Block(context, (Block) semanticObject);
return;
case MinifsmPackage.BOOLEAN:
sequence_Boolean(context, (fr.inria.diverse.melanger.melangedlang.minifsm.Boolean) semanticObject);
return;
case MinifsmPackage.BOOLEAN_ASSIGNMENT:
sequence_BooleanAssignment(context, (BooleanAssignment) semanticObject);
return;
case MinifsmPackage.BOOLEAN_VAR:
sequence_BooleanVar(context, (BooleanVar) semanticObject);
return;
case MinifsmPackage.BOOLEAN_VARIABLE_REF:
sequence_BooleanVariableRef(context, (BooleanVariableRef) semanticObject);
return;
case MinifsmPackage.CONTEXT:
sequence_Context(context, (Context) semanticObject);
return;
case MinifsmPackage.DIVIDE:
sequence_MultDiv(context, (Divide) semanticObject);
return;
case MinifsmPackage.EQUAL:
sequence_Equal(context, (Equal) semanticObject);
return;
case MinifsmPackage.FSM:
sequence_FSM(context, (FSM) semanticObject);
return;
case MinifsmPackage.FINAL_STATE:
sequence_FinalState(context, (FinalState) semanticObject);
return;
case MinifsmPackage.GREATER:
sequence_Greater(context, (Greater) semanticObject);
return;
case MinifsmPackage.GREATER_OR_EQUAL:
sequence_GreaterOrEqual(context, (GreaterOrEqual) semanticObject);
return;
case MinifsmPackage.INT_ASSIGNMENT:
sequence_IntAssignment(context, (IntAssignment) semanticObject);
return;
case MinifsmPackage.INT_VARIABLE_REF:
sequence_IntVariableRef(context, (IntVariableRef) semanticObject);
return;
case MinifsmPackage.INTEGER:
sequence_Integer(context, (fr.inria.diverse.melanger.melangedlang.minifsm.Integer) semanticObject);
return;
case MinifsmPackage.INTEGER_VAR:
sequence_IntegerVar(context, (IntegerVar) semanticObject);
return;
case MinifsmPackage.LESS:
sequence_Less(context, (Less) semanticObject);
return;
case MinifsmPackage.LESS_OR_EQUAL:
sequence_LessOrEqual(context, (LessOrEqual) semanticObject);
return;
case MinifsmPackage.MINUS:
sequence_PlusMinus(context, (Minus) semanticObject);
return;
case MinifsmPackage.MULTIPLY:
sequence_MultDiv(context, (Multiply) semanticObject);
return;
case MinifsmPackage.NOT:
if (rule == grammarAccess.getNotRule()) {
sequence_Not(context, (Not) semanticObject);
return;
}
else if (rule == grammarAccess.getBooleanExpressionRule()
|| rule == grammarAccess.getAndOrRule()
|| action == grammarAccess.getAndOrAccess().getOrLeftAction_1_0_0()
|| action == grammarAccess.getAndOrAccess().getAndLeftAction_1_1_0()
|| rule == grammarAccess.getTermBoolRule()) {
sequence_TermBool(context, (Not) semanticObject);
return;
}
else break;
case MinifsmPackage.OR:
sequence_AndOr(context, (Or) semanticObject);
return;
case MinifsmPackage.PLUS:
sequence_PlusMinus(context, (Plus) semanticObject);
return;
case MinifsmPackage.PRINT_STR:
sequence_PrintStr(context, (PrintStr) semanticObject);
return;
case MinifsmPackage.PRINT_VAR:
sequence_PrintVar(context, (PrintVar) semanticObject);
return;
case MinifsmPackage.STATE:
sequence_State_Impl(context, (State) semanticObject);
return;
case MinifsmPackage.TRANSITION:
sequence_Transition(context, (Transition) semanticObject);
return;
}
if (errorAcceptor != null)
errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
/**
* Contexts:
* BooleanExpression returns And
* AndOr returns And
*
* Constraint:
* (left=AndOr_And_1_1_0 right=AndOr)
*/
protected void sequence_AndOr(ISerializationContext context, And semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.BOOLEAN_OPERATION__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.BOOLEAN_OPERATION__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.BOOLEAN_OPERATION__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.BOOLEAN_OPERATION__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getAndOrAccess().getAndLeftAction_1_1_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getAndOrAccess().getRightAndOrParserRuleCall_1_1_2_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* BooleanExpression returns Or
* AndOr returns Or
*
* Constraint:
* (left=AndOr_Or_1_0_0 right=AndOr)
*/
protected void sequence_AndOr(ISerializationContext context, Or semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.BOOLEAN_OPERATION__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.BOOLEAN_OPERATION__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.BOOLEAN_OPERATION__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.BOOLEAN_OPERATION__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getAndOrAccess().getOrLeftAction_1_0_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getAndOrAccess().getRightAndOrParserRuleCall_1_0_2_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* Block returns Block
*
* Constraint:
* (statement+=Statement statement+=Statement*)?
*/
protected void sequence_Block(ISerializationContext context, Block semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* Statement returns BooleanAssignment
* BooleanAssignment returns BooleanAssignment
*
* Constraint:
* (variable=BooleanVariableRef value=BooleanExpression)
*/
protected void sequence_BooleanAssignment(ISerializationContext context, BooleanAssignment semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.BOOLEAN_ASSIGNMENT__VARIABLE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.BOOLEAN_ASSIGNMENT__VARIABLE));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.BOOLEAN_ASSIGNMENT__VALUE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.BOOLEAN_ASSIGNMENT__VALUE));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getBooleanAssignmentAccess().getVariableBooleanVariableRefParserRuleCall_2_0(), semanticObject.getVariable());
feeder.accept(grammarAccess.getBooleanAssignmentAccess().getValueBooleanExpressionParserRuleCall_4_0(), semanticObject.getValue());
feeder.finish();
}
/**
* Contexts:
* Variable returns BooleanVar
* BooleanVar returns BooleanVar
*
* Constraint:
* (name=EString value=EBoolean?)
*/
protected void sequence_BooleanVar(ISerializationContext context, BooleanVar semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* BooleanExpression returns BooleanVariableRef
* AndOr returns BooleanVariableRef
* AndOr.Or_1_0_0 returns BooleanVariableRef
* AndOr.And_1_1_0 returns BooleanVariableRef
* TermBool returns BooleanVariableRef
* BooleanVariableRef returns BooleanVariableRef
*
* Constraint:
* name=EString
*/
protected void sequence_BooleanVariableRef(ISerializationContext context, BooleanVariableRef semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.VARIABLE_REF__NAME) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.VARIABLE_REF__NAME));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getBooleanVariableRefAccess().getNameEStringParserRuleCall_1_0(), semanticObject.getName());
feeder.finish();
}
/**
* Contexts:
* BooleanExpression returns Boolean
* AndOr returns Boolean
* AndOr.Or_1_0_0 returns Boolean
* AndOr.And_1_1_0 returns Boolean
* TermBool returns Boolean
* Boolean returns Boolean
*
* Constraint:
* value?='value'
*/
protected void sequence_Boolean(ISerializationContext context, fr.inria.diverse.melanger.melangedlang.minifsm.Boolean semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.BOOLEAN__VALUE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.BOOLEAN__VALUE));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getBooleanAccess().getValueValueKeyword_0_0(), semanticObject.isValue());
feeder.finish();
}
/**
* Contexts:
* Context returns Context
*
* Constraint:
* (variables+=Variable variables+=Variable*)?
*/
protected void sequence_Context(ISerializationContext context, Context semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* BooleanExpression returns Equal
* AndOr returns Equal
* AndOr.Or_1_0_0 returns Equal
* AndOr.And_1_1_0 returns Equal
* TermBool returns Equal
* IntComparison returns Equal
* Equal returns Equal
*
* Constraint:
* (left=IntExpression right=IntExpression)
*/
protected void sequence_Equal(ISerializationContext context, Equal semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getEqualAccess().getLeftIntExpressionParserRuleCall_2_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getEqualAccess().getRightIntExpressionParserRuleCall_4_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* FSM returns FSM
*
* Constraint:
* ((states+=State states+=State*)? initialState=[State|EString] (transitions+=Transition transitions+=Transition*)? context=Context?)
*/
protected void sequence_FSM(ISerializationContext context, FSM semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* State returns FinalState
* FinalState returns FinalState
*
* Constraint:
* (name=EString block=Block?)
*/
protected void sequence_FinalState(ISerializationContext context, FinalState semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* BooleanExpression returns GreaterOrEqual
* AndOr returns GreaterOrEqual
* AndOr.Or_1_0_0 returns GreaterOrEqual
* AndOr.And_1_1_0 returns GreaterOrEqual
* TermBool returns GreaterOrEqual
* IntComparison returns GreaterOrEqual
* GreaterOrEqual returns GreaterOrEqual
*
* Constraint:
* (left=IntExpression right=IntExpression)
*/
protected void sequence_GreaterOrEqual(ISerializationContext context, GreaterOrEqual semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getGreaterOrEqualAccess().getLeftIntExpressionParserRuleCall_2_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getGreaterOrEqualAccess().getRightIntExpressionParserRuleCall_4_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* BooleanExpression returns Greater
* AndOr returns Greater
* AndOr.Or_1_0_0 returns Greater
* AndOr.And_1_1_0 returns Greater
* TermBool returns Greater
* IntComparison returns Greater
* Greater returns Greater
*
* Constraint:
* (left=IntExpression right=IntExpression)
*/
protected void sequence_Greater(ISerializationContext context, Greater semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getGreaterAccess().getLeftIntExpressionParserRuleCall_2_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getGreaterAccess().getRightIntExpressionParserRuleCall_4_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* Statement returns IntAssignment
* IntAssignment returns IntAssignment
*
* Constraint:
* (variable=IntVariableRef value=IntExpression)
*/
protected void sequence_IntAssignment(ISerializationContext context, IntAssignment semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_ASSIGNMENT__VARIABLE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_ASSIGNMENT__VARIABLE));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_ASSIGNMENT__VALUE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_ASSIGNMENT__VALUE));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getIntAssignmentAccess().getVariableIntVariableRefParserRuleCall_2_0(), semanticObject.getVariable());
feeder.accept(grammarAccess.getIntAssignmentAccess().getValueIntExpressionParserRuleCall_4_0(), semanticObject.getValue());
feeder.finish();
}
/**
* Contexts:
* IntExpression returns IntVariableRef
* PlusMinus returns IntVariableRef
* PlusMinus.Plus_1_0_0 returns IntVariableRef
* PlusMinus.Minus_1_1_0 returns IntVariableRef
* MultDiv returns IntVariableRef
* MultDiv.Multiply_1_0_0 returns IntVariableRef
* MultDiv.Divide_1_1_0 returns IntVariableRef
* TermInt returns IntVariableRef
* IntVariableRef returns IntVariableRef
*
* Constraint:
* name=EString
*/
protected void sequence_IntVariableRef(ISerializationContext context, IntVariableRef semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.VARIABLE_REF__NAME) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.VARIABLE_REF__NAME));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getIntVariableRefAccess().getNameEStringParserRuleCall_1_0(), semanticObject.getName());
feeder.finish();
}
/**
* Contexts:
* Variable returns IntegerVar
* IntegerVar returns IntegerVar
*
* Constraint:
* (name=EString value=EInt?)
*/
protected void sequence_IntegerVar(ISerializationContext context, IntegerVar semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* IntExpression returns Integer
* PlusMinus returns Integer
* PlusMinus.Plus_1_0_0 returns Integer
* PlusMinus.Minus_1_1_0 returns Integer
* MultDiv returns Integer
* MultDiv.Multiply_1_0_0 returns Integer
* MultDiv.Divide_1_1_0 returns Integer
* TermInt returns Integer
* Integer returns Integer
*
* Constraint:
* value=EInt
*/
protected void sequence_Integer(ISerializationContext context, fr.inria.diverse.melanger.melangedlang.minifsm.Integer semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INTEGER__VALUE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INTEGER__VALUE));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getIntegerAccess().getValueEIntParserRuleCall_0(), semanticObject.getValue());
feeder.finish();
}
/**
* Contexts:
* BooleanExpression returns LessOrEqual
* AndOr returns LessOrEqual
* AndOr.Or_1_0_0 returns LessOrEqual
* AndOr.And_1_1_0 returns LessOrEqual
* TermBool returns LessOrEqual
* IntComparison returns LessOrEqual
* LessOrEqual returns LessOrEqual
*
* Constraint:
* (left=IntExpression right=IntExpression)
*/
protected void sequence_LessOrEqual(ISerializationContext context, LessOrEqual semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getLessOrEqualAccess().getLeftIntExpressionParserRuleCall_2_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getLessOrEqualAccess().getRightIntExpressionParserRuleCall_4_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* BooleanExpression returns Less
* AndOr returns Less
* AndOr.Or_1_0_0 returns Less
* AndOr.And_1_1_0 returns Less
* TermBool returns Less
* IntComparison returns Less
* Less returns Less
*
* Constraint:
* (left=IntExpression right=IntExpression)
*/
protected void sequence_Less(ISerializationContext context, Less semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_COMPARISON__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getLessAccess().getLeftIntExpressionParserRuleCall_2_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getLessAccess().getRightIntExpressionParserRuleCall_4_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* IntExpression returns Divide
* PlusMinus returns Divide
* PlusMinus.Plus_1_0_0 returns Divide
* PlusMinus.Minus_1_1_0 returns Divide
* MultDiv returns Divide
* MultDiv.Multiply_1_0_0 returns Divide
* MultDiv.Divide_1_1_0 returns Divide
* TermInt returns Divide
*
* Constraint:
* (left=MultDiv_Divide_1_1_0 right=TermInt)
*/
protected void sequence_MultDiv(ISerializationContext context, Divide semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_OPERATION__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_OPERATION__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_OPERATION__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_OPERATION__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getMultDivAccess().getDivideLeftAction_1_1_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getMultDivAccess().getRightTermIntParserRuleCall_1_1_2_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* IntExpression returns Multiply
* PlusMinus returns Multiply
* PlusMinus.Plus_1_0_0 returns Multiply
* PlusMinus.Minus_1_1_0 returns Multiply
* MultDiv returns Multiply
* MultDiv.Multiply_1_0_0 returns Multiply
* MultDiv.Divide_1_1_0 returns Multiply
* TermInt returns Multiply
*
* Constraint:
* (left=MultDiv_Multiply_1_0_0 right=TermInt)
*/
protected void sequence_MultDiv(ISerializationContext context, Multiply semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_OPERATION__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_OPERATION__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_OPERATION__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_OPERATION__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getMultDivAccess().getMultiplyLeftAction_1_0_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getMultDivAccess().getRightTermIntParserRuleCall_1_0_2_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* Not returns Not
*
* Constraint:
* expression=AndOr
*/
protected void sequence_Not(ISerializationContext context, Not semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.NOT__EXPRESSION) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.NOT__EXPRESSION));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getNotAccess().getExpressionAndOrParserRuleCall_1_0(), semanticObject.getExpression());
feeder.finish();
}
/**
* Contexts:
* IntExpression returns Minus
* PlusMinus returns Minus
* PlusMinus.Plus_1_0_0 returns Minus
* PlusMinus.Minus_1_1_0 returns Minus
* MultDiv returns Minus
* MultDiv.Multiply_1_0_0 returns Minus
* MultDiv.Divide_1_1_0 returns Minus
* TermInt returns Minus
*
* Constraint:
* (left=PlusMinus_Minus_1_1_0 right=MultDiv)
*/
protected void sequence_PlusMinus(ISerializationContext context, Minus semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_OPERATION__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_OPERATION__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_OPERATION__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_OPERATION__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getPlusMinusAccess().getMinusLeftAction_1_1_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getPlusMinusAccess().getRightMultDivParserRuleCall_1_1_2_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* IntExpression returns Plus
* PlusMinus returns Plus
* PlusMinus.Plus_1_0_0 returns Plus
* PlusMinus.Minus_1_1_0 returns Plus
* MultDiv returns Plus
* MultDiv.Multiply_1_0_0 returns Plus
* MultDiv.Divide_1_1_0 returns Plus
* TermInt returns Plus
*
* Constraint:
* (left=PlusMinus_Plus_1_0_0 right=MultDiv)
*/
protected void sequence_PlusMinus(ISerializationContext context, Plus semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_OPERATION__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_OPERATION__LEFT));
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.INT_OPERATION__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.INT_OPERATION__RIGHT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getPlusMinusAccess().getPlusLeftAction_1_0_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getPlusMinusAccess().getRightMultDivParserRuleCall_1_0_2_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Contexts:
* Statement returns PrintStr
* PrintStr returns PrintStr
*
* Constraint:
* value=EString
*/
protected void sequence_PrintStr(ISerializationContext context, PrintStr semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.PRINT_STR__VALUE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.PRINT_STR__VALUE));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getPrintStrAccess().getValueEStringParserRuleCall_2_0(), semanticObject.getValue());
feeder.finish();
}
/**
* Contexts:
* Statement returns PrintVar
* PrintVar returns PrintVar
*
* Constraint:
* value=EString
*/
protected void sequence_PrintVar(ISerializationContext context, PrintVar semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.PRINT_VAR__VALUE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.PRINT_VAR__VALUE));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getPrintVarAccess().getValueEStringParserRuleCall_2_0(), semanticObject.getValue());
feeder.finish();
}
/**
* Contexts:
* State returns State
* State_Impl returns State
*
* Constraint:
* (name=EString block=Block?)
*/
protected void sequence_State_Impl(ISerializationContext context, State semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* BooleanExpression returns Not
* AndOr returns Not
* AndOr.Or_1_0_0 returns Not
* AndOr.And_1_1_0 returns Not
* TermBool returns Not
*
* Constraint:
* expression=TermBool
*/
protected void sequence_TermBool(ISerializationContext context, Not semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MinifsmPackage.Literals.NOT__EXPRESSION) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MinifsmPackage.Literals.NOT__EXPRESSION));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getTermBoolAccess().getExpressionTermBoolParserRuleCall_3_2_0(), semanticObject.getExpression());
feeder.finish();
}
/**
* Contexts:
* Transition returns Transition
*
* Constraint:
* (input=[State|EString] output=[State|EString] expression=BooleanExpression?)
*/
protected void sequence_Transition(ISerializationContext context, Transition semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
}