如何抑制生成代码中的警告?
How can I suppress warnings in generated code?
我正在与 Alex 和 Happy 一起构建词法分析器和解析器。他们生成的代码在我项目的 .cabal 文件中打开 ghc-options: -Wall
时抛出大量警告。
这使得很难捕捉到真正的警告。如何仅在生成的文件中关闭警告?我知道这可以用 pragma 来完成:
{#- GHC_OPTIONS -w -#}
但我想不出一个简单的方法来将此 pragma 粘贴在每个生成的文件的顶部,每次重建它们时。
正确的做法是什么?
一个典型的 alex 文件以顶部的一些内容开始——通常是一个模块声明,它将被逐字复制到生成的文件中:
{
module Main where
}
%wrapper "basic"
...
所以只需在 module Main ...
行之前添加 GHC_OPTIONS pragma,例如:
{
{-# GHC_OPTIONS -w #-}
module Main where
}
%wrapper "basic"
它会出现在您生成的文件中。快乐的文件也可以这样做。
我正在与 Alex 和 Happy 一起构建词法分析器和解析器。他们生成的代码在我项目的 .cabal 文件中打开 ghc-options: -Wall
时抛出大量警告。
这使得很难捕捉到真正的警告。如何仅在生成的文件中关闭警告?我知道这可以用 pragma 来完成:
{#- GHC_OPTIONS -w -#}
但我想不出一个简单的方法来将此 pragma 粘贴在每个生成的文件的顶部,每次重建它们时。
正确的做法是什么?
一个典型的 alex 文件以顶部的一些内容开始——通常是一个模块声明,它将被逐字复制到生成的文件中:
{
module Main where
}
%wrapper "basic"
...
所以只需在 module Main ...
行之前添加 GHC_OPTIONS pragma,例如:
{
{-# GHC_OPTIONS -w #-}
module Main where
}
%wrapper "basic"
它会出现在您生成的文件中。快乐的文件也可以这样做。