Эта ошибка
spin: frogs.pml:25, Error: syntax error saw 'data typename' near 'int'
вызвана тем, что разделитель списка аргументов для объявления proctype
равен ;
, а не ,
.
Вы можете устранить ошибку go, изменив
proctype frogJump(int frogNum, int frogDirection)
на этот
proctype frogJump(int frogNum; int frogDirection)
В случае встроенных функций , правильный список аргументов разделитель действительно ,
, например
inline recv(cur_msg, cur_ack, lst_msg, lst_ack)
{
do
:: receiver?cur_msg ->
sender!cur_ack; break /* accept */
:: receiver?lst_msg ->
sender!lst_ack
od;
}
Второе сообщение об ошибке
spin: frogs.pml:30, Error: syntax error saw 'an identifier' near 'end'
, вероятно, является лишь побочным эффектом неправильного дерева синтаксического анализа в результате первой синтаксической ошибки, и должны соответственно исчезать при ее исправлении.