我的promela语法错误在哪里?

时间:2013-10-01 19:32:24

标签: spin promela

我看起来太傻了。日志显示我的语法错误在哪里(第12,22和25行),我读了一些教程,但找不到错误..

程序非常简单,它应该通过同步通道计算0和1的数量。

这是我的代码:

1   
2   chan ch = [0] of {bool};
3   byte zero, one;
4   bool message;
5   
6   proctype A() {
7   startA: 
8   if
9   :: ch ! 0
10  :: ch ! 1
11  fi
12  goto startA
13  }
14  
15  proctype B() {
16  startB:
17  ch ? message;
18  if
19  :: message -> one++
20  :: ! message -> zero++
21  fi
22  goto startB
23  }
24  
25  init { atomic {run A(); run B()} }

我的语法错误:

spin: firstchannel.pml:12, Error: syntax error  saw 'keyword: goto' near 'goto'
spin: firstchannel.pml:22, Error: syntax error  saw 'keyword: goto' near 'goto'
spin: firstchannel.pml:25, Error: proctype A not found

我很乐意提示......

1 个答案:

答案 0 :(得分:1)

事实证明,在if语句之后我需要用分号。