org.eclipse.ocl.examples.xtext.essentialocl.cs2pivot
Class EssentialOCLPostOrderVisitor

java.lang.Object
  extended by org.eclipse.ocl.examples.xtext.base.util.AbstractBaseCSVisitor<R,C>
      extended by org.eclipse.ocl.examples.xtext.base.util.AbstractDelegatingBaseCSVisitor<R,C,D>
          extended by org.eclipse.ocl.examples.xtext.essentialocl.util.AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>
              extended by org.eclipse.ocl.examples.xtext.essentialocl.cs2pivot.EssentialOCLPostOrderVisitor
All Implemented Interfaces:
BaseCSVisitor<Continuation<?>,CS2PivotConversion>, EssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion>

public class EssentialOCLPostOrderVisitor
extends AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>


Nested Class Summary
protected static class EssentialOCLPostOrderVisitor.ContextCSCompletion
           
 
Field Summary
protected  TypeManager typeManager
           
 
Fields inherited from class org.eclipse.ocl.examples.xtext.base.util.AbstractDelegatingBaseCSVisitor
delegate
 
Fields inherited from class org.eclipse.ocl.examples.xtext.base.util.AbstractBaseCSVisitor
context
 
Constructor Summary
EssentialOCLPostOrderVisitor(CS2PivotConversion context)
           
 
Method Summary
protected  void createInfixOperatorTree(InfixExpCS csInfix)
          Establish the parent-{source,argument} relationships between all infix operators in accordance with the precedence and associativity configuration.
protected  java.util.Map<Precedence,java.util.List<java.lang.Integer>> createInfixPrecedenceToOperatorIndexesMap(InfixExpCS csInfix)
          Return a map of operator indexes for each used precedence.
protected  void initializePrefixOperators(PrefixExpCS prefixExpCS, OperatorCS csParent)
           
protected  void interleavePrefixes(InfixExpCS csElement)
           
protected  void interleaveUnaryOperator(UnaryOperatorCS csOperator)
           
 Continuation<?> visitCollectionTypeCS(CollectionTypeCS csCollectionType)
           
 Continuation<?> visitContextCS(ContextCS csContext)
           
 Continuation<?> visitExpCS(ExpCS csExp)
           
 Continuation<?> visitInfixExpCS(InfixExpCS csInfixExp)
           
 Continuation<?> visitNavigatingExpCS(NavigatingExpCS csNavigatingExp)
           
 Continuation<?> visitOperatorCS(OperatorCS csOperator)
           
 Continuation<?> visitPrefixExpCS(PrefixExpCS csPrefixExp)
           
 Continuation<?> visitSpecificationCS(SpecificationCS csSpecification)
           
 Continuation<?> visitVariableCS(VariableCS csVariable)
           
 
Methods inherited from class org.eclipse.ocl.examples.xtext.essentialocl.util.AbstractExtendingDelegatingEssentialOCLCSVisitor
visitBinaryOperatorCS, visitBooleanLiteralExpCS, visitCollectionLiteralExpCS, visitCollectionLiteralPartCS, visitDecoratedNamedExpCS, visitExpSpecificationCS, visitIfExpCS, visitIndexExpCS, visiting, visitInvalidLiteralExpCS, visitLetExpCS, visitLetVariableCS, visitLiteralExpCS, visitNameExpCS, visitNavigatingArgCS, visitNavigationOperatorCS, visitNestedExpCS, visitNullLiteralExpCS, visitNumberLiteralExpCS, visitPrimitiveLiteralExpCS, visitSelfExpCS, visitStringLiteralExpCS, visitTupleLiteralExpCS, visitTupleLiteralPartCS, visitTypeLiteralExpCS, visitTypeNameExpCS, visitUnaryOperatorCS, visitUnlimitedNaturalLiteralExpCS
 
Methods inherited from class org.eclipse.ocl.examples.xtext.base.util.AbstractDelegatingBaseCSVisitor
getDelegate, visitAnnotationCS, visitAnnotationElementCS, visitAttributeCS, visitClassCS, visitClassCSRef, visitClassifierCS, visitCollectionTypeRefCS, visitConstraintCS, visitDataTypeCS, visitDetailCS, visitDocumentationCS, visitElementCS, visitEnumerationCS, visitEnumerationLiteralCS, visitImportCS, visitLambdaTypeCS, visitLibraryCS, visitModelElementCS, visitMonikeredElementCS, visitNamedElementCS, visitOperationCS, visitPackageCS, visitParameterCS, visitPrimitiveTypeRefCS, visitReferenceCS, visitRootPackageCS, visitStructuralFeatureCS, visitTemplateBindingCS, visitTemplateParameterCS, visitTemplateParameterSubstitutionCS, visitTemplateSignatureCS, visitTuplePartCS, visitTupleTypeCS, visitTypedElementCS, visitTypedRefCS, visitTypedTypeRefCS, visitTypeParameterCS, visitTypeRefCS, visitWildcardTypeRefCS
 
Methods inherited from class org.eclipse.ocl.examples.xtext.base.util.AbstractBaseCSVisitor
getAdapter, safeVisit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ocl.examples.xtext.base.util.BaseCSVisitor
getAdapter, visitAnnotationCS, visitAnnotationElementCS, visitAttributeCS, visitClassCS, visitClassCSRef, visitClassifierCS, visitCollectionTypeRefCS, visitConstraintCS, visitDataTypeCS, visitDetailCS, visitDocumentationCS, visitElementCS, visitEnumerationCS, visitEnumerationLiteralCS, visitImportCS, visitLambdaTypeCS, visitLibraryCS, visitModelElementCS, visitMonikeredElementCS, visitNamedElementCS, visitOperationCS, visitPackageCS, visitParameterCS, visitPrimitiveTypeRefCS, visitReferenceCS, visitRootPackageCS, visitStructuralFeatureCS, visitTemplateBindingCS, visitTemplateParameterCS, visitTemplateParameterSubstitutionCS, visitTemplateSignatureCS, visitTuplePartCS, visitTupleTypeCS, visitTypedElementCS, visitTypedRefCS, visitTypedTypeRefCS, visitTypeParameterCS, visitTypeRefCS, visitWildcardTypeRefCS
 

Field Detail

typeManager

protected final TypeManager typeManager
Constructor Detail

EssentialOCLPostOrderVisitor

public EssentialOCLPostOrderVisitor(CS2PivotConversion context)
Method Detail

createInfixOperatorTree

protected void createInfixOperatorTree(InfixExpCS csInfix)
Establish the parent-{source,argument} relationships between all infix operators in accordance with the precedence and associativity configuration.


createInfixPrecedenceToOperatorIndexesMap

protected java.util.Map<Precedence,java.util.List<java.lang.Integer>> createInfixPrecedenceToOperatorIndexesMap(InfixExpCS csInfix)
Return a map of operator indexes for each used precedence.


initializePrefixOperators

protected void initializePrefixOperators(PrefixExpCS prefixExpCS,
                                         OperatorCS csParent)

interleavePrefixes

protected void interleavePrefixes(InfixExpCS csElement)

interleaveUnaryOperator

protected void interleaveUnaryOperator(UnaryOperatorCS csOperator)

visitCollectionTypeCS

public Continuation<?> visitCollectionTypeCS(CollectionTypeCS csCollectionType)
Specified by:
visitCollectionTypeCS in interface EssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion>
Overrides:
visitCollectionTypeCS in class AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>

visitContextCS

public Continuation<?> visitContextCS(ContextCS csContext)
Specified by:
visitContextCS in interface EssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion>
Overrides:
visitContextCS in class AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>

visitExpCS

public Continuation<?> visitExpCS(ExpCS csExp)
Specified by:
visitExpCS in interface EssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion>
Overrides:
visitExpCS in class AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>

visitInfixExpCS

public Continuation<?> visitInfixExpCS(InfixExpCS csInfixExp)
Specified by:
visitInfixExpCS in interface EssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion>
Overrides:
visitInfixExpCS in class AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>

visitNavigatingExpCS

public Continuation<?> visitNavigatingExpCS(NavigatingExpCS csNavigatingExp)
Specified by:
visitNavigatingExpCS in interface EssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion>
Overrides:
visitNavigatingExpCS in class AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>

visitOperatorCS

public Continuation<?> visitOperatorCS(OperatorCS csOperator)
Specified by:
visitOperatorCS in interface EssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion>
Overrides:
visitOperatorCS in class AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>

visitPrefixExpCS

public Continuation<?> visitPrefixExpCS(PrefixExpCS csPrefixExp)
Specified by:
visitPrefixExpCS in interface EssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion>
Overrides:
visitPrefixExpCS in class AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>

visitSpecificationCS

public Continuation<?> visitSpecificationCS(SpecificationCS csSpecification)
Specified by:
visitSpecificationCS in interface BaseCSVisitor<Continuation<?>,CS2PivotConversion>
Overrides:
visitSpecificationCS in class AbstractDelegatingBaseCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>

visitVariableCS

public Continuation<?> visitVariableCS(VariableCS csVariable)
Specified by:
visitVariableCS in interface EssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion>
Overrides:
visitVariableCS in class AbstractExtendingDelegatingEssentialOCLCSVisitor<Continuation<?>,CS2PivotConversion,BasePostOrderVisitor>