Home » Modeling » Epsilon » higher-order transformation
| | | | |
Re: higher-order transformation [message #1744219 is a reply to message #1742508] |
Fri, 23 September 2016 12:29 |
|
Hi there,
If you use the metamodels provided by Haetae, what you need to do is to use the models extracted by Haetae and transform them with ETL like you do with any other Ecore based models.
Cheers,
Will
Research Associate
Department of Computer Science
University of York
|
|
| | |
Re: higher-order transformation [message #1749450 is a reply to message #1749012] |
Tue, 06 December 2016 22:50 |
|
Hi there,
Right now, the metamodels provided by Haetae are independent from Epsilon and are compatible to Epsilon 1.3 (we have not done any work with Epsilon 1.4 for now).
To enable higher order transformation, you firstly need to get yourself familiar with the metamodels of EOL [1], ETL [2] and EVL[3] (currently only these three metamodels are provided by Haetae).
Haetae provides you with facilities to parse ExL modules (as they are strings) to ExL models that conform to [1], [2] or [3], using the facilities provided in [4 -6].
Once you obtained the model you wish to perform higher order transformation to, use standard ETL to transform them into the language you want.
For example, to transform an EOL program into an EVL program:
rule EOLModule2EVLModule
transform eol: EOLModule
to evl: EVLModule {
}
and you write the rules in a top down manner.
Once you have obtained a model (e.g. an EOLModule), you can use the pretty printer facilities to turn these models back into Strings using [7], please note at this stage we only implemented the printer for EOL, we plan to implement more printers but it is unsure when we will get to it.
Hope all this helps.
Cheers,
Will
[1]. https://github.com/epsilonlabs/haetae/tree/master/org.eclipse.epsilon.haetae.eol.metamodel
[2]. https://github.com/epsilonlabs/haetae/tree/master/org.eclipse.epsilon.haetae.etl.metamodel
[3]. https://github.com/epsilonlabs/haetae/tree/master/org.eclipse.epsilon.haetae.evl.metamodel
[4]. https://github.com/epsilonlabs/haetae/tree/master/org.eclipse.epsilon.haetae.eol.ast2eol
[5]. https://github.com/epsilonlabs/haetae/tree/master/org.eclipse.epsilon.haetae.etl.ast2etl
[6]. https://github.com/epsilonlabs/haetae/tree/master/org.eclipse.epsilon.haetae.evl.ast2evl
[7]. https://github.com/epsilonlabs/haetae/tree/master/org.eclipse.epsilon.haetae.eol.metamodel.visitor.printer
Research Associate
Department of Computer Science
University of York
|
|
|
Re: higher-order transformation [message #1749563 is a reply to message #1749450] |
Thu, 08 December 2016 08:10 |
Banafsheh Azizi Messages: 328 Registered: July 2016 |
Senior Member |
|
|
Hi Will,
Many thanks for your reply
To clarify, I want to transform ETL transformations (i.e. input of my higher-order transformation is ETL transformation).
William Wei wrote on Tue, 06 December 2016 22:50
Once you have obtained a model (e.g. an EOLModule), you can use the pretty printer facilities to turn these models back into Strings using [7], please note at this stage we only implemented the printer for EOL, we plan to implement more printers but it is unsure when we will get to it.
Does it need for all higher-order transformations? I mean, since you only implemented the printer for EOL, can't I transform ETL transformations to special model or transformation written in special language?
Best regards,
Member of MDSE Research Group
http://mdse.ui.ac.ir
[Updated on: Fri, 06 January 2017 17:36] Report message to a moderator
|
|
| |
Re: higher-order transformation [message #1751748 is a reply to message #1749563] |
Fri, 13 January 2017 12:41 |
|
Hi there, if I understood your question, with the ETL model as input you can transform it to arbitrary languages as you with, using Model-to-Text transformations (EGL comes in handy in here).
Research Associate
Department of Computer Science
University of York
|
|
|
Goto Forum:
Current Time: Thu Mar 28 13:34:29 GMT 2024
Powered by FUDForum. Page generated in 0.08296 seconds
|