DevBooststLogotudLogorewerseLogo modelplexLogo
The fastest way to refinable, durable and evolution-resistant textual syntaxes for EMF models!

Constraint Language: OCL 2.2

The Object Constraint Language (OCL) can be used to specify invariants or check conditions for models. OCL is an offical standard of the OMG.

The EMFText syntax for OCL was developed by the Dresden OCL team. To obtain a compiled version of the syntax, please consult the update site of this project. If you are eager to compile it yourself, use the links below. Note that parts of the semantic analysis are written in Scala, which requires to have the respective tooling installed.


EMFText Language OCL.gif

CS Specification



OCL.ecore (meta-model of OCL concrete syntax)


tudresden.ocl20.logging (Extended Log4J Logging feature used by DresdenOCL)

tudresden.ocl20.pivot.essentialocl (meta-model of OCL after transformation from concrete syntax)

tudresden.ocl20.pivot.essentialocl.standardlibrary (modelled standard library of OCL)

tudresden.ocl20.pivot.language.ocl (EMFText-generated OCL parser)

tudresden.ocl20.pivot.language.ocl.resource.ocl (EMFText-generated OCL editor)

tudresden.ocl20.pivot.language.ocl.semantics (Scala-based attribute classes for attribute grammar)

tudresden.ocl20.pivot.language.ocl.staticsemantics (Scala-based attribute grammar and post-processor for type-resolving and WFR checks)

tudresden.ocl20.pivot.model (interfaces for models treated in Dresden OCL)

tudresden.ocl20.pivot.modelbus (repository for meta-model, models, instances and constraints in Dresden OCL)

tudresden.ocl20.pivot.modelinstance (interfaces for model instances treated in Dresden OCL)

tudresden.ocl20.pivot.modelinstancetype (interfaces for model instance adapters treated in Dresden OCL)

tudresden.ocl20.pivot.pivotmodel (interfaces for model adapters (meta-models) treated in Dresden OCL)