我希望能够使用for循环遍历一个typedef值数组,如下所示:
typedef chanArray {
chan ch[5] = [1] of {bit};
}
chanArray comms[5];
active proctype Reliable() {
chanArray channel;
for ( channel in comms ) {
channel.ch[0] ! 0;
}
}
Spin会出现以下错误:
spin: test2.pml:8, Error: for ( channel in .channel_name ) { ... }
是否可以在此表单中使用for循环来遍历数组,而不必使用带索引指针的for循环?
答案 0 :(得分:2)
尝试:
active proctype Reliable () {
byte index;
index = 0;
do
:: index < 5 -> channel.ch[index] ! 0; index++
:: else -> break
od
}
这是唯一的方法。所以答案是'你有可能......'的问题是'不,这是不可能的......'
答案 1 :(得分:1)
我是Promela的新手,但似乎你正在使用
for '(' varref in channel ')' '{' sequence '}'
而不是
for '(' varref ':' expr '..' expr ')' '{' sequence '}'
尝试使用类似
的内容int i;
for (i : 0..4 ) {...}