我会在spinroot 错误报告中发布此内容,但 spinroot 论坛目前不接受新用户...如果负责该内容的人正在阅读此内容,请让我进来 :)
当我尝试使用 select 语句时,发生了一些非常奇怪的事情。Promela 不允许select()
在结构的字段上调用,所以我必须像这样创建一个临时变量:
typedef someStruct {
int someField;
}
someStruct struct;
inline SetSelect() {
int temp;
select(temp: -1 .. 1);
struct.someField = temp;
}
init{
SetSelect();
}
这运行良好。我对其进行了测试,并struct.someField
正确设置为 -1、0 或 1。但是,当我尝试将内联代码直接放入init()
进程时,出现语法错误。代码如下所示:
typedef someStruct {
int someField;
}
someStruct struct;
init{
int temp;
select(temp: -1 .. 1);
struct.someField = temp;
}
错误信息是:
spin: select_test.pml:9, Error: syntax error saw ''-' = 45'