我正在实现一种小型编程语言。这是代码库。该程序是用ocamlbuild构建的。我使用menhir添加了一个解析器。当我编译和运行程序时,我收到以下消息。
❱ ./main.byte
Fatal error: exception Parser.MenhirBasics.Error我试图通过将explain传递给_tag文件来查找更多的细节。
true: color(always), explain但似乎没有什么区别。如何使menhir通过ocamlbuild生成日志文件?或者其他的调试方法?
发布于 2021-12-29 09:36:38
这是menhir生成的解析器引发的语法错误。
您的构建系统与此无关(不过,您应该将dune用于一个新项目,而不是ocamlbuild)。
类似地,--explain标记menhir仅用于生成解析器时的冲突解释。它不向语法错误添加语法错误解释。
如果要调试menhir语法,可以在menhir --interpret中使用menhir整数模式。
menhir --interpret parser.mly或者用menhir --list-errors列出语法中所有可能的语法错误。
menhir --list-errors parser.mly这两个选项都应该成为‘嗨’的原因。是语法中的一个相对清晰的语法错误。
https://stackoverflow.com/questions/70515803
复制相似问题