Haskell/Alex:警告:制表符

Haskell/Alex:警告:制表符,haskell,cabal,alex,Haskell,Cabal,Alex,我正在用haskell写一个玩具语言。我正在使用Alex生成一个扫描仪。每次我与cabal一起构建项目时,都会收到以下警告: dist/build/optimiser/optimiser-tmp/Lexer.hs:465:1: Warning: Tab character dist/build/optimiser/optimiser-tmp/Lexer.hs:466:1: Warning: Tab character dist/build/optimiser/optimise

我正在用haskell写一个玩具语言。我正在使用Alex生成一个扫描仪。每次我与cabal一起构建项目时,都会收到以下警告:

dist/build/optimiser/optimiser-tmp/Lexer.hs:465:1: Warning:
    Tab character

dist/build/optimiser/optimiser-tmp/Lexer.hs:466:1: Warning:
    Tab character

dist/build/optimiser/optimiser-tmp/Lexer.hs:467:1: Warning:
    Tab character

dist/build/optimiser/optimiser-tmp/Lexer.hs:471:1: Warning:
    Tab character

dist/build/optimiser/optimiser-tmp/Lexer.hs:472:1: Warning:
    Tab character

(plus about 10 more of these warnings)
alex生成的扫描器似乎使用制表符而不是空格,ghc的默认行为是警告用户这一点


有没有人知道有什么方法可以强迫alex使用空格,或者压制ghc(通过阴谋集团)发出的警告?

如评论中所述,这在alex master中应该是固定的。在可以使用固定版本之前,您可以尝试添加

ghc-options: -fno-warn-tabs

这个警告是由Alex中的一个bug引起的,两周前Simon Marlow已经修复了这个bug。看见尝试获取Alex的最新版本。@Jubobs很高兴知道,谢谢你的提醒。更新似乎还没有达到黑客或我的分发的回购协议,但我可以容忍这个问题,直到那时。有可能使该标志只适用于Alex生成的模块吗?它看起来像一把重锤。事实上。。。我不相信这是固定的。您指向的提交只会从Alex源代码中删除选项卡,而不会从它生成的代码中删除选项卡。目前来说,这样做很好。干杯。@dfeuer你不能手动将
{-#GHC#u OPTIONS}
放到Alex输入文件的顶部吗?@MathematicalArchid应该是
OPTIONS\u GHC
。因此,需要明确的是:
{-#OPTIONS_GHC-fno warn tabs#-}
应该位于
.x
的顶部。