为什么以下 Promela 代码仅在N >= 34
时返回错误?
#define N 34
active proctype proc1() {
byte i;
select(i: 1 .. N); //line 5
do
:: true ->
printf("Hi");
:: true ->
break;
od
}
错误是:
spin: prova.pml:5, Error: syntax error saw 'keyword: do' near 'do'
我真的找不到错误。使用N <= 33
它可以正常工作。
这是一个错误吗?
答案 0 :(得分:0)
是的,这是一个错误。
将您的Spin
版本更新为6.4.7
或更高版本。
版本6.4.7
的{{3}}提及:
- 修复了解析select(...)语句时出现的错误,当使用更大的范围时,这可能导致无理由的语法错误
我无法使用版本6.4.8
重现您的问题,但它最终存在于版本6.4.6
中。