我有一个tokens.ml文件,里面有一个type token声明。我也有tokens.mli同样的type token说法。现在,我有一个parser.mly使用tokens.mly. 我想把我的令牌tokens.ml/mli和我的解析器放在parser.mly.
所以,我尝试使用命令编译我的解析器
menhir parser.mly --table --explain --external-tokens Tokens
这给了我一个错误,说我的一个令牌不存在。具体来说,
File "parser.mly", line 173, characters 4-12:
Error: OPERATOR is undefined.
因此,menhir 没有找到该Tokens模块。我不知道如何使它对menhir. 我尝试创建一个tokens.cma库,但即便如此,我仍然会遇到同样的错误。
Menhir 似乎并不关心模块是否不存在,因为如果我运行命令
menhir parser.mly --table --explain --external-tokens SomeNonExistentModule
它仍然给出关于OPERATOR未定义的相同错误。
如何让 Menhir 找到我的令牌模块。我宁愿不使用 ocamlbuild。如果您建议使用 ocamlbuild 解决方案,请至少说明我可以执行的中间手动步骤。我想了解 Menhir 的期望。