<p>Eclipse OCL is an implementation of the <a href="http://www.omg.org/technology/documents/modeling_spec_catalog.htm#OCL">Object Constraint Language (OCL)</a> OMG standard for EMF-based models.</p>
<p>The core OCL component provides the following capabilities to support OCL integration:</p>
<ul>
	<li>Defines APIs for parsing and evaluating OCL constraints and queries on Ecore or UML models.</li>
	<li>Defines Ecore and UML implementations of the OCL abstract syntax model, including support for
	    serialization of parsed OCL expressions.</li>
	<li>Provides a Visitor API for analyzing/transforming the AST model of OCL expressions.</li>
	<li>Provides an extensibility API for clients to customize the parsing and evaluation
	    environments used by the parser.</li>
</ul>
<p>The accompanying examples provide:</p>
<ul>
	<li>A Console for interactive evaluation of OCL expression on models.</li>
	<li>(Indigo) An Impact Analyzer to support analysis and optimised re-evaluation.</li> 
</ul>
<p>The additional OCL Examples and Editors component provides interactive support for OCL:</p>
<ul>
	<li>An Xtext editor for OCL expressions (used by Papyrus and the Console).</li>
	<li>An Xtext editor for OCL expressions (used by Papyrus and the Console).</li>
	<li>An Xtext editor for OCL documents complemementing meta-models (Complete OCL).</li>
	<li>An Xtext editor for the OCL 'Standard' Library model.</li>
	<li>(Indigo) A UML-aligned OCL meta-model supporting templates and reflection.</li> 
	<li>(Indigo) An OCL evaluator exploiting the extensible OCL library model.</li> 
	<li>(Indigo) An Xtext Console for interactive evaluation of OCL expression on models.</li> 
</ul>
<p>The core OCL parser is generated by the LALR Parser Generator, a SourceForge project,
licensed under the <a href="http://www.eclipse.org/legal/epl-v10.html">EPL v1.0</a>.
Download it from the <a href="http://sourceforge.net/projects/lpg/">LPG home page</a>.
This site includes the generator executable required to regenerate the parser code.</p>

