当使用 Alex lexer 生成器或 Happy 解析器生成器创建 aLexer.x
或解析器时,将它们编译成 Haskell 文件,并将它们编译成目标文件,默认情况下这将生成以下“警告”:Parser.y
$ ghc Lexer
line-map.c: file "<command-line>" left but not entered
line-map.c: file "<command-line>" left but not entered
[1 of 1] Compiling Lexer ( Lexer.hs, Lexer.o )
$ happy Parser.y
$ ghc Parser
line-map.c: file "<command-line>" left but not entered
line-map.c: file "<command-line>" left but not entered
[2 of 2] Compiling Parser ( Parser.hs, Parser.o )
这些行是由于生成的.hs
文件中嵌入了以下行而出现的:
{-# LINE 1 "<command-line>" #-}
为什么包括这些行,如果命令行显然没有用于生成的词法分析器和解析器中的任何内容,是否有办法抑制这些消息?