Vous êtes sur la page 1sur 17

MOFScript

Ander Zubizarreta
2009-3-18
Big Picture

Transformation
definition

metamodel template

<<conformsTo>>

Code
Model
Big Picture (our example)

Transformation
EMF definition

Wtsl.ecore Cpp
Wtsl.xsd
template

<<conformsTo>>

C++
Controllables. Code
wtsl
Contents

1. MOFScript Tool

2. MOFScript Language

3. Example
MOFScript tool

 Eclipse plugin
 tool for model to text transformation
 supports generation of implementation code or
documentation from models

MOFScript
M2T

<<conformsTo>>
Doc

Code
MOFScript tool

 Rule-based
 .m2t extension
 Allows various input models
 Code completion
 Transformations can also be represented as
models (XMI)
MOFScript
Creating transformation
 File  New  Other  MOFScript File

1 2
MOFScript
Editor
MOFScript
Compiling
MOFScript
Executing

Select input
model
MOFScript
Console
MOFScript language

 Transformation module
– The definition of the transformation
– Defined using keyword textmodule or
texttransformation
– It defines the input metamodels
– The body of the transformation module contains the
rules
 Transformation Inheritance
– Transformations can be extended using extends
keyword
– Rules are inherited and they can be used or overriden
in the subtransformation
MOFScript language

 Imports
– A transformation may import other transformations as
libraries
 Variables and properties (constants)
– Variables and properties can be declared either
globally or locally
– They can be of any of the MOFScript types
MOFScript language
 Rules
– Elements of a rule:
• Context type -> metamodel type (optional)
• Return type (optional)
• Input parameters (optional)
• Body -> set of statements
– Types of rules:
• Entry point rules
– Defines where the execution starts -> main()
– Defines for which metamodel element type it is executed
– It is executed as many times as entry point type elements are in the input model
• Entry point rules without context type
– It is executed only once
• Abstract rules
– Abstract rules can be defined
– Rule Overriding
• Rules can be overriden, either from imported transformation or within
the same transformation
– Different rule with the same name will be called depending on the context type.
MOFScript language
 Files
– Declaration of an output device for text.
– Declared using keyword file.
– File name and extension are given as a parameter
 If statements, Iterators, While statements, Select
expressions, Printing, Logging, Expressions
– Similar to other languages
 Types
– Strings, Integer, Real, Boolean, List, Hashtable, Object, Model
• Many operations available for each type
 Built-in functions
– Many built-in functions are available in MOFScript: System
functions and Output utility functions
 Other features:
– Reflection support, Java invocation, UML2 integration,
Unprotected Blocks, Aspects, M2M transformation
MOFScript language

 For more detailed information:


– MOFScript Language Reference in Eclipse Help
– Mofscript user guide:
http://www.eclipse.org/gmt/mofscript/doc/MOFScript-User-
 For more information:
– http://www.eclipse.org/gmt/mofscript/doc/MOFScript-User-Guide.pdf

Vous aimerez peut-être aussi