[ATL] combined rules don't work [message #50794] |
Thu, 05 July 2007 08:37  |
Eclipse User |
|
|
|
Originally posted by: heggly.gmx.net
Hi,
I got two rules (returnType and moduleName) accessing the same metamodel and
creating instances of EClass and EAttribute respectively.
Every rule on its own works fine, but when trying to use both rules in one
module (test.atl) I get this strange error message...
Any ideas???
Thanks a lot,
Felix.
****** BEGIN Stack Trace
message: trying to register several rules as default for element
IN!<unnamed>: 'returnType' and 'moduleName'
A.main() : ??#28 null
local variables = {self=test : ASMModule}
local stack = []
A.__matcher__() : ??#3 null
local variables = {self=test : ASMModule}
local stack = []
A.__matchmoduleName() : ??#36 null
local variables = {a=IN!<unnamed>, self=test : ASMModule}
local stack = []
NativeOperation public static void
org.atl.engine.vm.nativelib.ASMTransientLinkSet.addLink(org. atl.engine.vm.StackFrame,org.atl.engine.vm.nativelib.ASMTran sientLinkSet,org.atl.engine.vm.nativelib.ASMTransientLink)
args = [TransientLinkSet {TransientLink {rule = 'returnType', sourceElements
= {s = IN!<unnamed>}, targetElements = {t = OUT!<notnamedyet>}, variables =
{}}}, TransientLink {rule = 'moduleName', sourceElements = {a =
IN!<unnamed>}, targetElements = {b = OUT!<notnamedyet>}, variables = {}}]
****** END Stack Trace
Execution terminated due to error (see launch configuration to allow
continuation after errors).
|
|
|
Re: [ATL] combined rules don't work [message #50825 is a reply to message #50794] |
Thu, 05 July 2007 09:51   |
Eclipse User |
|
|
|
Hello,
You get this error message because you try to match the same element (at
least) twice with standard rules.
You may not actually want to do this, and your guards may accidentally
make the sets of matched elements overlap. Please, check if it is the case.
However, if you really do want to match the same element several times,
you may use (unique) lazy rules to achieve this.
Regards,
Frédéric Jouault
Felix Förster wrote:
> Hi,
>
> I got two rules (returnType and moduleName) accessing the same metamodel and
> creating instances of EClass and EAttribute respectively.
> Every rule on its own works fine, but when trying to use both rules in one
> module (test.atl) I get this strange error message...
> Any ideas???
> Thanks a lot,
> Felix.
>
>
> ****** BEGIN Stack Trace
> message: trying to register several rules as default for element
> IN!<unnamed>: 'returnType' and 'moduleName'
> A.main() : ??#28 null
> local variables = {self=test : ASMModule}
> local stack = []
> A.__matcher__() : ??#3 null
> local variables = {self=test : ASMModule}
> local stack = []
> A.__matchmoduleName() : ??#36 null
> local variables = {a=IN!<unnamed>, self=test : ASMModule}
> local stack = []
> NativeOperation public static void
> org.atl.engine.vm.nativelib.ASMTransientLinkSet.addLink(org. atl.engine.vm.StackFrame,org.atl.engine.vm.nativelib.ASMTran sientLinkSet,org.atl.engine.vm.nativelib.ASMTransientLink)
> args = [TransientLinkSet {TransientLink {rule = 'returnType', sourceElements
> = {s = IN!<unnamed>}, targetElements = {t = OUT!<notnamedyet>}, variables =
> {}}}, TransientLink {rule = 'moduleName', sourceElements = {a =
> IN!<unnamed>}, targetElements = {b = OUT!<notnamedyet>}, variables = {}}]
> ****** END Stack Trace
> Execution terminated due to error (see launch configuration to allow
> continuation after errors).
>
>
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03889 seconds