Haskell/Alex:警告:制表符

Haskell/Alex: Warning: Tab character

我正在用 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 的警告(通过 cabal)的方法?

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

ghc-options: -fno-warn-tabs

到您的 .cabal 文件。