宏的宏定义错误:缺少右括号
Macro Definition error for Macro : Closing parenthesis missing
我在使用宏工具的时候出现了这个错误!
**** 宏 ISsame 的宏定义错误:缺少右括号
我检查了所有括号,这似乎是真的,但我又犯了同样的错误。你能帮我求情吗?
set i/1*5/;
parameter
a(i) /1 1,2 0,3 1,4 0,5 0/
b(i) /1 0,2 1,3 1,4 0,5 0/
c(i) /1 1,2 0,3 1,4 0,5 0/
d(i) /1 1,2 0,3 1,4 0,5 1/
e(i) /1 1,2 1,3 1,4 0,5 1/;
*check two parameter are equal or not
parameter same;
$ontext
same = sum(i, abs(a(i)-b(i)));
if(same > 0,
display 'Parameter a is not equal to parameter b', same;);
$offtext
* Define Macro
$macro ISsame(a(j),b(j)) same = sum(i, abs(a(i)-b(i))); if(same > 0,display 'Parameter a is not equal to parameter b', same;);
* End of Macro definition
* Call Macro
ISsame(a(j),b(j) )
问题出在 ISSame
的参数列表中。这些参数应该是 "pure identifiers",不需要括号,因此您应该将 $macro ISsame(a(j),b(j))
更改为 $macro ISsame(a,b)
。而且,当您调用它时,我猜您想完全传递 a
和 b
。所以,总的来说你应该有这个:
...
* Define Macro
$macro ISsame(a,b) same = sum(i, abs(a(i)-b(i))); if(same > 0,display 'Parameter a is not equal to parameter b', same;);
* End of Macro definition
* Call Macro
ISsame(a,b)
我在使用宏工具的时候出现了这个错误! **** 宏 ISsame 的宏定义错误:缺少右括号 我检查了所有括号,这似乎是真的,但我又犯了同样的错误。你能帮我求情吗?
set i/1*5/;
parameter
a(i) /1 1,2 0,3 1,4 0,5 0/
b(i) /1 0,2 1,3 1,4 0,5 0/
c(i) /1 1,2 0,3 1,4 0,5 0/
d(i) /1 1,2 0,3 1,4 0,5 1/
e(i) /1 1,2 1,3 1,4 0,5 1/;
*check two parameter are equal or not
parameter same;
$ontext
same = sum(i, abs(a(i)-b(i)));
if(same > 0,
display 'Parameter a is not equal to parameter b', same;);
$offtext
* Define Macro
$macro ISsame(a(j),b(j)) same = sum(i, abs(a(i)-b(i))); if(same > 0,display 'Parameter a is not equal to parameter b', same;);
* End of Macro definition
* Call Macro
ISsame(a(j),b(j) )
问题出在 ISSame
的参数列表中。这些参数应该是 "pure identifiers",不需要括号,因此您应该将 $macro ISsame(a(j),b(j))
更改为 $macro ISsame(a,b)
。而且,当您调用它时,我猜您想完全传递 a
和 b
。所以,总的来说你应该有这个:
...
* Define Macro
$macro ISsame(a,b) same = sum(i, abs(a(i)-b(i))); if(same > 0,display 'Parameter a is not equal to parameter b', same;);
* End of Macro definition
* Call Macro
ISsame(a,b)