在模块化解析器规范中抑制 "never useful" 优先警告?

Suppress "never useful" precedence warning in modular parser specifications?

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

背景:

我有一个核心解析器 Lib.mly,它有几个规则,另外还有许多额外的解析器(A.mlyB.mly、...),它们使用 Lib.mly。为了支持对所有语言使用单个词法分析器,所有标记都在 Lib.mly 中定义,我们在 _tags 中使用 external_tokens(Lib) 注释并扩展 myocamlbuild.ml 以抑制未使用的标记警告--unused-tokens 这有很大帮助。但是,我仍然收到许多形式的警告:

File "parsers/ParserLib.mly", line 126, characters 0-9:                     
Warning: the precedence level assigned to FIX is never useful.              

这些让我很难看到我真正想要解决的其他警告。运算符的不同子集用于各种语言,因此我需要一个 "global" 优先级来适当地对它们进行排序。感谢您提供任何提示!

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

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

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

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