\oclHeadingOne{The Models}\label{ocl:TheModels}

This specification is substantially auto-generated from the normative models that accompany it.

<<<Migrate all *.ecore files to *.xmi>>>

\oclHeadingTwo{The Abstract Syntax (AS)}

The abstract syntax model Pivot.ecore is the result of a merge of UML.xmi and OCL.xmi followed by the QVTo transformations UML2EcoreAnalysis.qvto and UML2EcoreSynthesis.qvto that use the UML2ASinEcore.xmi control file and UML2EcoreControl.ecore and UML2EcoreMapping.ecore intermeiate representations.

Well-formedness rules are provided by Pivot.ocl and Types.ocl.

Name resolution rules are defined in Lookup.ocl.

\oclHeadingTwo{The Concrete Syntax (CS)}

The non-normative concrete syntax models Base.ecore, EssentialOCL.ecore and CompleteOCL.ecore support the EssentialOCL.xtext and CompleteOCL.xtext grammars.

Mapping between CS and AS is defined by EssentialOCLCS2AS.ocl and CompleteOCLCS2AS.ocl.

Disambiguation between generalized CS and precise CS is defined by EssentialOCLCS2CS.ocl.

\oclHeadingTwo{The Evaluation Semantics}

The evaluation semantics are defined by Values.ecore with well-formedness rules in Values.ocl.

\oclHeadingTwo{The OCL Standard Library}

The library is defined by OCLstdlib.oclas which is a serialization of the non-normative OCL2-5.oclstdlib.