我正在尝试在Haskell中编写解析器,并且在编译时遇到问题。错误是输入'模块"解析错误。我可以通过删除括号来修复此错误,但随后错误只会切换到"解析输入"%"上的错误。我还尝试删除了module Main where
行,但仍然给我输入错误"%"。
{
module Main where
}
%name parser
%tokentype { Token }
%error { parseError }
%token
...
答案 0 :(得分:6)
你所拥有的不是Haskell文件。看起来它是解析器生成器的语法文件(可能是Happy)。
您应该首先重命名语法文件以使用.y
文件扩展名,因为它是语法文件而不是Haskell源代码文件。然后,调用解析器生成器从Main.hs
中生成Main.y
happy Main.y
最后,您可以使用此生成的Main.hs
文件并使用ghc运行它。