higher-order transformation [message #1741729] |
Mon, 29 August 2016 01:22  |
Eclipse User |
|
|
|
Hello,
Is it possible to write higher-order transformation with ETL?
I want to write ETL to one DSL transformation. how can I do that?
|
|
|
|
|
|
|
|
|
|
Re: higher-order transformation [message #1749450 is a reply to message #1749012] |
Tue, 06 December 2016 17:50   |
Eclipse User |
|
|
|
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
|
|
|
Re: higher-order transformation [message #1749563 is a reply to message #1749450] |
Thu, 08 December 2016 03:10   |
Eclipse User |
|
|
|
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,
[Updated on: Fri, 06 January 2017 12:36] by Moderator
|
|
|
|
|
Powered by
FUDForum. Page generated in 1.28848 seconds