Epsilon EVL Coordination Language

EGX is a rule-based language for coordinating the execution of EGL templates. EGX provides an easy way to invoke and EGL template with a specific set of parameters, on a specific type of model elements and generate output on a paticular location.


  • Invoke an EGL template for each model element
  • Define parameters per element/template combination
  • Specify output file location per element/template combination
  • Guarded generation rules
  • Support for simultaneously accessing/modifying many models of (potentially) different metamodels
  • All the usual programming constructs (while and for loops, statement sequencing, variables etc.)
  • Support for those convenient first-order logic OCL operations (select, reject, collect etc.)
  • Ability to create and call methods of Java objects
  • Support for dynamically attaching operations to existing meta-classes and types at runtime
  • Support for cached operations
  • Support for extended properties
  • Support for user interaction
  • Ability to create reusable libraries of operations and import them from different Epsilon (not only EOL) modules

Examples and Screencasts


Chapter 7, Section 7.4 of the Epsilon book provides a complete reference of the syntax and semantics of EGX.