为我的解析器编译以下规则时遇到问题:
%%
表达式:
| expr ASN expr { Asn ($1, $2) }
这是一个赋值规则,它接受一个整数,然后是赋值(等号)和一个表达式,如我的 AST 中所定义:
type expr = Asn of int * expr
当然,编译器会抱怨,因为我正在定义“ expr ASN expr”,第一个参数应该是整数,而不是表达式。但是,我无法弄清楚指定这一点的语法。
如果有人能引导我朝着正确的方向前进,我将不胜感激。
谢谢!