Parenthesis in macro arguments

0 votes
asked Feb 7, 2018 in Bug by Andreas K├ągedal

The three signals below should look the same, but they don't. The first version, where there are no citations around the third argument, the 'data(addr-inf)' is not rendered correctly.

!definelong CALL(from,to,message)
from -> to : message

CALL(SysService, SMW, mysignal(data(addr-inf), a))
CALL(SysService, SMW, "mysignal(data(addr-inf), a)")
SysService -> SMW : mysignal(data(addr-inf), a)
commented Feb 14, 2018 by Andreas K├ągedal
Is this a bug?
the arguments

  data(addr-inf), a

are renderd as

  data(addr-inf, a)

I realize you have lots of things to do, and maybe this is not at the top of your list. But just having a ack that you agree that this needs to be fixed at some point would be great.

1 Answer

0 votes
answered Feb 18, 2018 by Anthony-Gaudino (5,740 points)
The first looks wrong, it's like you're trying to pass 4 arguments to a macro that only accepts 3.

Also if you use parenthesis on macros they must be quoted.

This example works:
commented Feb 27, 2018 by andreas.kagedal (260 points)
OK, I understand. The macro-mechanism does note handle parenthesis in arugments in any "intelligent" way. They are just another character.