You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Spin命令处理PML文件时出现语法错误及NVR文件相关求助

问题解决:Spin工具运行PML文件时的语法错误问题

疑问1:如何查看modex_model3.pml.nvr文件

  • modex_model3.pml.nvr是Spin在分析过程中生成的临时中间文件,默认保存在你执行命令的当前工作目录下。
  • 直接用任意文本编辑器(如Vim、Nano、Notepad++、VS Code等)打开该文件即可查看内容。注意:当Spin报错中断后,这个文件通常不会自动删除,你可以直接在当前目录找到它。

疑问2:错误中的"/"代表什么含义

错误提示里的''/' = 47'是指Spin的词法分析器识别到了ASCII码为47的字符(即正斜杠/),但该字符在当前的语法上下文里是不合法的。出现这个问题的原因通常是:

  • 你输入的LTL公式存在语法错误,导致Spin在生成中间文件时错误引入了/字符;
  • 原PML文件中存在格式错误(比如未闭合的注释、非法字符),触发了词法解析异常。

解决步骤

  1. 修正LTL公式的语法错误
    你当前命令中的LTL公式使用了非法的-运算符,Spin中表示逻辑蕴含关系应该用->,而不是-。原公式的逻辑是“当states==stop && currentspeed==0 && timeGap==0成立时,controlAction必须等于fullystop”,修正后的公式应为:

    !([] ((states==stop && currentspeed==0 && timeGap==0) -> (controlAction==fullystop)))
    
  2. 使用正确的命令重新运行
    把修正后的公式用引号包裹(避免Shell解析特殊字符),执行以下命令:

    spin -f "!([] ((states==stop && currentspeed==0 && timeGap==0) -> (controlAction==fullystop)))" -a -lm modex_model3.pml
    
  3. 检查原PML文件的语法
    如果修正公式后仍报错,打开modex_model3.pml检查:

    • 是否存在未闭合的注释(Spin支持/* ... */块注释和//单行注释);
    • 是否存在其他非法字符或语法错误(比如变量定义、进程逻辑的语法问题)。

内容的提问来源于stack exchange,提问作者kiki Shao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:22:27