package edu.ksu.cis.projects.mdcf.devicemodel.serializer;
import com.google.inject.Inject;
import com.google.inject.Provider;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.AccessExp;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.AnyNatConstraint;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.App;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Assignment;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.AttrDecl;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.BaseFeatureType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.BaseType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.BasicLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.BinaryExp;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Const;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.ConstraintExp;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Data;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Device;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.DeviceModelingLanguagePackage;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.EitherFeatureType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Feature;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.GeneralInvariant;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.LiteralExp;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Model;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.MultiplicityInvariant;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.NameExp;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.NoneLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.NoneType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.NumNatConstraint;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.OptionFeatureType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.OptionType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Param;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.PrimaryExp;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Report;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.ReportMemberDecl;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SeqFeatureType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SeqLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SeqType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SetFeatureType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SetLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SetType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SimpleBasicLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SimpleNoneLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SimpleSeqLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SimpleSetLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SimpleSomeLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SimpleTupleLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SomeFeatureType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SomeLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SomeType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SubMemberDecl;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.SubMemberMatch;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.TupleLiteral;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.TupleType;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.TypeDecl;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.UnaryExp;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Val;
import edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Var;
import edu.ksu.cis.projects.mdcf.devicemodel.services.DeviceModelingLanguageGrammarAccess;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor;
import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider;
import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
import org.eclipse.xtext.serializer.sequencer.GenericSequencer;
import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider;
import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
@SuppressWarnings("all")
public class DeviceModelingLanguageSemanticSequencer extends AbstractDelegatingSemanticSequencer {
@Inject
private DeviceModelingLanguageGrammarAccess grammarAccess;
public void createSequence(EObject context, EObject semanticObject) {
if(semanticObject.eClass().getEPackage() == DeviceModelingLanguagePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
case DeviceModelingLanguagePackage.ACCESS_EXP:
if(context == grammarAccess.getExpRule() ||
context == grammarAccess.getExpAccess().getAccessExpBaseAction_2_2_1()) {
sequence_Exp(context, (AccessExp) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.ANY_NAT_CONSTRAINT:
if(context == grammarAccess.getConstraintNatRule()) {
sequence_ConstraintNat(context, (AnyNatConstraint) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.APP:
if(context == grammarAccess.getDeclRule() ||
context == grammarAccess.getFeatureDeclRule()) {
sequence_FeatureDecl(context, (App) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.ASSIGNMENT:
if(context == grammarAccess.getAssignmentRule()) {
sequence_Assignment(context, (Assignment) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.ATTR_DECL:
if(context == grammarAccess.getAccessorRule() ||
context == grammarAccess.getAttrDeclRule() ||
context == grammarAccess.getMemberDeclRule()) {
sequence_AttrDecl(context, (AttrDecl) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.BASE_FEATURE_TYPE:
if(context == grammarAccess.getBaseFeatureTypeRule() ||
context == grammarAccess.getFeatureTypeRule()) {
sequence_BaseFeatureType(context, (BaseFeatureType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.BASE_TYPE:
if(context == grammarAccess.getBaseTypeRule() ||
context == grammarAccess.getTypeRule()) {
sequence_BaseType(context, (BaseType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.BASIC_LITERAL:
if(context == grammarAccess.getBasicLiteralRule() ||
context == grammarAccess.getLiteralRule()) {
sequence_BasicLiteral(context, (BasicLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.BINARY_EXP:
if(context == grammarAccess.getExpRule()) {
sequence_Exp(context, (BinaryExp) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.CONST:
if(context == grammarAccess.getMModifierRule()) {
sequence_MModifier(context, (Const) semanticObject);
return;
}
else if(context == grammarAccess.getModifierRule()) {
sequence_Modifier(context, (Const) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.CONSTRAINT_EXP:
if(context == grammarAccess.getConstraintExpRule()) {
sequence_ConstraintExp(context, (ConstraintExp) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.DATA:
if(context == grammarAccess.getDeclRule() ||
context == grammarAccess.getFeatureDeclRule()) {
sequence_FeatureDecl(context, (Data) semanticObject);
return;
}
else if(context == grammarAccess.getMModifierRule()) {
sequence_MModifier(context, (Data) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.DEVICE:
if(context == grammarAccess.getDeviceRule()) {
sequence_Device(context, (Device) semanticObject);
return;
}
else if(context == grammarAccess.getDeclRule() ||
context == grammarAccess.getFeatureDeclRule()) {
sequence_FeatureDecl(context, (Device) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.EITHER_FEATURE_TYPE:
if(context == grammarAccess.getFeatureTypeRule()) {
sequence_FeatureType(context, (EitherFeatureType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.FEATURE:
if(context == grammarAccess.getDeclRule() ||
context == grammarAccess.getFeatureDeclRule()) {
sequence_FeatureDecl(context, (Feature) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.GENERAL_INVARIANT:
if(context == grammarAccess.getGeneralInvariantRule() ||
context == grammarAccess.getInvariantDeclRule() ||
context == grammarAccess.getMemberDeclRule()) {
sequence_GeneralInvariant(context, (GeneralInvariant) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.LITERAL_EXP:
if(context == grammarAccess.getPrimaryRule()) {
sequence_Primary(context, (LiteralExp) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.MODEL:
if(context == grammarAccess.getModelRule()) {
sequence_Model(context, (Model) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.MULTIPLICITY_INVARIANT:
if(context == grammarAccess.getInvariantDeclRule() ||
context == grammarAccess.getMemberDeclRule() ||
context == grammarAccess.getMultiplicityInvariantRule()) {
sequence_MultiplicityInvariant(context, (MultiplicityInvariant) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.NAME_EXP:
if(context == grammarAccess.getPrimaryRule()) {
sequence_Primary(context, (NameExp) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.NONE_LITERAL:
if(context == grammarAccess.getLiteralRule() ||
context == grammarAccess.getOptionLiteralRule()) {
sequence_OptionLiteral(context, (NoneLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.NONE_TYPE:
if(context == grammarAccess.getBaseTypeRule() ||
context == grammarAccess.getTypeRule()) {
sequence_BaseType(context, (NoneType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.NUM_NAT_CONSTRAINT:
if(context == grammarAccess.getConstraintNatRule()) {
sequence_ConstraintNat(context, (NumNatConstraint) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.OPTION_FEATURE_TYPE:
if(context == grammarAccess.getFeatureTypeRule()) {
sequence_FeatureType(context, (OptionFeatureType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.OPTION_TYPE:
if(context == grammarAccess.getBaseTypeRule() ||
context == grammarAccess.getTypeRule()) {
sequence_BaseType(context, (OptionType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.OVERRIDE:
if(context == grammarAccess.getMModifierRule() ||
context == grammarAccess.getModifierRule()) {
sequence_MModifier_Modifier(context, (edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Override) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.PARAM:
if(context == grammarAccess.getParamRule()) {
sequence_Param(context, (Param) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.PRIMARY_EXP:
if(context == grammarAccess.getExpRule() ||
context == grammarAccess.getExpAccess().getAccessExpBaseAction_2_2_1()) {
sequence_Exp(context, (PrimaryExp) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.REPORT:
if(context == grammarAccess.getReportRule()) {
sequence_Report(context, (Report) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.REPORT_MEMBER_DECL:
if(context == grammarAccess.getReportMemberDeclRule()) {
sequence_ReportMemberDecl(context, (ReportMemberDecl) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SEQ_FEATURE_TYPE:
if(context == grammarAccess.getFeatureTypeRule()) {
sequence_FeatureType(context, (SeqFeatureType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SEQ_LITERAL:
if(context == grammarAccess.getLiteralRule() ||
context == grammarAccess.getSeqLiteralRule()) {
sequence_SeqLiteral(context, (SeqLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SEQ_TYPE:
if(context == grammarAccess.getTypeRule()) {
sequence_Type(context, (SeqType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SET_FEATURE_TYPE:
if(context == grammarAccess.getFeatureTypeRule()) {
sequence_FeatureType(context, (SetFeatureType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SET_LITERAL:
if(context == grammarAccess.getLiteralRule() ||
context == grammarAccess.getSetLiteralRule()) {
sequence_SetLiteral(context, (SetLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SET_TYPE:
if(context == grammarAccess.getTypeRule()) {
sequence_Type(context, (SetType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SIMPLE_BASIC_LITERAL:
if(context == grammarAccess.getSimpleBasicLiteralRule() ||
context == grammarAccess.getSimpleLiteralRule()) {
sequence_SimpleBasicLiteral(context, (SimpleBasicLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SIMPLE_NONE_LITERAL:
if(context == grammarAccess.getSimpleLiteralRule() ||
context == grammarAccess.getSimpleOptionLiteralRule()) {
sequence_SimpleOptionLiteral(context, (SimpleNoneLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SIMPLE_SEQ_LITERAL:
if(context == grammarAccess.getSimpleLiteralRule() ||
context == grammarAccess.getSimpleSeqLiteralRule()) {
sequence_SimpleSeqLiteral(context, (SimpleSeqLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SIMPLE_SET_LITERAL:
if(context == grammarAccess.getSimpleLiteralRule() ||
context == grammarAccess.getSimpleSetLiteralRule()) {
sequence_SimpleSetLiteral(context, (SimpleSetLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SIMPLE_SOME_LITERAL:
if(context == grammarAccess.getSimpleLiteralRule() ||
context == grammarAccess.getSimpleOptionLiteralRule()) {
sequence_SimpleOptionLiteral(context, (SimpleSomeLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SIMPLE_TUPLE_LITERAL:
if(context == grammarAccess.getSimpleLiteralRule() ||
context == grammarAccess.getSimpleTupleLiteralRule()) {
sequence_SimpleTupleLiteral(context, (SimpleTupleLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SOME_FEATURE_TYPE:
if(context == grammarAccess.getFeatureTypeRule()) {
sequence_FeatureType(context, (SomeFeatureType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SOME_LITERAL:
if(context == grammarAccess.getLiteralRule() ||
context == grammarAccess.getOptionLiteralRule()) {
sequence_OptionLiteral(context, (SomeLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SOME_TYPE:
if(context == grammarAccess.getBaseTypeRule() ||
context == grammarAccess.getTypeRule()) {
sequence_BaseType(context, (SomeType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SUB_MEMBER_DECL:
if(context == grammarAccess.getAccessorRule() ||
context == grammarAccess.getMemberDeclRule() ||
context == grammarAccess.getSubMemberDeclRule()) {
sequence_SubMemberDecl(context, (SubMemberDecl) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.SUB_MEMBER_MATCH:
if(context == grammarAccess.getSubMemberMatchRule()) {
sequence_SubMemberMatch(context, (SubMemberMatch) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.TUPLE_LITERAL:
if(context == grammarAccess.getLiteralRule() ||
context == grammarAccess.getTupleLiteralRule()) {
sequence_TupleLiteral(context, (TupleLiteral) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.TUPLE_TYPE:
if(context == grammarAccess.getBaseTypeRule() ||
context == grammarAccess.getTypeRule()) {
sequence_BaseType(context, (TupleType) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.TYPE_DECL:
if(context == grammarAccess.getDeclRule() ||
context == grammarAccess.getTypeDeclRule()) {
sequence_TypeDecl(context, (TypeDecl) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.UNARY_EXP:
if(context == grammarAccess.getExpRule()) {
sequence_Exp(context, (UnaryExp) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.VAL:
if(context == grammarAccess.getMModifierRule() ||
context == grammarAccess.getModifierRule()) {
sequence_MModifier_Modifier(context, (Val) semanticObject);
return;
}
else break;
case DeviceModelingLanguagePackage.VAR:
if(context == grammarAccess.getMModifierRule() ||
context == grammarAccess.getModifierRule()) {
sequence_MModifier_Modifier(context, (Var) semanticObject);
return;
}
else break;
}
if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
/**
* Constraint:
* (name=ID exp=Exp)
*/
protected void sequence_Assignment(EObject context, Assignment semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.ASSIGNMENT__NAME) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.ASSIGNMENT__NAME));
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.ASSIGNMENT__EXP) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.ASSIGNMENT__EXP));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getAssignmentAccess().getNameIDTerminalRuleCall_0_0(), semanticObject.getName());
feeder.accept(grammarAccess.getAssignmentAccess().getExpExpParserRuleCall_2_0(), semanticObject.getExp());
feeder.finish();
}
/**
* Constraint:
* (modifier=Modifier attributeName=ID ((type=Type literal=Literal?) | literal=Literal))
*/
protected void sequence_AttrDecl(EObject context, AttrDecl semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (components+=[FeatureDecl|ID] components+=[FeatureDecl|ID]* members+=MemberDecl*)
*/
protected void sequence_BaseFeatureType(EObject context, BaseFeatureType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* type=[TypeDecl|ID]
*/
protected void sequence_BaseType(EObject context, BaseType semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.BASE_TYPE__TYPE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.BASE_TYPE__TYPE));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getBaseTypeAccess().getTypeTypeDeclIDTerminalRuleCall_0_0_1(), semanticObject.getType());
feeder.finish();
}
/**
* Constraint:
* base=Type
*/
protected void sequence_BaseType(EObject context, NoneType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* base=Type
*/
protected void sequence_BaseType(EObject context, OptionType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* base=Type
*/
protected void sequence_BaseType(EObject context, SomeType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (elemTypes+=Type elemTypes+=Type+)
*/
protected void sequence_BaseType(EObject context, TupleType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (typeCons=[TypeDecl|ID] lit=LIT)
*/
protected void sequence_BasicLiteral(EObject context, BasicLiteral semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.BASIC_LITERAL__TYPE_CONS) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.BASIC_LITERAL__TYPE_CONS));
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.BASIC_LITERAL__LIT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.BASIC_LITERAL__LIT));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getBasicLiteralAccess().getTypeConsTypeDeclIDTerminalRuleCall_0_0_1(), semanticObject.getTypeCons());
feeder.accept(grammarAccess.getBasicLiteralAccess().getLitLITTerminalRuleCall_1_0(), semanticObject.getLit());
feeder.finish();
}
/**
* Constraint:
* cond=Exp
*/
protected void sequence_ConstraintExp(EObject context, ConstraintExp semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.CONSTRAINT_EXP__COND) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.CONSTRAINT_EXP__COND));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getConstraintExpAccess().getCondExpParserRuleCall_1_0(), semanticObject.getCond());
feeder.finish();
}
/**
* Constraint:
* {AnyNatConstraint}
*/
protected void sequence_ConstraintNat(EObject context, AnyNatConstraint semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* num=NAT
*/
protected void sequence_ConstraintNat(EObject context, NumNatConstraint semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.NUM_NAT_CONSTRAINT__NUM) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.NUM_NAT_CONSTRAINT__NUM));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getConstraintNatAccess().getNumNATTerminalRuleCall_0_1_0(), semanticObject.getNum());
feeder.finish();
}
/**
* Constraint:
* (name=ID components+=[FeatureDecl|ID] components+=[FeatureDecl|ID]* constraint=ConstraintExp?)
*/
protected void sequence_Device(EObject context, Device semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (base=Exp_AccessExp_2_2_1 accessor=[Accessor|ID])
*/
protected void sequence_Exp(EObject context, AccessExp semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.ACCESS_EXP__BASE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.ACCESS_EXP__BASE));
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.ACCESS_EXP__ACCESSOR) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.ACCESS_EXP__ACCESSOR));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getExpAccess().getAccessExpBaseAction_2_2_1(), semanticObject.getBase());
feeder.accept(grammarAccess.getExpAccess().getAccessorAccessorIDTerminalRuleCall_2_2_2_0_1(), semanticObject.getAccessor());
feeder.finish();
}
/**
* Constraint:
* (left=Exp op=BinaryOp right=Exp)
*/
protected void sequence_Exp(EObject context, BinaryExp semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.BINARY_EXP__LEFT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.BINARY_EXP__LEFT));
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.BINARY_EXP__OP) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.BINARY_EXP__OP));
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.BINARY_EXP__RIGHT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.BINARY_EXP__RIGHT));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getExpAccess().getLeftExpParserRuleCall_0_2_0(), semanticObject.getLeft());
feeder.accept(grammarAccess.getExpAccess().getOpBinaryOpParserRuleCall_0_3_0(), semanticObject.getOp());
feeder.accept(grammarAccess.getExpAccess().getRightExpParserRuleCall_0_4_0(), semanticObject.getRight());
feeder.finish();
}
/**
* Constraint:
* primary=Primary
*/
protected void sequence_Exp(EObject context, PrimaryExp semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.PRIMARY_EXP__PRIMARY) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.PRIMARY_EXP__PRIMARY));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getExpAccess().getPrimaryPrimaryParserRuleCall_2_1_0(), semanticObject.getPrimary());
feeder.finish();
}
/**
* Constraint:
* (op=UnaryOp arg=Exp)
*/
protected void sequence_Exp(EObject context, UnaryExp semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.UNARY_EXP__OP) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.UNARY_EXP__OP));
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.UNARY_EXP__ARG) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.UNARY_EXP__ARG));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getExpAccess().getOpUnaryOpParserRuleCall_1_2_0(), semanticObject.getOp());
feeder.accept(grammarAccess.getExpAccess().getArgExpParserRuleCall_1_3_0(), semanticObject.getArg());
feeder.finish();
}
/**
* Constraint:
* (name=ID (supers+=[FeatureDecl|ID] supers+=[FeatureDecl|ID]*)? members+=MemberDecl* (devices+=Device* assigns+=Assignment* exp=Exp)?)
*/
protected void sequence_FeatureDecl(EObject context, App semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (name=ID (supers+=[FeatureDecl|ID] supers+=[FeatureDecl|ID]*)? members+=MemberDecl* (devices+=Device* assigns+=Assignment* exp=Exp)?)
*/
protected void sequence_FeatureDecl(EObject context, Data semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (name=ID (supers+=[FeatureDecl|ID] supers+=[FeatureDecl|ID]*)? members+=MemberDecl* (devices+=Device* assigns+=Assignment* exp=Exp)?)
*/
protected void sequence_FeatureDecl(EObject context, Device semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (
* (schema?='schema' | class?='class' | product?='product')?
* name=ID
* (supers+=[FeatureDecl|ID] supers+=[FeatureDecl|ID]*)?
* members+=MemberDecl*
* (devices+=Device* assigns+=Assignment* exp=Exp)?
* )
*/
protected void sequence_FeatureDecl(EObject context, Feature semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (bases+=BaseFeatureType bases+=BaseFeatureType+ (choice=NAT members+=MemberDecl*)?)
*/
protected void sequence_FeatureType(EObject context, EitherFeatureType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (base=BaseFeatureType none?='None'?)
*/
protected void sequence_FeatureType(EObject context, OptionFeatureType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (base=BaseFeatureType (elements+=BaseFeatureType elements+=BaseFeatureType*)?)
*/
protected void sequence_FeatureType(EObject context, SeqFeatureType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (base=BaseFeatureType (elements+=BaseFeatureType elements+=BaseFeatureType*)?)
*/
protected void sequence_FeatureType(EObject context, SetFeatureType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (base=BaseFeatureType members+=MemberDecl*)
*/
protected void sequence_FeatureType(EObject context, SomeFeatureType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (invName=ID? exp=Exp)
*/
protected void sequence_GeneralInvariant(EObject context, GeneralInvariant semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* ((schema?='Schema' | class?='Class' | product?='Product' | instance?='Instance')?)
*/
protected void sequence_MModifier(EObject context, Const semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* {Data}
*/
protected void sequence_MModifier(EObject context, Data semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* {Override}
*/
protected void sequence_MModifier_Modifier(EObject context, edu.ksu.cis.projects.mdcf.devicemodel.deviceModelingLanguage.Override semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* {Val}
*/
protected void sequence_MModifier_Modifier(EObject context, Val semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* {Var}
*/
protected void sequence_MModifier_Modifier(EObject context, Var semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* ((schema?='Schema' | class?='Class' | product?='Product')? decls+=Decl*)
*/
protected void sequence_Model(EObject context, Model semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* ((schema?='schema' | class?='class' | product?='product' | instance?='instance')?)
*/
protected void sequence_Modifier(EObject context, Const semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (invName=ID? lo=ConstraintNat hi=ConstraintNat match=SubMemberMatch type=[FeatureDecl|ID]?)
*/
protected void sequence_MultiplicityInvariant(EObject context, MultiplicityInvariant semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* type=Type
*/
protected void sequence_OptionLiteral(EObject context, NoneLiteral semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.NONE_LITERAL__TYPE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.NONE_LITERAL__TYPE));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getOptionLiteralAccess().getTypeTypeParserRuleCall_0_3_0(), semanticObject.getType());
feeder.finish();
}
/**
* Constraint:
* lit=Literal
*/
protected void sequence_OptionLiteral(EObject context, SomeLiteral semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.SOME_LITERAL__LIT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.SOME_LITERAL__LIT));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getOptionLiteralAccess().getLitLiteralParserRuleCall_1_2_0(), semanticObject.getLit());
feeder.finish();
}
/**
* Constraint:
* (name=ID type=BaseFeatureType)
*/
protected void sequence_Param(EObject context, Param semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.PARAM__NAME) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.PARAM__NAME));
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.PARAM__TYPE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.PARAM__TYPE));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getParamAccess().getNameIDTerminalRuleCall_0_0(), semanticObject.getName());
feeder.accept(grammarAccess.getParamAccess().getTypeBaseFeatureTypeParserRuleCall_2_0(), semanticObject.getType());
feeder.finish();
}
/**
* Constraint:
* lit=BasicLiteral
*/
protected void sequence_Primary(EObject context, LiteralExp semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.LITERAL_EXP__LIT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.LITERAL_EXP__LIT));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getPrimaryAccess().getLitBasicLiteralParserRuleCall_1_1_0(), semanticObject.getLit());
feeder.finish();
}
/**
* Constraint:
* id=ID
*/
protected void sequence_Primary(EObject context, NameExp semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.NAME_EXP__ID) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.NAME_EXP__ID));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getPrimaryAccess().getIdIDTerminalRuleCall_0_1_0(), semanticObject.getId());
feeder.finish();
}
/**
* Constraint:
* (name=ID bindingName+=[Accessor|ID]+ bindingName+=[Accessor|ID])
*/
protected void sequence_ReportMemberDecl(EObject context, ReportMemberDecl semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (name=ID args+=Exp args+=Exp+)
*/
protected void sequence_Report(EObject context, Report semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (elementType=Type (elems+=SimpleLiteral elems+=SimpleLiteral*)?)
*/
protected void sequence_SeqLiteral(EObject context, SeqLiteral semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (elementType=Type (elems+=SimpleLiteral elems+=SimpleLiteral*)?)
*/
protected void sequence_SetLiteral(EObject context, SetLiteral semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* lit=LIT
*/
protected void sequence_SimpleBasicLiteral(EObject context, SimpleBasicLiteral semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.SIMPLE_BASIC_LITERAL__LIT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.SIMPLE_BASIC_LITERAL__LIT));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getSimpleBasicLiteralAccess().getLitLITTerminalRuleCall_0(), semanticObject.getLit());
feeder.finish();
}
/**
* Constraint:
* {SimpleNoneLiteral}
*/
protected void sequence_SimpleOptionLiteral(EObject context, SimpleNoneLiteral semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* lit=SimpleLiteral
*/
protected void sequence_SimpleOptionLiteral(EObject context, SimpleSomeLiteral semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.SIMPLE_SOME_LITERAL__LIT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.SIMPLE_SOME_LITERAL__LIT));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getSimpleOptionLiteralAccess().getLitSimpleLiteralParserRuleCall_1_2_0(), semanticObject.getLit());
feeder.finish();
}
/**
* Constraint:
* ((elems+=SimpleLiteral elems+=SimpleLiteral*)?)
*/
protected void sequence_SimpleSeqLiteral(EObject context, SimpleSeqLiteral semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* ((elems+=SimpleLiteral elems+=SimpleLiteral*)?)
*/
protected void sequence_SimpleSetLiteral(EObject context, SimpleSetLiteral semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* ((elems+=SimpleLiteral elems+=SimpleLiteral*)?)
*/
protected void sequence_SimpleTupleLiteral(EObject context, SimpleTupleLiteral semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (modifier=MModifier? name=ID type=FeatureType)
*/
protected void sequence_SubMemberDecl(EObject context, SubMemberDecl semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (qNames+=ID* (name=ID | any='*'))
*/
protected void sequence_SubMemberMatch(EObject context, SubMemberMatch semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* ((elems+=Literal elems+=Literal*)?)
*/
protected void sequence_TupleLiteral(EObject context, TupleLiteral semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (name=ID (supers+=[TypeDecl|ID] supers+=[TypeDecl|ID]*)?)
*/
protected void sequence_TypeDecl(EObject context, TypeDecl semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* base=Type
*/
protected void sequence_Type(EObject context, SeqType semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.SEQ_TYPE__BASE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.SEQ_TYPE__BASE));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getTypeAccess().getBaseTypeParserRuleCall_0_3_0(), semanticObject.getBase());
feeder.finish();
}
/**
* Constraint:
* base=Type
*/
protected void sequence_Type(EObject context, SetType semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, DeviceModelingLanguagePackage.Literals.SET_TYPE__BASE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DeviceModelingLanguagePackage.Literals.SET_TYPE__BASE));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getTypeAccess().getBaseTypeParserRuleCall_1_3_0(), semanticObject.getBase());
feeder.finish();
}
}