/* * generated by Xtext 2.12.0 */ package com.minres.rdl.serializer; import com.google.inject.Inject; import com.minres.rdl.rdl.ComponentDefinition; import com.minres.rdl.rdl.ComponentInstance; import com.minres.rdl.rdl.Concat; import com.minres.rdl.rdl.ConcatElem; import com.minres.rdl.rdl.EnumBody; import com.minres.rdl.rdl.EnumDefinition; import com.minres.rdl.rdl.EnumEntry; import com.minres.rdl.rdl.EnumInstanceType; import com.minres.rdl.rdl.EnumProperty; import com.minres.rdl.rdl.ExplicitPropertyAssignment; import com.minres.rdl.rdl.Include; import com.minres.rdl.rdl.InstancePropertyRef; import com.minres.rdl.rdl.InstanceRef; import com.minres.rdl.rdl.Instantiation; import com.minres.rdl.rdl.PostPropertyAssignment; import com.minres.rdl.rdl.PropertyAssignmentRhs; import com.minres.rdl.rdl.PropertyDefault; import com.minres.rdl.rdl.PropertyDefinition; import com.minres.rdl.rdl.PropertyUsage; import com.minres.rdl.rdl.RValue; import com.minres.rdl.rdl.Range; import com.minres.rdl.rdl.RdlPackage; import com.minres.rdl.rdl.Root; import com.minres.rdl.services.RDLGrammarAccess; 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 RDLSemanticSequencer extends AbstractDelegatingSemanticSequencer { @Inject private RDLGrammarAccess grammarAccess; @Override public void sequence(ISerializationContext context, EObject semanticObject) { EPackage epackage = semanticObject.eClass().getEPackage(); ParserRule rule = context.getParserRule(); Action action = context.getAssignedAction(); Set parameters = context.getEnabledBooleanParameters(); if (epackage == RdlPackage.eINSTANCE) switch (semanticObject.eClass().getClassifierID()) { case RdlPackage.COMPONENT_DEFINITION: sequence_ComponentDefinition(context, (ComponentDefinition) semanticObject); return; case RdlPackage.COMPONENT_INSTANCE: sequence_ComponentInstance(context, (ComponentInstance) semanticObject); return; case RdlPackage.CONCAT: sequence_Concat(context, (Concat) semanticObject); return; case RdlPackage.CONCAT_ELEM: sequence_ConcatElem(context, (ConcatElem) semanticObject); return; case RdlPackage.ENUM_BODY: sequence_EnumBody(context, (EnumBody) semanticObject); return; case RdlPackage.ENUM_DEFINITION: sequence_EnumDefinition(context, (EnumDefinition) semanticObject); return; case RdlPackage.ENUM_ENTRY: sequence_EnumEntry(context, (EnumEntry) semanticObject); return; case RdlPackage.ENUM_INSTANCE_TYPE: sequence_EnumInstanceType(context, (EnumInstanceType) semanticObject); return; case RdlPackage.ENUM_PROPERTY: sequence_EnumProperty(context, (EnumProperty) semanticObject); return; case RdlPackage.EXPLICIT_PROPERTY_ASSIGNMENT: sequence_ExplicitPropertyAssignment(context, (ExplicitPropertyAssignment) semanticObject); return; case RdlPackage.INCLUDE: sequence_Include(context, (Include) semanticObject); return; case RdlPackage.INSTANCE_PROPERTY_REF: sequence_InstancePropertyRef(context, (InstancePropertyRef) semanticObject); return; case RdlPackage.INSTANCE_REF: if (rule == grammarAccess.getHierInstanceRefRule()) { sequence_HierInstanceRef(context, (InstanceRef) semanticObject); return; } else if (rule == grammarAccess.getInstanceRefRule()) { sequence_InstanceRef(context, (InstanceRef) semanticObject); return; } else break; case RdlPackage.INSTANTIATION: sequence_Instantiation(context, (Instantiation) semanticObject); return; case RdlPackage.POST_PROPERTY_ASSIGNMENT: sequence_PostPropertyAssignment(context, (PostPropertyAssignment) semanticObject); return; case RdlPackage.PROPERTY_ASSIGNMENT_RHS: sequence_PropertyAssignmentRhs(context, (PropertyAssignmentRhs) semanticObject); return; case RdlPackage.PROPERTY_DEFAULT: sequence_PropertyDefault(context, (PropertyDefault) semanticObject); return; case RdlPackage.PROPERTY_DEFINITION: sequence_PropertyDefinition(context, (PropertyDefinition) semanticObject); return; case RdlPackage.PROPERTY_USAGE: sequence_PropertyUsage(context, (PropertyUsage) semanticObject); return; case RdlPackage.RVALUE: sequence_PropertyRvalueConstant(context, (RValue) semanticObject); return; case RdlPackage.RANGE: sequence_Range(context, (Range) semanticObject); return; case RdlPackage.ROOT: sequence_Root(context, (Root) semanticObject); return; } if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); } /** * Contexts: * ComponentDefinition returns ComponentDefinition * * Constraint: * ( * type=ComponentDefinitionType * name=ID? * (componentDefinitions+=ComponentDefinition | instantiations+=Instantiation | propertyAssignments+=PropertyAssignment | enumDefinitions+=EnumDefinition)* * ) */ protected void sequence_ComponentDefinition(ISerializationContext context, ComponentDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * ComponentInstance returns ComponentInstance * Entity returns ComponentInstance * * Constraint: * ( * name=ID * range=Range? * reset=NUM? * address=NUM? * addrInc=NUM? * addrMod=NUM? * ) */ protected void sequence_ComponentInstance(ISerializationContext context, ComponentInstance semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * ConcatElem returns ConcatElem * * Constraint: * (instPropRef=InstancePropertyRef | value=NUM) */ protected void sequence_ConcatElem(ISerializationContext context, ConcatElem semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Concat returns Concat * * Constraint: * (elements+=ConcatElem elements+=ConcatElem*) */ protected void sequence_Concat(ISerializationContext context, Concat semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * EnumBody returns EnumBody * * Constraint: * entries+=EnumEntry* */ protected void sequence_EnumBody(ISerializationContext context, EnumBody semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Entity returns EnumDefinition * EnumDefinition returns EnumDefinition * * Constraint: * (name=ID body=EnumBody) */ protected void sequence_EnumDefinition(ISerializationContext context, EnumDefinition semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, RdlPackage.Literals.ENTITY__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RdlPackage.Literals.ENTITY__NAME)); if (transientValues.isValueTransient(semanticObject, RdlPackage.Literals.ENUM_DEFINITION__BODY) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RdlPackage.Literals.ENUM_DEFINITION__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getEnumDefinitionAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); feeder.accept(grammarAccess.getEnumDefinitionAccess().getBodyEnumBodyParserRuleCall_2_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: * EnumEntry returns EnumEntry * * Constraint: * (name=ID index=NUM properties+=EnumProperty*) */ protected void sequence_EnumEntry(ISerializationContext context, EnumEntry semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * EnumInstanceType returns EnumInstanceType * * Constraint: * (EXTERNAL='external' | INTERNAL='internal') */ protected void sequence_EnumInstanceType(ISerializationContext context, EnumInstanceType semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * EnumProperty returns EnumProperty * * Constraint: * ((name='name' value=STR) | (name='desc' value=STR)) */ protected void sequence_EnumProperty(ISerializationContext context, EnumProperty semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * PropertyAssignment returns ExplicitPropertyAssignment * DefaultProperyAssignment returns ExplicitPropertyAssignment * ExplicitPropertyAssignment returns ExplicitPropertyAssignment * * Constraint: * ((modifier=PropertyModifier name=Property) | (name=Property rhs=PropertyAssignmentRhs?)) */ protected void sequence_ExplicitPropertyAssignment(ISerializationContext context, ExplicitPropertyAssignment semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * HierInstanceRef returns InstanceRef * * Constraint: * (instance=[ComponentInstance|ID] tail=HierInstanceRef?) */ protected void sequence_HierInstanceRef(ISerializationContext context, InstanceRef semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Include returns Include * * Constraint: * importURI=STR */ protected void sequence_Include(ISerializationContext context, Include semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, RdlPackage.Literals.INCLUDE__IMPORT_URI) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RdlPackage.Literals.INCLUDE__IMPORT_URI)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getIncludeAccess().getImportURISTRTerminalRuleCall_1_0(), semanticObject.getImportURI()); feeder.finish(); } /** * Contexts: * InstancePropertyRef returns InstancePropertyRef * * Constraint: * (instance=InstanceRef (propertyEnum=Property | property=[PropertyDefinition|ID])?) */ protected void sequence_InstancePropertyRef(ISerializationContext context, InstancePropertyRef semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * InstanceRef returns InstanceRef * * Constraint: * (instance=[Entity|ID] tail=HierInstanceRef?) */ protected void sequence_InstanceRef(ISerializationContext context, InstanceRef semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Instantiation returns Instantiation * * Constraint: * ( * ( * (instanceType=EnumInstanceType? alias=ID? componentRef=[ComponentDefinition|ID]) | * (component=ComponentDefinition instanceType=EnumInstanceType?) * ) * componentInstances+=ComponentInstance * componentInstances+=ComponentInstance* * ) */ protected void sequence_Instantiation(ISerializationContext context, Instantiation semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * PropertyAssignment returns PostPropertyAssignment * PostPropertyAssignment returns PostPropertyAssignment * * Constraint: * ( * ((instance=HierInstanceRef (propertyEnum=Property | property=[PropertyDefinition|ID])) | property=[PropertyDefinition|ID]) * rhs=PropertyAssignmentRhs? * ) */ protected void sequence_PostPropertyAssignment(ISerializationContext context, PostPropertyAssignment semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * PropertyAssignmentRhs returns PropertyAssignmentRhs * * Constraint: * (value=PropertyRvalueConstant | instPropRef=InstancePropertyRef | (enumRef=[EnumDefinition|ID] enums=EnumBody) | elements=Concat) */ protected void sequence_PropertyAssignmentRhs(ISerializationContext context, PropertyAssignmentRhs semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * PropertyDefault returns PropertyDefault * * Constraint: * (string=STR | value=NUM | string='true' | string='false') */ protected void sequence_PropertyDefault(ISerializationContext context, PropertyDefault semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * PropertyDefinition returns PropertyDefinition * Entity returns PropertyDefinition * * Constraint: * ( * name=ID * ( * (type=PropertyTypeName ((usage=PropertyUsage default=PropertyDefault?) | (default=PropertyDefault usage=PropertyUsage))) | * (usage=PropertyUsage ((type=PropertyTypeName default=PropertyDefault?) | (default=PropertyDefault type=PropertyTypeName))) | * (default=PropertyDefault ((type=PropertyTypeName usage=PropertyUsage) | (usage=PropertyUsage type=PropertyTypeName))) * ) * ) */ protected void sequence_PropertyDefinition(ISerializationContext context, PropertyDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * PropertyRvalueConstant returns RValue * * Constraint: * (val=RValueConstant | num=NUM | str=STR) */ protected void sequence_PropertyRvalueConstant(ISerializationContext context, RValue semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * PropertyUsage returns PropertyUsage * * Constraint: * (components+=PropertyComponent components+=PropertyComponent*) */ protected void sequence_PropertyUsage(ISerializationContext context, PropertyUsage semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Range returns Range * * Constraint: * ((left=NUM right=NUM) | size=NUM) */ protected void sequence_Range(ISerializationContext context, Range semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Root returns Root * * Constraint: * ( * includes+=Include | * componentDefinitions+=ComponentDefinition | * enumDefinitions+=EnumDefinition | * instantiations+=Instantiation | * propertyAssignments+=PropertyAssignment | * propertyDefinitions+=PropertyDefinition * )+ */ protected void sequence_Root(ISerializationContext context, Root semanticObject) { genericSequencer.createSequence(context, semanticObject); } }