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

问题描述 投票:5回答:2

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

背景:

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

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

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

ocaml menhir
2个回答
6
投票

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

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


0
投票

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

--unused-token <token>           Do not warn that <token> is unused
--unused-tokens                  Do not warn about any unused token
© www.soinside.com 2019 - 2024. All rights reserved.