| [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.05984 seconds