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

Circom编译简单乘法电路遇语法错误:期望EOF等却得到'.'

编译Circom乘法电路时的解析错误排查

问题重现

我尝试编译一个简单的乘法Circom电路,代码如下:

pragma circom 2.0.0;

template Multiplier2() {
 signal input a;
 signal input b;
 signal output c; 
 c <== a*b;
}

component main = Multiplier2();

执行编译命令:

circom multiplier2.circom --r1cs --wasm --sym --c

出现解析错误:

Error: Parse error on line 1:pragma circom 2.0.0;template Mult---------------^Expecting 'EOF', 'function', 'IDENTIFIER', '(', ')', 'template', ',', 'if', 'else', 'for', ';', 'while', 'do', 'compute', 'return', 'include', '{', '}', '==>', '-->', '===', '?', ':', '||', '&&', '|', '^', '&', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '+', '-', '*', '/', '\', '%', '**', '++', '--', '!', '~', 'DECNUMBER', 'HEXNUMBER', 'var', 'signal', 'component', '[', ']', got '.'

已排查过代码中无多行注释,但错误仍存在。

问题定位与解决方案

错误提示显示解析器在第一行的pragma circom 2.0.0;后直接读到了template,说明代码的换行符或文件格式存在问题,可按以下步骤排查:

  • 检查换行符格式:Circom解析器对换行符敏感,确保文件使用Unix风格的LF换行(而非Windows的CRLF)。可在编辑器中切换换行符格式后重新保存文件。
  • 确认代码换行:确保pragma circom 2.0.0;单独占一行,template定义在新的一行,没有被意外合并到同一行。
  • 排查隐藏特殊字符:检查文件是否带有UTF-8 BOM头或其他不可见特殊字符,可使用纯文本编辑器(如VS Code、Notepad++)打开并重新保存为无BOM的UTF-8编码。

内容的提问来源于stack exchange,提问作者Chol Park

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:52:41