/*
* generated by Xtext
*/
package fr.inria.diverse.melange.serializer;
import com.google.inject.Inject;
import fr.inria.diverse.melange.metamodel.melange.ClassBinding;
import fr.inria.diverse.melange.metamodel.melange.ExternalLanguage;
import fr.inria.diverse.melange.metamodel.melange.Import;
import fr.inria.diverse.melange.metamodel.melange.Inheritance;
import fr.inria.diverse.melange.metamodel.melange.Language;
import fr.inria.diverse.melange.metamodel.melange.Mapping;
import fr.inria.diverse.melange.metamodel.melange.MelangePackage;
import fr.inria.diverse.melange.metamodel.melange.Merge;
import fr.inria.diverse.melange.metamodel.melange.ModelType;
import fr.inria.diverse.melange.metamodel.melange.ModelTypingSpace;
import fr.inria.diverse.melange.metamodel.melange.PackageBinding;
import fr.inria.diverse.melange.metamodel.melange.PropertyBinding;
import fr.inria.diverse.melange.metamodel.melange.Slice;
import fr.inria.diverse.melange.metamodel.melange.Weave;
import fr.inria.diverse.melange.metamodel.melange.XbaseTransformation;
import fr.inria.diverse.melange.services.MelangeGrammarAccess;
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.common.types.JvmFormalParameter;
import org.eclipse.xtext.common.types.JvmGenericArrayTypeReference;
import org.eclipse.xtext.common.types.JvmInnerTypeReference;
import org.eclipse.xtext.common.types.JvmLowerBound;
import org.eclipse.xtext.common.types.JvmParameterizedTypeReference;
import org.eclipse.xtext.common.types.JvmTypeParameter;
import org.eclipse.xtext.common.types.JvmUpperBound;
import org.eclipse.xtext.common.types.JvmWildcardTypeReference;
import org.eclipse.xtext.common.types.TypesPackage;
import org.eclipse.xtext.serializer.ISerializationContext;
import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
import org.eclipse.xtext.xbase.XAssignment;
import org.eclipse.xtext.xbase.XBasicForLoopExpression;
import org.eclipse.xtext.xbase.XBinaryOperation;
import org.eclipse.xtext.xbase.XBlockExpression;
import org.eclipse.xtext.xbase.XBooleanLiteral;
import org.eclipse.xtext.xbase.XCasePart;
import org.eclipse.xtext.xbase.XCastedExpression;
import org.eclipse.xtext.xbase.XCatchClause;
import org.eclipse.xtext.xbase.XClosure;
import org.eclipse.xtext.xbase.XConstructorCall;
import org.eclipse.xtext.xbase.XDoWhileExpression;
import org.eclipse.xtext.xbase.XFeatureCall;
import org.eclipse.xtext.xbase.XForLoopExpression;
import org.eclipse.xtext.xbase.XIfExpression;
import org.eclipse.xtext.xbase.XInstanceOfExpression;
import org.eclipse.xtext.xbase.XListLiteral;
import org.eclipse.xtext.xbase.XMemberFeatureCall;
import org.eclipse.xtext.xbase.XNullLiteral;
import org.eclipse.xtext.xbase.XNumberLiteral;
import org.eclipse.xtext.xbase.XPostfixOperation;
import org.eclipse.xtext.xbase.XReturnExpression;
import org.eclipse.xtext.xbase.XSetLiteral;
import org.eclipse.xtext.xbase.XStringLiteral;
import org.eclipse.xtext.xbase.XSwitchExpression;
import org.eclipse.xtext.xbase.XSynchronizedExpression;
import org.eclipse.xtext.xbase.XThrowExpression;
import org.eclipse.xtext.xbase.XTryCatchFinallyExpression;
import org.eclipse.xtext.xbase.XTypeLiteral;
import org.eclipse.xtext.xbase.XUnaryOperation;
import org.eclipse.xtext.xbase.XVariableDeclaration;
import org.eclipse.xtext.xbase.XWhileExpression;
import org.eclipse.xtext.xbase.XbasePackage;
import org.eclipse.xtext.xbase.serializer.XbaseSemanticSequencer;
import org.eclipse.xtext.xtype.XFunctionTypeRef;
import org.eclipse.xtext.xtype.XImportDeclaration;
import org.eclipse.xtext.xtype.XImportSection;
import org.eclipse.xtext.xtype.XtypePackage;
@SuppressWarnings("all")
public class MelangeSemanticSequencer extends XbaseSemanticSequencer {
@Inject
private MelangeGrammarAccess 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 == MelangePackage.eINSTANCE)
switch (semanticObject.eClass().getClassifierID()) {
case MelangePackage.CLASS_BINDING:
sequence_ClassMapping(context, (ClassBinding) semanticObject);
return;
case MelangePackage.EXTERNAL_LANGUAGE:
sequence_ExternalLanguage(context, (ExternalLanguage) semanticObject);
return;
case MelangePackage.IMPORT:
if (rule == grammarAccess.getExternalImportRule()) {
sequence_ExternalImport(context, (Import) semanticObject);
return;
}
else if (rule == grammarAccess.getOperatorRule()
|| rule == grammarAccess.getImportRule()) {
sequence_Import(context, (Import) semanticObject);
return;
}
else break;
case MelangePackage.INHERITANCE:
sequence_Inherit(context, (Inheritance) semanticObject);
return;
case MelangePackage.LANGUAGE:
sequence_Language(context, (Language) semanticObject);
return;
case MelangePackage.MAPPING:
sequence_Mapping(context, (Mapping) semanticObject);
return;
case MelangePackage.MERGE:
sequence_Merge(context, (Merge) semanticObject);
return;
case MelangePackage.MODEL_TYPE:
sequence_EcoreModelType(context, (ModelType) semanticObject);
return;
case MelangePackage.MODEL_TYPING_SPACE:
sequence_ModelTypingSpace(context, (ModelTypingSpace) semanticObject);
return;
case MelangePackage.PACKAGE_BINDING:
sequence_PackageMapping(context, (PackageBinding) semanticObject);
return;
case MelangePackage.PROPERTY_BINDING:
sequence_PropertyMapping(context, (PropertyBinding) semanticObject);
return;
case MelangePackage.SLICE:
sequence_Slice(context, (Slice) semanticObject);
return;
case MelangePackage.WEAVE:
if (rule == grammarAccess.getOperatorRule()
|| rule == grammarAccess.getWeaveRule()) {
sequence_AspectTypeRef_AspectWildcard(context, (Weave) semanticObject);
return;
}
else if (rule == grammarAccess.getAspectTypeRefRule()) {
sequence_AspectTypeRef(context, (Weave) semanticObject);
return;
}
else if (rule == grammarAccess.getAspectWildcardRule()) {
sequence_AspectWildcard(context, (Weave) semanticObject);
return;
}
else break;
case MelangePackage.XBASE_TRANSFORMATION:
sequence_XbaseTransformation(context, (XbaseTransformation) semanticObject);
return;
}
else if (epackage == TypesPackage.eINSTANCE)
switch (semanticObject.eClass().getClassifierID()) {
case TypesPackage.JVM_FORMAL_PARAMETER:
if (rule == grammarAccess.getFullJvmFormalParameterRule()) {
sequence_FullJvmFormalParameter(context, (JvmFormalParameter) semanticObject);
return;
}
else if (rule == grammarAccess.getJvmFormalParameterRule()) {
sequence_JvmFormalParameter(context, (JvmFormalParameter) semanticObject);
return;
}
else break;
case TypesPackage.JVM_GENERIC_ARRAY_TYPE_REFERENCE:
sequence_JvmTypeReference(context, (JvmGenericArrayTypeReference) semanticObject);
return;
case TypesPackage.JVM_INNER_TYPE_REFERENCE:
sequence_JvmParameterizedTypeReference(context, (JvmInnerTypeReference) semanticObject);
return;
case TypesPackage.JVM_LOWER_BOUND:
if (rule == grammarAccess.getJvmLowerBoundAndedRule()) {
sequence_JvmLowerBoundAnded(context, (JvmLowerBound) semanticObject);
return;
}
else if (rule == grammarAccess.getJvmLowerBoundRule()) {
sequence_JvmLowerBound(context, (JvmLowerBound) semanticObject);
return;
}
else break;
case TypesPackage.JVM_PARAMETERIZED_TYPE_REFERENCE:
if (action == grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()) {
sequence_JvmParameterizedTypeReference_JvmInnerTypeReference_1_4_0_0_0(context, (JvmParameterizedTypeReference) semanticObject);
return;
}
else if (rule == grammarAccess.getJvmTypeReferenceRule()
|| action == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()
|| rule == grammarAccess.getJvmParameterizedTypeReferenceRule()
|| rule == grammarAccess.getJvmArgumentTypeReferenceRule()) {
sequence_JvmParameterizedTypeReference(context, (JvmParameterizedTypeReference) semanticObject);
return;
}
else break;
case TypesPackage.JVM_TYPE_PARAMETER:
sequence_JvmTypeParameter(context, (JvmTypeParameter) semanticObject);
return;
case TypesPackage.JVM_UPPER_BOUND:
if (rule == grammarAccess.getJvmUpperBoundAndedRule()) {
sequence_JvmUpperBoundAnded(context, (JvmUpperBound) semanticObject);
return;
}
else if (rule == grammarAccess.getJvmUpperBoundRule()) {
sequence_JvmUpperBound(context, (JvmUpperBound) semanticObject);
return;
}
else break;
case TypesPackage.JVM_WILDCARD_TYPE_REFERENCE:
sequence_JvmWildcardTypeReference(context, (JvmWildcardTypeReference) semanticObject);
return;
}
else if (epackage == XbasePackage.eINSTANCE)
switch (semanticObject.eClass().getClassifierID()) {
case XbasePackage.XASSIGNMENT:
sequence_XAssignment_XMemberFeatureCall(context, (XAssignment) semanticObject);
return;
case XbasePackage.XBASIC_FOR_LOOP_EXPRESSION:
sequence_XBasicForLoopExpression(context, (XBasicForLoopExpression) semanticObject);
return;
case XbasePackage.XBINARY_OPERATION:
sequence_XAdditiveExpression_XAndExpression_XAssignment_XEqualityExpression_XMultiplicativeExpression_XOrExpression_XOtherOperatorExpression_XRelationalExpression(context, (XBinaryOperation) semanticObject);
return;
case XbasePackage.XBLOCK_EXPRESSION:
if (rule == grammarAccess.getXExpressionRule()
|| rule == grammarAccess.getXAssignmentRule()
|| action == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
|| rule == grammarAccess.getXOrExpressionRule()
|| action == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXAndExpressionRule()
|| action == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXEqualityExpressionRule()
|| action == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXRelationalExpressionRule()
|| action == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()
|| action == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
|| rule == grammarAccess.getXOtherOperatorExpressionRule()
|| action == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXAdditiveExpressionRule()
|| action == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXMultiplicativeExpressionRule()
|| action == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXUnaryOperationRule()
|| rule == grammarAccess.getXCastedExpressionRule()
|| action == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()
|| rule == grammarAccess.getXPostfixOperationRule()
|| action == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()
|| rule == grammarAccess.getXMemberFeatureCallRule()
|| action == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()
|| action == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()
|| rule == grammarAccess.getXPrimaryExpressionRule()
|| rule == grammarAccess.getXParenthesizedExpressionRule()
|| rule == grammarAccess.getXBlockExpressionRule()
|| rule == grammarAccess.getXExpressionOrVarDeclarationRule()) {
sequence_XBlockExpression(context, (XBlockExpression) semanticObject);
return;
}
else if (rule == grammarAccess.getXExpressionInClosureRule()) {
sequence_XExpressionInClosure(context, (XBlockExpression) semanticObject);
return;
}
else break;
case XbasePackage.XBOOLEAN_LITERAL:
sequence_XBooleanLiteral(context, (XBooleanLiteral) semanticObject);
return;
case XbasePackage.XCASE_PART:
sequence_XCasePart(context, (XCasePart) semanticObject);
return;
case XbasePackage.XCASTED_EXPRESSION:
sequence_XCastedExpression(context, (XCastedExpression) semanticObject);
return;
case XbasePackage.XCATCH_CLAUSE:
sequence_XCatchClause(context, (XCatchClause) semanticObject);
return;
case XbasePackage.XCLOSURE:
if (rule == grammarAccess.getXExpressionRule()
|| rule == grammarAccess.getXAssignmentRule()
|| action == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
|| rule == grammarAccess.getXOrExpressionRule()
|| action == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXAndExpressionRule()
|| action == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXEqualityExpressionRule()
|| action == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXRelationalExpressionRule()
|| action == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()
|| action == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()
|| rule == grammarAccess.getXOtherOperatorExpressionRule()
|| action == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXAdditiveExpressionRule()
|| action == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXMultiplicativeExpressionRule()
|| action == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()
|| rule == grammarAccess.getXUnaryOperationRule()
|| rule == grammarAccess.getXCastedExpressionRule()
|| action == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()
|| rule == grammarAccess.getXPostfixOperationRule()
|| action == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()
|| rule == grammarAccess.getXMemberFeatureCallRule()
|| action == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()
|| action == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()
|| rule == grammarAccess.getXPrimaryExpressionRule()
|| rule == grammarAccess.getXLiteralRule()
|| rule == grammarAccess.getXClosureRule()
|| rule == grammarAccess.getXParenthesizedExpressionRule()
|| rule == grammarAccess.getXExpressionOrVarDeclarationRule()) {
sequence_XClosure(context, (XClosure) semanticObject);
return;
}
else if (rule == grammarAccess.getXShortClosureRule()) {
sequence_XShortClosure(context, (XClosure) semanticObject);
return;
}
else break;
case XbasePackage.XCONSTRUCTOR_CALL:
sequence_XConstructorCall(context, (XConstructorCall) semanticObject);
return;
case XbasePackage.XDO_WHILE_EXPRESSION:
sequence_XDoWhileExpression(context, (XDoWhileExpression) semanticObject);
return;
case XbasePackage.XFEATURE_CALL:
sequence_XFeatureCall(context, (XFeatureCall) semanticObject);
return;
case XbasePackage.XFOR_LOOP_EXPRESSION:
sequence_XForLoopExpression(context, (XForLoopExpression) semanticObject);
return;
case XbasePackage.XIF_EXPRESSION:
sequence_XIfExpression(context, (XIfExpression) semanticObject);
return;
case XbasePackage.XINSTANCE_OF_EXPRESSION:
sequence_XRelationalExpression(context, (XInstanceOfExpression) semanticObject);
return;
case XbasePackage.XLIST_LITERAL:
sequence_XListLiteral(context, (XListLiteral) semanticObject);
return;
case XbasePackage.XMEMBER_FEATURE_CALL:
sequence_XMemberFeatureCall(context, (XMemberFeatureCall) semanticObject);
return;
case XbasePackage.XNULL_LITERAL:
sequence_XNullLiteral(context, (XNullLiteral) semanticObject);
return;
case XbasePackage.XNUMBER_LITERAL:
sequence_XNumberLiteral(context, (XNumberLiteral) semanticObject);
return;
case XbasePackage.XPOSTFIX_OPERATION:
sequence_XPostfixOperation(context, (XPostfixOperation) semanticObject);
return;
case XbasePackage.XRETURN_EXPRESSION:
sequence_XReturnExpression(context, (XReturnExpression) semanticObject);
return;
case XbasePackage.XSET_LITERAL:
sequence_XSetLiteral(context, (XSetLiteral) semanticObject);
return;
case XbasePackage.XSTRING_LITERAL:
sequence_XStringLiteral(context, (XStringLiteral) semanticObject);
return;
case XbasePackage.XSWITCH_EXPRESSION:
sequence_XSwitchExpression(context, (XSwitchExpression) semanticObject);
return;
case XbasePackage.XSYNCHRONIZED_EXPRESSION:
sequence_XSynchronizedExpression(context, (XSynchronizedExpression) semanticObject);
return;
case XbasePackage.XTHROW_EXPRESSION:
sequence_XThrowExpression(context, (XThrowExpression) semanticObject);
return;
case XbasePackage.XTRY_CATCH_FINALLY_EXPRESSION:
sequence_XTryCatchFinallyExpression(context, (XTryCatchFinallyExpression) semanticObject);
return;
case XbasePackage.XTYPE_LITERAL:
sequence_XTypeLiteral(context, (XTypeLiteral) semanticObject);
return;
case XbasePackage.XUNARY_OPERATION:
sequence_XUnaryOperation(context, (XUnaryOperation) semanticObject);
return;
case XbasePackage.XVARIABLE_DECLARATION:
sequence_XVariableDeclaration(context, (XVariableDeclaration) semanticObject);
return;
case XbasePackage.XWHILE_EXPRESSION:
sequence_XWhileExpression(context, (XWhileExpression) semanticObject);
return;
}
else if (epackage == XtypePackage.eINSTANCE)
switch (semanticObject.eClass().getClassifierID()) {
case XtypePackage.XFUNCTION_TYPE_REF:
sequence_XFunctionTypeRef(context, (XFunctionTypeRef) semanticObject);
return;
case XtypePackage.XIMPORT_DECLARATION:
sequence_XImportDeclaration(context, (XImportDeclaration) semanticObject);
return;
case XtypePackage.XIMPORT_SECTION:
sequence_XImportSection(context, (XImportSection) semanticObject);
return;
}
if (errorAcceptor != null)
errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
/**
* Contexts:
* Operator returns Weave
* Weave returns Weave
*
* Constraint:
* (aspectTypeRef=JvmTypeReference | aspectWildcardImport=QualifiedNameWithWildcard)
*/
protected void sequence_AspectTypeRef_AspectWildcard(ISerializationContext context, Weave semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* AspectTypeRef returns Weave
*
* Constraint:
* aspectTypeRef=JvmTypeReference
*/
protected void sequence_AspectTypeRef(ISerializationContext context, Weave semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MelangePackage.Literals.WEAVE__ASPECT_TYPE_REF) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MelangePackage.Literals.WEAVE__ASPECT_TYPE_REF));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getAspectTypeRefAccess().getAspectTypeRefJvmTypeReferenceParserRuleCall_1_0(), semanticObject.getAspectTypeRef());
feeder.finish();
}
/**
* Contexts:
* AspectWildcard returns Weave
*
* Constraint:
* aspectWildcardImport=QualifiedNameWithWildcard
*/
protected void sequence_AspectWildcard(ISerializationContext context, Weave semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MelangePackage.Literals.WEAVE__ASPECT_WILDCARD_IMPORT) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MelangePackage.Literals.WEAVE__ASPECT_WILDCARD_IMPORT));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getAspectWildcardAccess().getAspectWildcardImportQualifiedNameWithWildcardParserRuleCall_1_0(), semanticObject.getAspectWildcardImport());
feeder.finish();
}
/**
* Contexts:
* ClassMapping returns ClassBinding
*
* Constraint:
* (from=STRING to=STRING properties+=PropertyMapping*)
*/
protected void sequence_ClassMapping(ISerializationContext context, ClassBinding semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* Element returns ModelType
* EcoreModelType returns ModelType
*
* Constraint:
* (mtUri=STRING? (name=ValidID ecoreUri=STRING)?)+
*/
protected void sequence_EcoreModelType(ISerializationContext context, ModelType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* ExternalImport returns Import
*
* Constraint:
* (ecoreUri=STRING (genmodelUris+=STRING genmodelUris+=STRING*)?)
*/
protected void sequence_ExternalImport(ISerializationContext context, Import semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* Element returns ExternalLanguage
* ExternalLanguage returns ExternalLanguage
*
* Constraint:
* (
* (operators+=Weave | xmof=STRING | fileExtension=STRING)?
* (xtext+=STRING xtext+=STRING*)?
* (sirius+=STRING sirius+=STRING*)?
* (ecl+=STRING ecl+=STRING*)?
* (exactTypeName=ValidID exactTypeUri=STRING?)?
* (name=ValidID (implements+=[ModelType|QualifiedName] implements+=[ModelType|QualifiedName]*)? operators+=ExternalImport)?
* )+
*/
protected void sequence_ExternalLanguage(ISerializationContext context, ExternalLanguage semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* Operator returns Import
* Import returns Import
*
* Constraint:
* (ecoreUri=STRING (genmodelUris+=STRING genmodelUris+=STRING*)? mappingRules+=PackageMapping*)
*/
protected void sequence_Import(ISerializationContext context, Import semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* Inherit returns Inheritance
*
* Constraint:
* targetLanguage=[Language|QualifiedName]
*/
protected void sequence_Inherit(ISerializationContext context, Inheritance semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MelangePackage.Literals.LANGUAGE_OPERATOR__TARGET_LANGUAGE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MelangePackage.Literals.LANGUAGE_OPERATOR__TARGET_LANGUAGE));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getInheritAccess().getTargetLanguageLanguageQualifiedNameParserRuleCall_0_1(), semanticObject.getTargetLanguage());
feeder.finish();
}
/**
* Contexts:
* Element returns Language
* Language returns Language
*
* Constraint:
* (
* (xmof=STRING | fileExtension=STRING)?
* (xtext+=STRING xtext+=STRING*)?
* (sirius+=STRING sirius+=STRING*)?
* (ecl+=STRING ecl+=STRING*)?
* (exactTypeName=ValidID exactTypeUri=STRING?)?
* (resourceType=ResourceType (resourceUri=STRING | xtextSetupRef=JvmTypeReference)?)?
* (
* name=ValidID
* (operators+=Inherit operators+=Inherit*)?
* (implements+=[ModelType|QualifiedName] implements+=[ModelType|QualifiedName]*)?
* (requires+=[ModelType|QualifiedName] requires+=[ModelType|QualifiedName]*)?
* operators+=Operator*
* )?
* )+
*/
protected void sequence_Language(ISerializationContext context, Language semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* Element returns Mapping
* Mapping returns Mapping
*
* Constraint:
* (from=[Language|QualifiedName] to=[ModelType|QualifiedName] rules+=ClassMapping*)
*/
protected void sequence_Mapping(ISerializationContext context, Mapping semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* Operator returns Merge
* Merge returns Merge
*
* Constraint:
* (targetLanguage=[Language|QualifiedName] mappingRules+=PackageMapping*)
*/
protected void sequence_Merge(ISerializationContext context, Merge semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* ModelTypingSpace returns ModelTypingSpace
*
* Constraint:
* (name=QualifiedName imports=XImportSection? elements+=Element*)
*/
protected void sequence_ModelTypingSpace(ISerializationContext context, ModelTypingSpace semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* PackageMapping returns PackageBinding
*
* Constraint:
* (from=STRING to=STRING classes+=ClassMapping*)
*/
protected void sequence_PackageMapping(ISerializationContext context, PackageBinding semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* PropertyMapping returns PropertyBinding
*
* Constraint:
* (from=STRING to=STRING)
*/
protected void sequence_PropertyMapping(ISerializationContext context, PropertyBinding semanticObject) {
if (errorAcceptor != null) {
if (transientValues.isValueTransient(semanticObject, MelangePackage.Literals.PROPERTY_BINDING__FROM) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MelangePackage.Literals.PROPERTY_BINDING__FROM));
if (transientValues.isValueTransient(semanticObject, MelangePackage.Literals.PROPERTY_BINDING__TO) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, MelangePackage.Literals.PROPERTY_BINDING__TO));
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getPropertyMappingAccess().getFromSTRINGTerminalRuleCall_0_0(), semanticObject.getFrom());
feeder.accept(grammarAccess.getPropertyMappingAccess().getToSTRINGTerminalRuleCall_2_0(), semanticObject.getTo());
feeder.finish();
}
/**
* Contexts:
* Operator returns Slice
* Slice returns Slice
*
* Constraint:
* (targetLanguage=[Language|QualifiedName] roots+=STRING roots+=STRING* mappingRules+=PackageMapping*)
*/
protected void sequence_Slice(ISerializationContext context, Slice semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* Element returns XbaseTransformation
* TransformationDecl returns XbaseTransformation
* XbaseTransformation returns XbaseTransformation
*
* Constraint:
* (
* main?='@Main'?
* returnTypeRef=JvmTypeReference?
* name=ValidID
* (parameters+=FullJvmFormalParameter parameters+=FullJvmFormalParameter*)?
* body=XBlockExpression
* )
*/
protected void sequence_XbaseTransformation(ISerializationContext context, XbaseTransformation semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
}