Class AbstractRulesSemanticSequencer

java.lang.Object
org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer
org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer
org.eclipse.xtext.xbase.serializer.AbstractXtypeSemanticSequencer
org.eclipse.xtext.xbase.serializer.XtypeSemanticSequencer
org.eclipse.xtext.xbase.serializer.AbstractXbaseSemanticSequencer
org.eclipse.xtext.xbase.serializer.XbaseSemanticSequencer
All Implemented Interfaces:
org.eclipse.xtext.serializer.sequencer.ISemanticSequencer
Direct Known Subclasses:
RulesSemanticSequencer

public abstract class AbstractRulesSemanticSequencer extends ScriptSemanticSequencer
  • Field Summary

    Fields inherited from class org.eclipse.xtext.xbase.serializer.XbaseSemanticSequencer

    OPERATOR_NOT_SUPPORTED

    Fields inherited from class org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer

    genericSequencer, genericSequencerProvider

    Fields inherited from class org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer

    diagnosticProvider, errorAcceptor, feederProvider, masterSequencer, nodeProvider, sequenceAcceptor, transientValues
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    sequence(org.eclipse.xtext.serializer.ISerializationContext context, org.eclipse.emf.ecore.EObject semanticObject)
     
    protected void
    sequence_ChangedEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, ChangedEventTrigger semanticObject)
    Contexts: EventTrigger returns ChangedEventTrigger ChangedEventTrigger returns ChangedEventTrigger Constraint: (item=ItemName oldState=ValidState? newState=ValidState?)
    protected void
    sequence_CommandEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, CommandEventTrigger semanticObject)
    Contexts: EventTrigger returns CommandEventTrigger CommandEventTrigger returns CommandEventTrigger Constraint: (item=ItemName command=ValidCommand?)
    protected void
    sequence_DateTimeTrigger(org.eclipse.xtext.serializer.ISerializationContext context, DateTimeTrigger semanticObject)
    Contexts: EventTrigger returns DateTimeTrigger DateTimeTrigger returns DateTimeTrigger Constraint: (item=ItemName timeOnly?='timeOnly'?)
    protected void
    sequence_EventEmittedTrigger(org.eclipse.xtext.serializer.ISerializationContext context, EventEmittedTrigger semanticObject)
    Contexts: EventTrigger returns EventEmittedTrigger EventEmittedTrigger returns EventEmittedTrigger Constraint: ((channel=STRING | channel=ID) trigger=ValidTrigger?)
    protected void
    sequence_GroupMemberChangedEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, GroupMemberChangedEventTrigger semanticObject)
    Contexts: EventTrigger returns GroupMemberChangedEventTrigger GroupMemberChangedEventTrigger returns GroupMemberChangedEventTrigger Constraint: (group=ItemName oldState=ValidState? newState=ValidState?)
    protected void
    sequence_GroupMemberCommandEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, GroupMemberCommandEventTrigger semanticObject)
    Contexts: EventTrigger returns GroupMemberCommandEventTrigger GroupMemberCommandEventTrigger returns GroupMemberCommandEventTrigger Constraint: (group=ItemName command=ValidCommand?)
    protected void
    sequence_GroupMemberUpdateEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, GroupMemberUpdateEventTrigger semanticObject)
    Contexts: EventTrigger returns GroupMemberUpdateEventTrigger GroupMemberUpdateEventTrigger returns GroupMemberUpdateEventTrigger Constraint: (group=ItemName state=ValidState?)
    protected void
    sequence_Rule(org.eclipse.xtext.serializer.ISerializationContext context, Rule semanticObject)
    Contexts: Rule returns Rule Constraint: ((name=STRING | name=ID) eventtrigger+=EventTrigger eventtrigger+=EventTrigger* script=Script)
    protected void
    sequence_RuleModel(org.eclipse.xtext.serializer.ISerializationContext context, RuleModel semanticObject)
    Contexts: RuleModel returns RuleModel Constraint: ((importSection=XImportSection? variables+=VariableDeclaration+ rules+=Rule+) | (importSection=XImportSection? rules+=Rule+) | rules+=Rule+)?
    protected void
    sequence_SystemOnShutdownTrigger(org.eclipse.xtext.serializer.ISerializationContext context, SystemOnShutdownTrigger semanticObject)
    Contexts: EventTrigger returns SystemOnShutdownTrigger SystemTrigger returns SystemOnShutdownTrigger SystemOnShutdownTrigger returns SystemOnShutdownTrigger Constraint: {SystemOnShutdownTrigger}
    protected void
    sequence_SystemOnStartupTrigger(org.eclipse.xtext.serializer.ISerializationContext context, SystemOnStartupTrigger semanticObject)
    Contexts: EventTrigger returns SystemOnStartupTrigger SystemTrigger returns SystemOnStartupTrigger SystemOnStartupTrigger returns SystemOnStartupTrigger Constraint: {SystemOnStartupTrigger}
    protected void
    sequence_SystemStartlevelTrigger(org.eclipse.xtext.serializer.ISerializationContext context, SystemStartlevelTrigger semanticObject)
    Contexts: EventTrigger returns SystemStartlevelTrigger SystemTrigger returns SystemStartlevelTrigger SystemStartlevelTrigger returns SystemStartlevelTrigger Constraint: level=INT
    protected void
    sequence_ThingStateChangedEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, ThingStateChangedEventTrigger semanticObject)
    Contexts: EventTrigger returns ThingStateChangedEventTrigger ThingStateChangedEventTrigger returns ThingStateChangedEventTrigger Constraint: (thing=STRING oldState=ThingValidState? newState=ThingValidState?)
    protected void
    sequence_ThingStateUpdateEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, ThingStateUpdateEventTrigger semanticObject)
    Contexts: EventTrigger returns ThingStateUpdateEventTrigger ThingStateUpdateEventTrigger returns ThingStateUpdateEventTrigger Constraint: (thing=STRING state=ThingValidState?)
    protected void
    sequence_TimerTrigger(org.eclipse.xtext.serializer.ISerializationContext context, TimerTrigger semanticObject)
    Contexts: EventTrigger returns TimerTrigger TimerTrigger returns TimerTrigger Constraint: (cron=STRING | time='midnight' | time='noon')
    protected void
    sequence_UpdateEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, UpdateEventTrigger semanticObject)
    Contexts: EventTrigger returns UpdateEventTrigger UpdateEventTrigger returns UpdateEventTrigger Constraint: (item=ItemName state=ValidState?)
    protected void
    sequence_ValidCommandId(org.eclipse.xtext.serializer.ISerializationContext context, ValidCommandId semanticObject)
    Contexts: ValidCommand returns ValidCommandId ValidCommandId returns ValidCommandId Constraint: value=ID
    protected void
    sequence_ValidCommandNumber(org.eclipse.xtext.serializer.ISerializationContext context, ValidCommandNumber semanticObject)
    Contexts: ValidCommand returns ValidCommandNumber ValidCommandNumber returns ValidCommandNumber Constraint: value=Number
    protected void
    sequence_ValidCommandString(org.eclipse.xtext.serializer.ISerializationContext context, ValidCommandString semanticObject)
    Contexts: ValidCommand returns ValidCommandString ValidCommandString returns ValidCommandString Constraint: value=STRING
    protected void
    sequence_ValidStateId(org.eclipse.xtext.serializer.ISerializationContext context, ValidStateId semanticObject)
    Contexts: ValidState returns ValidStateId ValidStateId returns ValidStateId Constraint: value=ID
    protected void
    sequence_ValidStateNumber(org.eclipse.xtext.serializer.ISerializationContext context, ValidStateNumber semanticObject)
    Contexts: ValidState returns ValidStateNumber ValidStateNumber returns ValidStateNumber Constraint: value=Number
    protected void
    sequence_ValidStateString(org.eclipse.xtext.serializer.ISerializationContext context, ValidStateString semanticObject)
    Contexts: ValidState returns ValidStateString ValidStateString returns ValidStateString Constraint: value=STRING
    protected void
    sequence_ValidTriggerId(org.eclipse.xtext.serializer.ISerializationContext context, ValidTriggerId semanticObject)
    Contexts: ValidTrigger returns ValidTriggerId ValidTriggerId returns ValidTriggerId Constraint: value=ID
    protected void
    sequence_ValidTriggerNumber(org.eclipse.xtext.serializer.ISerializationContext context, ValidTriggerNumber semanticObject)
    Contexts: ValidTrigger returns ValidTriggerNumber ValidTriggerNumber returns ValidTriggerNumber Constraint: value=Number
    protected void
    sequence_ValidTriggerString(org.eclipse.xtext.serializer.ISerializationContext context, ValidTriggerString semanticObject)
    Contexts: ValidTrigger returns ValidTriggerString ValidTriggerString returns ValidTriggerString Constraint: value=STRING
    protected void
    sequence_VariableDeclaration(org.eclipse.xtext.serializer.ISerializationContext context, VariableDeclaration semanticObject)
    Contexts: VariableDeclaration returns VariableDeclaration Constraint: (writeable?='var'? ((type=JvmTypeReference name=ValidID) | name=ValidID) right=XExpression?)

    Methods inherited from class org.eclipse.xtext.xbase.serializer.XbaseSemanticSequencer

    getValidOperator, isBuilderSyntax, isBuilderSyntax, isXShortClosure, isXShortClosure, isXShortClosureAndBuilderSyntax, sequence_XAdditiveExpression, sequence_XAdditiveExpression_XAndExpression_XAssignment_XEqualityExpression_XMultiplicativeExpression_XOrExpression_XOtherOperatorExpression_XRelationalExpression, sequence_XAssignment, sequence_XConstructorCall, sequence_XExpression, sequence_XFeatureCall, sequence_XMemberFeatureCall

    Methods inherited from class org.eclipse.xtext.xbase.serializer.AbstractXbaseSemanticSequencer

    sequence_FullJvmFormalParameter, sequence_FullJvmFormalParameter, sequence_JvmFormalParameter, sequence_JvmFormalParameter, sequence_XAdditiveExpression_XAndExpression_XAssignment_XEqualityExpression_XMultiplicativeExpression_XOrExpression_XOtherOperatorExpression_XRelationalExpression, sequence_XAssignment_XMemberFeatureCall, sequence_XAssignment_XMemberFeatureCall, sequence_XBasicForLoopExpression, sequence_XBasicForLoopExpression, sequence_XBlockExpression, sequence_XBlockExpression, sequence_XBooleanLiteral, sequence_XBooleanLiteral, sequence_XCasePart, sequence_XCasePart, sequence_XCastedExpression, sequence_XCastedExpression, sequence_XCatchClause, sequence_XCatchClause, sequence_XClosure, sequence_XClosure, sequence_XConstructorCall, sequence_XDoWhileExpression, sequence_XDoWhileExpression, sequence_XExpressionInClosure, sequence_XExpressionInClosure, sequence_XFeatureCall, sequence_XForLoopExpression, sequence_XForLoopExpression, sequence_XIfExpression, sequence_XIfExpression, sequence_XListLiteral, sequence_XListLiteral, sequence_XMemberFeatureCall, sequence_XNullLiteral, sequence_XNullLiteral, sequence_XNumberLiteral, sequence_XNumberLiteral, sequence_XPostfixOperation, sequence_XPostfixOperation, sequence_XRelationalExpression, sequence_XRelationalExpression, sequence_XReturnExpression, sequence_XReturnExpression, sequence_XSetLiteral, sequence_XSetLiteral, sequence_XShortClosure, sequence_XShortClosure, sequence_XStringLiteral, sequence_XStringLiteral, sequence_XSwitchExpression, sequence_XSwitchExpression, sequence_XSynchronizedExpression, sequence_XSynchronizedExpression, sequence_XThrowExpression, sequence_XThrowExpression, sequence_XTryCatchFinallyExpression, sequence_XTryCatchFinallyExpression, sequence_XTypeLiteral, sequence_XTypeLiteral, sequence_XUnaryOperation, sequence_XUnaryOperation, sequence_XVariableDeclaration, sequence_XVariableDeclaration, sequence_XWhileExpression, sequence_XWhileExpression

    Methods inherited from class org.eclipse.xtext.xbase.serializer.AbstractXtypeSemanticSequencer

    sequence_JvmLowerBound, sequence_JvmLowerBound, sequence_JvmLowerBoundAnded, sequence_JvmLowerBoundAnded, sequence_JvmParameterizedTypeReference, sequence_JvmParameterizedTypeReference, sequence_JvmParameterizedTypeReference, sequence_JvmParameterizedTypeReference, sequence_JvmParameterizedTypeReference_JvmInnerTypeReference_1_4_0_0_0, sequence_JvmParameterizedTypeReference_JvmInnerTypeReference_1_4_0_0_0, sequence_JvmTypeParameter, sequence_JvmTypeParameter, sequence_JvmTypeReference, sequence_JvmTypeReference, sequence_JvmUpperBound, sequence_JvmUpperBound, sequence_JvmUpperBoundAnded, sequence_JvmUpperBoundAnded, sequence_JvmWildcardTypeReference, sequence_JvmWildcardTypeReference, sequence_XFunctionTypeRef, sequence_XFunctionTypeRef, sequence_XImportDeclaration, sequence_XImportDeclaration, sequence_XImportSection, sequence_XImportSection

    Methods inherited from class org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer

    init

    Methods inherited from class org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer

    createContext, createNodeProvider, createSequence, createSequence, createSequencerFeeder, createSequencerFeeder, createSequencerFeeder, createSequencerFeeder, init, setMasterSequencer

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AbstractRulesSemanticSequencer

      public AbstractRulesSemanticSequencer()
  • Method Details

    • sequence

      public void sequence(org.eclipse.xtext.serializer.ISerializationContext context, org.eclipse.emf.ecore.EObject semanticObject)
      Overrides:
      sequence in class AbstractScriptSemanticSequencer
    • sequence_ChangedEventTrigger

      protected void sequence_ChangedEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, ChangedEventTrigger semanticObject)
       Contexts:
           EventTrigger returns ChangedEventTrigger
           ChangedEventTrigger returns ChangedEventTrigger
      
       Constraint:
           (item=ItemName oldState=ValidState? newState=ValidState?)
       
    • sequence_CommandEventTrigger

      protected void sequence_CommandEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, CommandEventTrigger semanticObject)
       Contexts:
           EventTrigger returns CommandEventTrigger
           CommandEventTrigger returns CommandEventTrigger
      
       Constraint:
           (item=ItemName command=ValidCommand?)
       
    • sequence_DateTimeTrigger

      protected void sequence_DateTimeTrigger(org.eclipse.xtext.serializer.ISerializationContext context, DateTimeTrigger semanticObject)
       Contexts:
           EventTrigger returns DateTimeTrigger
           DateTimeTrigger returns DateTimeTrigger
      
       Constraint:
           (item=ItemName timeOnly?='timeOnly'?)
       
    • sequence_EventEmittedTrigger

      protected void sequence_EventEmittedTrigger(org.eclipse.xtext.serializer.ISerializationContext context, EventEmittedTrigger semanticObject)
       Contexts:
           EventTrigger returns EventEmittedTrigger
           EventEmittedTrigger returns EventEmittedTrigger
      
       Constraint:
           ((channel=STRING | channel=ID) trigger=ValidTrigger?)
       
    • sequence_GroupMemberChangedEventTrigger

      protected void sequence_GroupMemberChangedEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, GroupMemberChangedEventTrigger semanticObject)
       Contexts:
           EventTrigger returns GroupMemberChangedEventTrigger
           GroupMemberChangedEventTrigger returns GroupMemberChangedEventTrigger
      
       Constraint:
           (group=ItemName oldState=ValidState? newState=ValidState?)
       
    • sequence_GroupMemberCommandEventTrigger

      protected void sequence_GroupMemberCommandEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, GroupMemberCommandEventTrigger semanticObject)
       Contexts:
           EventTrigger returns GroupMemberCommandEventTrigger
           GroupMemberCommandEventTrigger returns GroupMemberCommandEventTrigger
      
       Constraint:
           (group=ItemName command=ValidCommand?)
       
    • sequence_GroupMemberUpdateEventTrigger

      protected void sequence_GroupMemberUpdateEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, GroupMemberUpdateEventTrigger semanticObject)
       Contexts:
           EventTrigger returns GroupMemberUpdateEventTrigger
           GroupMemberUpdateEventTrigger returns GroupMemberUpdateEventTrigger
      
       Constraint:
           (group=ItemName state=ValidState?)
       
    • sequence_RuleModel

      protected void sequence_RuleModel(org.eclipse.xtext.serializer.ISerializationContext context, RuleModel semanticObject)
       Contexts:
           RuleModel returns RuleModel
      
       Constraint:
           ((importSection=XImportSection? variables+=VariableDeclaration+ rules+=Rule+) | (importSection=XImportSection? rules+=Rule+) | rules+=Rule+)?
       
    • sequence_Rule

      protected void sequence_Rule(org.eclipse.xtext.serializer.ISerializationContext context, Rule semanticObject)
       Contexts:
           Rule returns Rule
      
       Constraint:
           ((name=STRING | name=ID) eventtrigger+=EventTrigger eventtrigger+=EventTrigger* script=Script)
       
    • sequence_SystemOnShutdownTrigger

      protected void sequence_SystemOnShutdownTrigger(org.eclipse.xtext.serializer.ISerializationContext context, SystemOnShutdownTrigger semanticObject)
       Contexts:
           EventTrigger returns SystemOnShutdownTrigger
           SystemTrigger returns SystemOnShutdownTrigger
           SystemOnShutdownTrigger returns SystemOnShutdownTrigger
      
       Constraint:
           {SystemOnShutdownTrigger}
       
    • sequence_SystemOnStartupTrigger

      protected void sequence_SystemOnStartupTrigger(org.eclipse.xtext.serializer.ISerializationContext context, SystemOnStartupTrigger semanticObject)
       Contexts:
           EventTrigger returns SystemOnStartupTrigger
           SystemTrigger returns SystemOnStartupTrigger
           SystemOnStartupTrigger returns SystemOnStartupTrigger
      
       Constraint:
           {SystemOnStartupTrigger}
       
    • sequence_SystemStartlevelTrigger

      protected void sequence_SystemStartlevelTrigger(org.eclipse.xtext.serializer.ISerializationContext context, SystemStartlevelTrigger semanticObject)
       Contexts:
           EventTrigger returns SystemStartlevelTrigger
           SystemTrigger returns SystemStartlevelTrigger
           SystemStartlevelTrigger returns SystemStartlevelTrigger
      
       Constraint:
           level=INT
       
    • sequence_ThingStateChangedEventTrigger

      protected void sequence_ThingStateChangedEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, ThingStateChangedEventTrigger semanticObject)
       Contexts:
           EventTrigger returns ThingStateChangedEventTrigger
           ThingStateChangedEventTrigger returns ThingStateChangedEventTrigger
      
       Constraint:
           (thing=STRING oldState=ThingValidState? newState=ThingValidState?)
       
    • sequence_ThingStateUpdateEventTrigger

      protected void sequence_ThingStateUpdateEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, ThingStateUpdateEventTrigger semanticObject)
       Contexts:
           EventTrigger returns ThingStateUpdateEventTrigger
           ThingStateUpdateEventTrigger returns ThingStateUpdateEventTrigger
      
       Constraint:
           (thing=STRING state=ThingValidState?)
       
    • sequence_TimerTrigger

      protected void sequence_TimerTrigger(org.eclipse.xtext.serializer.ISerializationContext context, TimerTrigger semanticObject)
       Contexts:
           EventTrigger returns TimerTrigger
           TimerTrigger returns TimerTrigger
      
       Constraint:
           (cron=STRING | time='midnight' | time='noon')
       
    • sequence_UpdateEventTrigger

      protected void sequence_UpdateEventTrigger(org.eclipse.xtext.serializer.ISerializationContext context, UpdateEventTrigger semanticObject)
       Contexts:
           EventTrigger returns UpdateEventTrigger
           UpdateEventTrigger returns UpdateEventTrigger
      
       Constraint:
           (item=ItemName state=ValidState?)
       
    • sequence_ValidCommandId

      protected void sequence_ValidCommandId(org.eclipse.xtext.serializer.ISerializationContext context, ValidCommandId semanticObject)
       Contexts:
           ValidCommand returns ValidCommandId
           ValidCommandId returns ValidCommandId
      
       Constraint:
           value=ID
       
    • sequence_ValidCommandNumber

      protected void sequence_ValidCommandNumber(org.eclipse.xtext.serializer.ISerializationContext context, ValidCommandNumber semanticObject)
       Contexts:
           ValidCommand returns ValidCommandNumber
           ValidCommandNumber returns ValidCommandNumber
      
       Constraint:
           value=Number
       
    • sequence_ValidCommandString

      protected void sequence_ValidCommandString(org.eclipse.xtext.serializer.ISerializationContext context, ValidCommandString semanticObject)
       Contexts:
           ValidCommand returns ValidCommandString
           ValidCommandString returns ValidCommandString
      
       Constraint:
           value=STRING
       
    • sequence_ValidStateId

      protected void sequence_ValidStateId(org.eclipse.xtext.serializer.ISerializationContext context, ValidStateId semanticObject)
       Contexts:
           ValidState returns ValidStateId
           ValidStateId returns ValidStateId
      
       Constraint:
           value=ID
       
    • sequence_ValidStateNumber

      protected void sequence_ValidStateNumber(org.eclipse.xtext.serializer.ISerializationContext context, ValidStateNumber semanticObject)
       Contexts:
           ValidState returns ValidStateNumber
           ValidStateNumber returns ValidStateNumber
      
       Constraint:
           value=Number
       
    • sequence_ValidStateString

      protected void sequence_ValidStateString(org.eclipse.xtext.serializer.ISerializationContext context, ValidStateString semanticObject)
       Contexts:
           ValidState returns ValidStateString
           ValidStateString returns ValidStateString
      
       Constraint:
           value=STRING
       
    • sequence_ValidTriggerId

      protected void sequence_ValidTriggerId(org.eclipse.xtext.serializer.ISerializationContext context, ValidTriggerId semanticObject)
       Contexts:
           ValidTrigger returns ValidTriggerId
           ValidTriggerId returns ValidTriggerId
      
       Constraint:
           value=ID
       
    • sequence_ValidTriggerNumber

      protected void sequence_ValidTriggerNumber(org.eclipse.xtext.serializer.ISerializationContext context, ValidTriggerNumber semanticObject)
       Contexts:
           ValidTrigger returns ValidTriggerNumber
           ValidTriggerNumber returns ValidTriggerNumber
      
       Constraint:
           value=Number
       
    • sequence_ValidTriggerString

      protected void sequence_ValidTriggerString(org.eclipse.xtext.serializer.ISerializationContext context, ValidTriggerString semanticObject)
       Contexts:
           ValidTrigger returns ValidTriggerString
           ValidTriggerString returns ValidTriggerString
      
       Constraint:
           value=STRING
       
    • sequence_VariableDeclaration

      protected void sequence_VariableDeclaration(org.eclipse.xtext.serializer.ISerializationContext context, VariableDeclaration semanticObject)
       Contexts:
           VariableDeclaration returns VariableDeclaration
      
       Constraint:
           (writeable?='var'? ((type=JvmTypeReference name=ValidID) | name=ValidID) right=XExpression?)