如何在生成的代码中禁止警告?

Pat*_*ins 2 haskell compiler-warnings ghc generated-code

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

这使得很难捕捉到真正的警告.如何仅在生成的文件中关闭警告?我知道可以用pragma完成:

{#- GHC_OPTIONS -w -#}
Run Code Online (Sandbox Code Playgroud)

但是我想不出一个简单的方法可以在每次生成的文件的顶部粘贴这个pragma,每次重建它们.

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

Eri*_*ikR 5

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

{
module Main where
}
%wrapper "basic"
...
Run Code Online (Sandbox Code Playgroud)

所以只需在行之前添加GHC_OPTIONS编译指示module Main ...,例如:

{
{-# GHC_OPTIONS -w #-}
module Main where
}
%wrapper "basic"
Run Code Online (Sandbox Code Playgroud)

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