在模块化解析器规范中抑制“永不有用”的优先级警告?

时间:2017-12-17 00:30:45

标签: ocaml menhir

是否可以在menhir中禁止未使用的优先级警告?

背景:

我有一个带有多个规则的核心解析器Lib.mly,还有一些额外的解析器(A.mlyB.mly,......),它们使用{{1}的定义}。为了支持对所有语言使用单个词法分析器,所有令牌都在Lib.mly中定义,我们在Lib.mly中使用external_tokens(Lib)注释并扩展_tags以禁止使用未使用的令牌警告myocamlbuild.ml显着有帮助。但是,我仍然会收到许多警告:

--unused-tokens

这使得很难看到我真正想要解决的其他警告。运算符的不同子集以各种语言使用,因此我需要有一个“全局”优先级来对它们进行适当的排序。感谢您的任何提示!

2 个答案:

答案 0 :(得分:6)

截至今天,Menhir有了一个新选项--unused-precedence-levels

如果您有分解在多个文件上的语法示例,我可能有兴趣查看它们(如果允许的话,可能会在Menhir的测试套件中包含其中一些)。

答案 1 :(得分:0)

不确定这是否是您正在搜索的内容,但以下两个选项可能有用:

--unused-token <token>           Do not warn that <token> is unused
--unused-tokens                  Do not warn about any unused token