【问题标题】:How can I suppress warnings in generated code?如何抑制生成代码中的警告?
【发布时间】:2015-08-08 18:08:36
【问题描述】:

我正在与 Alex 和 Happy 构建一个词法分析器和解析器。他们生成的代码会在我的项目的 .cabal 文件中打开ghc-options: -Wall 引发大量警告。

这使得很难捕捉到真正的警告。如何仅在生成的文件中关闭警告?我知道它可以通过编译指示来完成:

{#- GHC_OPTIONS -w -#}

但我想不出一种简单的方法来将此 pragma 粘贴在每个生成的文件的顶部,每次重建时。

这样做的正确方法是什么?

【问题讨论】:

  • 如何组织您的 cabal 文件,以便 alex 和 happy 模块位于它们自己的库组件中,并为该组件使用 ghc-options: -w

标签: haskell ghc compiler-warnings generated-code


【解决方案1】:

一个典型的 alex 文件以顶部的一些东西开始 - 通常是一个模块声明,它将被逐字复制到生成的文件中:

{
module Main where
}
%wrapper "basic"
...

所以只需在 module Main ... 行之前添加 GHC_OPTIONS 杂注,例如:

{
{-# GHC_OPTIONS -w #-}
module Main where
}
%wrapper "basic"

它将出现在您生成的文件中。快乐的文件也可以这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 2010-12-08
    • 2019-04-23
    • 2019-01-09
    • 1970-01-01
    • 2010-11-08
    • 2017-04-11
    相关资源
    最近更新 更多