【发布时间】:2017-12-01 00:25:29
【问题描述】:
我正在尝试在 Haskell 中编写解析器,但在编译时遇到了问题。错误是“输入'模块'上的解析错误。我可以通过去掉括号来修复这个错误,但是错误只是切换到“输入“%”上的解析错误。我也尝试删除 module Main where 行,但这仍然给我输入“%”的错误。
{
module Main where
}
%name parser
%tokentype { Token }
%error { parseError }
%token
...
【问题讨论】:
-
您正在运行的命令的确切顺序是什么?
-
@DanielWagner 我正在使用命令
:l Main.hs -
这是一个快乐的语法——它应该有一个
.y后缀,你需要在将它加载到 GHCi 之前使用happy编译它。请注意,如果这是更大项目的一部分,Cabal 可以为您处理第二部分(只需确保在build-tools中包含happy)。 -
好的。这不是 Haskell 代码,不能被 ghc(i) 直接使用。大概您是从教程或类似教程中获得此代码的;您应该查阅教程以确定构建此代码的正确方法。它需要通过某种工具(可能是 alex 或 happy?)进行预处理以生成 Haskell 代码。
标签: haskell