Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdt-ocl.dev] Xtext OCL editor progress

Hi

I expect to commit

org.eclipse.ocl.examples.xtext.{essentialocl,completeocl,oclinecore}{..ui}

shortly.

The essentialocl editor provides a single expression editor, potentially useable by the OCL Interpreter or as a popup in UML tools. Interface may need adjusting once actually used by someone. The other editors extend the essentialocl editor.

The completeocl editor supports *.ocl documents. It does not (yet) build to produce a corresponding *.oclecore that noone uses anyway. There is therefore no need to transform the XtextCST to the existing CST. Users edit a *.ocl text document with assistance from the LL grammar. In due course a build will use the existing text to CST to AST LALR parser unchanged.

The oclinecore editor currently supports *.oclinecore documents that is an EssentialOCL in EMFatic concrete syntax. My next job is to serialise on load and save the Ecore, so that the oclinecore editor is just another editor for *.ecore. No *.oclinecore file at all.

I've temporarily lost much of the semantics from the LL grammar so X::Y is just two concatenated text strings. Whether this can be fully resolved semantically in the LL grammar is work in progress. Maybe we need to project the errors from the existing parser and analyser to provide the semantic messages within Xtext.

Anyway the completeocl and essentialocl editors now provide a useful text document/line develoipment assistant. The oclinecore should be an advanced Ecore assistant shortly. This gives the editors a modest but definitely useful functionality. How much of the further work to prettify outlines, code templates quick fixes gets done is just a matter of time. The more the better.

Xtext is very keen on an import statement with a little built of built-in semantic support. I'm therefore inclined to add an import construct to CompleteOCL (which was never complete in the OCL specification anyway). An import is much more obvious to the user than poking around in the Model Registry.

    Regards

        Ed Willink





Back to the top