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

Whats new and noteworthy in EMFText 1.4.0?

Code generation

Support for running/debugging models


EMFText does now automatically add UI elements to execute models.

run_as_menu.png

Support for launch configurations


The execution of DSL models can be parameterized with launch configurations.

launch_configuration.png

Debugging out of the box


EMFText does now automatically generate a full-fledged debugger for DSLs that use an interpreter for execution.

debugging.png

Support for New Project templates


You can replace a default ZIP file with custom content to provide a template for new projects to users of your DSL.

new_dsl_project_wizard.png

New languages available on the update site

DBSchema


Can be used to specify database schemata. The DSL comes with a wizard that can extract existing schemata using JDBC.
DBSchema discovery wizard
DBSchema discovery wizard

Whats new and noteworthy in EMFText 1.3.4?

User Interface

Custom Syntax Wizard


Syntax Generation: The custom syntax wizard allows to configure the syntax generation process with many options.

Enhanced New Project Wizard


Creating new projects: Select the code to be generated when creating new projects.

new_project_wizard_codegen_page.gif

New languages available on the update site

Minimal Ecore


Can be used to quickly create Ecore models.
Example Minimal Ecore file
Example Minimal Ecore file

WebTest


A basic script language for functional web site testing.
Example WebTest script
Example WebTest script

Whats new and noteworthy in EMFText 1.3.3?

Syntax specification (CS language)

Syntax for Enumeration Attributes


Defining syntax for enumeration attributes is now even easier.

enumeration_attribute_syntax.gif

Code generation

Default Quick Fixes for unresolved references


EMFText does now automatically add quick fixes for unresolved references.

default_quick_fix.gif

New languages available on the update site

OSGi Manifest files


Can be used to read, transform and write manifest files with EMF tools.
Example Manifest and Outline
Example Manifest and Outline

OWLCL


OWLCL be used to add OWL constraints to Ecore metamodels.
OWL CL example and corresponding Ecore model
OWL CL example and corresponding Ecore model

Whats new and noteworthy in EMFText 1.3.2?

EMFText 1.3.2 is a pure bugfix release. It does not contain new features. Please consult the Release Notes to see which bugs have been fixed.

Whats new and noteworthy in EMFText 1.3.1?

User Interface

Java-style Syntax Generator


Syntax Derivation: Similar to HUTN, a Java-like syntax can now be generated.

java_style_generator.gif

Syntax specification (CS language)

Syntax for Boolean Attributes


Defining syntax for boolean attributes is now as easy as it can get.

boolean_attribute_syntax.gif

Improved syntax analysis


The analysis of .cs files has been extended to detect more problems. In particular duplicate and conflicting options are now reported.

Automatic token sorting


Tokens defined in .cs files are now automatically sorted. More specific tokens are preferred over more general ones.

Code generation

Customization of Code Completion Proposals


EMFText does now generate a dedicated class which can be overridden to modify the completion proposals that are computed automatically.

Support for Quick Fixes


EMFText does now support to easily create quick fixes for problems that are detected in DSL documents.

Dynamic Syntax Highlighting


The highlighting of text elements can now be performed dynamically. Instead of assigning color and text style per token type, tokens can be styled depending on their text or position in the document.

Improved features

Documentation

EMFText is now shipped with a completely revised documentation that is both available from the Eclipse Help menu and the web.

New languages available on the update site

EMFDoc


EMFDoc can be used to add documentation to Ecore models.

Image:EMFText_Language_EMFDoc.gif

Whats new and noteworthy in EMFText 1.3.0?

User Interface

EMFText Project Wizard


Project Scaffolding: Advanced wizard to create new EMFText projects

new_project_wizard.png


Syntax specification (CS language)

Operator rules


Operator rules can be used for metamodels that have expression-like constructs.

operator_rules.png

Image:EMFText_Language_SimpleMath.gif

Examples are mathematical expressions, logical expressions or other forms of nested syntax elements. Often these expressions cause problems, because they are left-recursive and require to prioritize one rule over another. EMFText 1.3.0 does now provide special annotations (@Operator) to define such rules, assign priorities as well as associativity. This allows for clean and easy modelling of the expressions.

Examples on how to use these new annotations can be found in the SimpleMath and Three Valued Logic languages.

Partial token definitions


The regular expression for token definitions can now be composed. This is particularly useful when regular expressions contain repeating sequences.

fragment_tokens.png

Rule Overrides


Rules from imported syntaxes can be overridden now. To do so, basically add a new rule for the metaclass, which does already have syntax defined in an imported syntax and tag the new rule with the @Override annotation. One can also remove rules using @Override(remove="true").

Anonymous Attributes


Anonymous attributes can be used if one expects a certain token in a CS rule, but does not want to store the token value in an attribute. This is particularly useful when defining syntax for existing metamodels, where one can not add attributes anymore, but the syntax required tokens at particular spots in CS rules.

anonymous_attributes.png

Code generation

Separation of generated code into two plug-ins


Instead of generating one resource plug-in, EMFText does now generate two separate plug-ins. One contains the parser, printer and EMF integration code. The second one contains anything connected to the UI, for example the editor and preference pages. This enables the usage of DSLs in headless environments.

Generation of builder stub and project nature


EMFText does now generate a builder class for DSLs and a project nature. The builder can easily be customized to transform or compile DSL documents whenever these are saved.

Generation of interpreter stub


To ease the implementation of interpreters for DSLs, a stub class is generated, which implements a stack-based interpretation pattern. For each metaclass a method, responsible for interpreting instances of this class is added to the stub. By subclassing the abstract interpreter stub one can easily program interpreters. Examples can be found in the SimpleMath and Three Valued Logic languages.

EMF Validation


The EMF Validation framework is now used to check textual models by default. This way, the same validation classes registered for a metamodel can be used both in graphical and textual editors.

Incremental Code Generation


EMFText does now override only classes that have changed. This speeds up both the code generation as well as the compilation of generated plug-ins.

Improved features

Breaking changes

New languages available on the update site

Augmented Backus Naur Form (ABNF)


ABNF is an IEEE standard for defining context-free syntax.

Image:EMFText_Language_ABNF.gif


Java Properties Files


Java Properties Files are often used by Java programmers to store configuration data or externalized information (e.g., language-specific messages).

Image:EMFText_Language_JavaProperties.gif

Theater DSL


Theater DSL is a DSL to describe scripts for theater plays.

Image:EMFText_Language_Theater.png



Whats new and noteworthy in EMFText 1.2.0?

User Interface

Texthover


Contextual Insight: Editor provides selection sensitive information hover for all model elements.

hover.png

Occurrence Highlighting


Specification Context: Highlighting of specifcation and usage of model objects.

occurence_highlighting.png

Folding


Hide and Reveal: Editor provides code folding that can be enabled by annotating rules in the syntax specification.

program_folding.png

Bracket Handling


Efficiency and Comprehension: Editor completes and highlights corresponding brackets while typing.

bracket_handling.png

Code generation

Runtime independence


Removal of EMFText runtime dependencies. All code required by DSL plug-ins is now generated. Thus, there are no runtime dependencies to a specific EMFText version.

New languages available on the update site

eJava


Specify Ecore's EOperation bodies with Java. To provide the implementation for EOperations one simply puts an eJava file next to the Ecore model.

Ecore Facade


Ecore Facade is a language to add additional annotations to existing Ecore models

Whats new and noteworthy in EMFText 1.1.0?

User Interface

Syntax Highlighting


Customisable Beauty: Syntax highlighting is customisable per language (syntax specification) and per user (workspace preferences).

highlighting_cs.png


highlighting_preferences.png

Code Completion


Intelligent Code Proposals: Automatic derivation of code proposals from syntax specifications and metamodel references.

code_completion.png

Outline View


Structural Overview: Integration of text editor and selection sensitive outline view.

outline_view.png

Syntax specification (CS language)

Syntax Specification Analysis


Check and Report: Structural and semantic analysis of syntax specifcations w.r.t. a given metamodel and further consistency rules (e.g., Token conflicts, rule recursion, etc.).

cs_error_reporting.png

HUTN Generator


Kickstart for syntax specification: Added action for EMF .genmodel that automatically generates a default HUTN syntax from the metamodel.

[[1]]

Syntax Import


Reuse: Import metamodels and existing syntax specifications.

syntax_import.png

New languages available on the update site

Java 5


A complete specification of Java 5 together with its meta model.

See also: http://www.jamopp.org

Ecore TEXT


Textual metamodelling within the EMF:

Ecore TEXT is a textual syntax for EMF's meta modelling language.

Manchester Syntax for OWL2


Ontology Modelling: A language implementing the Manchester Syntax for OWL2.

Image:EMFText_Language_Owl.gif

Retrieved from "http://www.jamopp.org/index.php/EMFText_NewAndNoteworthy"

This page has been accessed 29,832 times. This page was last modified 10:19, 5 April 2012.