考虑以下有效的Alex源文件:
{
module Main (main) where
}
%wrapper "basic"
tokens :-
$white ;
. { rule "!"}
{
type Token = String
rule tok = \s -> tok
main = do
s <- getContents
mapM_ print (alexScanTokens s)
}
我很想把我的帮助代码放在文件顶部,在所有规则之前。我试过这样做:
{
module Main (main) where
}
%wrapper "basic"
{
type Token = String
rule tok = \s -> tok
}
tokens :-
$white ;
. { rule "!"}
{
main = do
s <- getContents
mapM_ print (alexScanTokens s)
}
但出现以下错误:
test.x:11:2: parse error
(第 11 行是我的帮助代码之后的右花括号)
有没有办法将我的帮助代码移近文件顶部?
我还尝试将帮助程序代码与“module Main”声明一起放在第一个块中,但这不起作用,因为“%wrapper”位会生成一些导入语句,这些语句需要在生成的文件中作为第一件事出现。