使用 nuXmv 检查模型时出现语法错误
syntax errors in model checking with nuXmv
现在客户有两种选择,phone打电话和发短信到诊所预约医生。 phone 电话或短信需要传递给 phone 出席者或接待处,然后执行下一步...。我们知道,phone 电话和短信可以成功传递或传递失败, fail deliver 的解决方法会按照用户select 或其他
的相同方式继续重试
基于以上背景,我写了一些做模型检测行为的代码来实现。我是 class 的新手,任何人都可以帮助找出我的代码有什么问题。
MODULE call
VAR
option:{call,sms};
call:{successful,fail,again};
sms:{successful,fail,again};
phone_attender:{available,unavailable};
ASSIGN
init(option):=call|sms;
next(call):=case
call=successful:successful;
call=successful&phone_attender=available:{successful,available};
call=fail&phone_attender=fail:{fail,unavailable};
call=fail&phone_attender=fail:{again,unavailable};
call=again&phone_attender=successful:{again,available};
1:{successful,fail,again};
esac;
next(sms):=case
sms=successful&phone_attender:successful{successful};
sms=fail&phone_attender=fail:{fail,unavailable};
sms=fail&phone_attender=fail:{again,unavailable};
sms=again&phone_attender=successful:{again,available};
1:{successful,fail,again};
next(phone_attender):=case
phone_attender=available(call=successful|call=again)&(sms=successful|sms=again);
phone_attender=unavailable(call=fail|call=again)&(sms=fail|sms=again);
1:phone_attender;
esac;
使用 nuXmv 在终端中总是会出现语法错误和 运行。
第 20 行:
file test.smv: line 20: at token "{": syntax error
问题由以下条件给出:
sms=successful&phone_attender:successful{successful};
值 successful{successful}
没有任何意义,请在 successful
或 {succesful}
之间选择。两者的解释方式相同。
第 26 行:
file test.smv: line 26: at token ":=": syntax error
您没有关闭上一个作业的 case
结构。在最后一个条件后添加esac;
。
第 28/29 行:
file test.smv: line 28: at token ";": syntax error
file test.smv: line 29: at token ";": syntax error
对于前两种情况,您没有提供 phone_attender
的 下一个值 。
注意:我没有检查你的模型的语义,因为它甚至在语法上都不正确。
现在客户有两种选择,phone打电话和发短信到诊所预约医生。 phone 电话或短信需要传递给 phone 出席者或接待处,然后执行下一步...。我们知道,phone 电话和短信可以成功传递或传递失败, fail deliver 的解决方法会按照用户select 或其他
的相同方式继续重试基于以上背景,我写了一些做模型检测行为的代码来实现。我是 class 的新手,任何人都可以帮助找出我的代码有什么问题。
MODULE call
VAR
option:{call,sms};
call:{successful,fail,again};
sms:{successful,fail,again};
phone_attender:{available,unavailable};
ASSIGN
init(option):=call|sms;
next(call):=case
call=successful:successful;
call=successful&phone_attender=available:{successful,available};
call=fail&phone_attender=fail:{fail,unavailable};
call=fail&phone_attender=fail:{again,unavailable};
call=again&phone_attender=successful:{again,available};
1:{successful,fail,again};
esac;
next(sms):=case
sms=successful&phone_attender:successful{successful};
sms=fail&phone_attender=fail:{fail,unavailable};
sms=fail&phone_attender=fail:{again,unavailable};
sms=again&phone_attender=successful:{again,available};
1:{successful,fail,again};
next(phone_attender):=case
phone_attender=available(call=successful|call=again)&(sms=successful|sms=again);
phone_attender=unavailable(call=fail|call=again)&(sms=fail|sms=again);
1:phone_attender;
esac;
使用 nuXmv 在终端中总是会出现语法错误和 运行。
第 20 行:
file test.smv: line 20: at token "{": syntax error
问题由以下条件给出:
sms=successful&phone_attender:successful{successful};
值 successful{successful}
没有任何意义,请在 successful
或 {succesful}
之间选择。两者的解释方式相同。
第 26 行:
file test.smv: line 26: at token ":=": syntax error
您没有关闭上一个作业的 case
结构。在最后一个条件后添加esac;
。
第 28/29 行:
file test.smv: line 28: at token ";": syntax error
file test.smv: line 29: at token ";": syntax error
对于前两种情况,您没有提供 phone_attender
的 下一个值 。
注意:我没有检查你的模型的语义,因为它甚至在语法上都不正确。