| where to define a variable? [message #968648] |
Fri, 02 November 2012 12:34  |
Kosala Yapa Messages: 133 Registered: September 2010 |
Senior Member |
|
|
Hi there,
In an atl rule, where can i define a variable ?
I defined in "using block", but it looks like a constant.
using{
n:Integer=1;
}
Thanks
K
|
|
|
|
| Re: where to define a variable? [message #972418 is a reply to message #971999] |
Mon, 05 November 2012 11:05   |
Kosala Yapa Messages: 133 Registered: September 2010 |
Senior Member |
|
|
Hi Hugo,
Thanks a mil for your reply.
helper context source!DeviceItem def: getModules():
Sequence(source!ModuleItem)= self.ModuleList.ModuleItem->select(mi|mi.getSlotValue()<>'0')->sortedBy(mi|mi.getSlotValue().toInteger());
I defined following two integer variables and do block in a lazy rule and later changed in a for loop.
problem: I always get num as 0. Can you see the error?
using{
num:Integer=0;
index:Integer=1;
}
do{
for(m2 in a.getModules())
{
num = m2.getSlotValue().toInteger()-index;
if ( num<>0)
{
p.Modules<-thisModule.rule_getNullModule(m2);
}
else
{
p.Modules<-thisModule.rule_getModule(m2);
}
index = index+1;
}-- for all Modules
}--end do
Thanks.
K
[Updated on: Mon, 05 November 2012 11:25] Report message to a moderator
|
|
|
| Re: where to define a variable? [message #972498 is a reply to message #972418] |
Mon, 05 November 2012 12:20  |
Hugo Bruneliere Messages: 465 Registered: July 2009 |
Senior Member |
|
|
Variable (re)assignments in do sections have to performed using the <- operator and not the = one.
Best regards,
Hugo
------------------------------------------
Hugo Bruneliere - R&D Engineer
AtlanMod research team (Inria, EMN & LINA)
Ecole des Mines de Nantes
Nantes - France
------------------------------------------
|
|
|
Powered by
FUDForum. Page generated in 0.02069 seconds