我有一个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 的期望。