2015-08-08 78 views
2

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

这使得难以发现真正的警告。我怎样才能关闭生成的文件内的警告?我知道它可以用编译完成:

{#- GHC_OPTIONS -w -#} 

但我不能想到的所有他们正在重建时一个简单的方法,在每个生成的文件的顶部坚持这个附注。

什么是正确的方法来做到这一点?

+0

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

回答

5

一个典型的亚历克斯文件开头的一些东西在上面 - 通常这将获得逐字复制到生成的文件中的模块声明:

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

所以只需添加GHC_OPTIONS编译的module Main ...前行,如:

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

它会出现在您生成的文件中。同样可以用愉快的文件完成。