Promela上的奇怪错误 - 错误:语法错误看到'关键字:do'靠近'做'

时间:2018-03-16 17:01:47

标签: spin promela

为什么以下 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它可以正常工作。

这是一个错误吗?

1 个答案:

答案 0 :(得分:0)

是的,这是一个错误。

将您的Spin版本更新为6.4.7或更高版本。

版本6.4.7的{​​{3}}提及:

  
      
  • 修复了解析select(...)语句时出现的错误,当使用更大的范围时,这可能导致无理由的语法错误
  •   

我无法使用版本6.4.8重现您的问题,但它最终存在于版本6.4.6中。