\oclHeadingOne{ToDo}\label{ocl:ToDo}

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

Complete OCL CS

Operation template signature
PropertyContextDecl template signature
PropertyContextDecl optional type
PropertyContextDecl init name
basecs:: rules
ClassifierContext / ClassContext



<<<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.