Home » Modeling » ATL » [ATL] Rule inheritance with several 'from' elements
[ATL] Rule inheritance with several 'from' elements [message #1063095] |
Wed, 12 June 2013 09:35 |
Gunnar Arndt Messages: 82 Registered: June 2012 |
Member |
|
|
Hi members,
I have a problem with the following set of rules:
-- @atlcompiler atl2006
module transformate2startek;
create OUT: startek from IN: transformate;
lazy abstract rule AbstractAbstractTreeNode {
from
source: transformate!AbstractTreeNodeTransformer,
predecessors: Map(transformate!Transformer, startek!Document),
successors: Map(String, startek!Document)
to
target: startek!Document ( -- Document is an abstract class (this does not run with atl2004, but compiles no problem with atl2004).
id <- thisModule -> getId(),
source <- source.sourceUrl
)
}
-- ExceptionHandlerNodeTransformer extends AbstractTreeNodeTransformer
-- Cause extends Document
lazy rule ExceptionHandlerNode extends AbstractAbstractTreeNode {
from
source: transformate!ExceptionHandlerNodeTransformer,
predecessors: Map(transformate!Transformer, startek!Document),
successors: Map(String, startek!Document)
to
target: startek!Cause (
text <- source.exceptionClass
)
}
-- ReturnNodeTransformer extends AbstractTreeNodeTransformer
-- Result extends Document
lazy rule ReturnNode extends AbstractAbstractTreeNode {
from
source: transformate!ReturnNodeTransformer,
predecessors: Map(transformate!Transformer, startek!Document),
successors: Map(String, startek!Document)
to
target: startek!Result (
text <- source.result
)
}
The compiler gives me the following message:
org.eclipse.m2m.atl.engine.emfvm.VMException: Operation not found: org.eclipse.m2m.atl.engine.asm.ASMEmitter@4907d90c.emit(java.lang.String,org.eclipse.m2m.atl.engine.emfvm.lib.OclUndefined)
at process_checkSubRules#39(ATLCompiler.atl[1098:5-1098:23])
local variables: self=IN!AbstractAbstractTreeNode, forEach=Sequence {IN!ExceptionHandlerNode, IN!ReturnNode}, subRule=IN!ExceptionHandlerNode, forEach=Sequence {IN!<unnamed>, IN!<unnamed>, IN!<unnamed>}, ipe=IN!<unnamed>
at process#236(ATLCompiler.atl[1088:5-1088:36])
local variables: self=IN!AbstractAbstractTreeNode
at process#2066(ATLCompiler.atl[463:3-463:24])
local variables: self=IN!transformate2startek
at main#37(ATLCompiler.atl)
local variables: self=ATLCompiler : ASMModule, WriteTo='transformate2startek.asm'
Is it illegal to have rule inheritance with multiple source elements? I don't think so, as atl2004 compiles the program, but it cannot be run then, as the abstract rule has an abstract output element.
Thanks for your help.
|
|
| | |
Goto Forum:
Current Time: Fri Apr 26 18:45:43 GMT 2024
Powered by FUDForum. Page generated in 0.03459 seconds
|