Haskell-src-exts抛出TemplateHaskell错误

时间:2015-10-05 18:11:20

标签: parsing haskell abstract-syntax-tree template-haskell

我试图使用haskell-src-exts包来解析Haskell模块。目前,我正在尝试解析acme-io软件包的模块,但无论我尝试使用哪种解析模式,我都会收到此错误:

*** Exception: fromParseResult: Parse failed at [System/IO/Unsafe/Really/IMeanIt] (1:57): TemplateHaskell is not enabled

上面提到的模块没有引用TemplateHaskell,也没有引用LANGUAGE编译指示,源文件中也没有$

我想知道我的解析模式是否与它有关 - 这就是:

defaultParseMode { parseFilename = toFilePath m
                 , baseLanguage = Haskell2010
                 , extensions = []
                 , ignoreLanguagePragmas = True
                 , ignoreLinePragmas = True
                 , fixities = Nothing
                 }

我还尝试将extensions字段替换为knownExtensions @SuppressWarnings("checkstyle:javadocmethod") ,但没有任何运气。

1 个答案:

答案 0 :(得分:1)

这是this answer的重复问题 - 使用parseFile函数修复了问题。但是,读者应该注意haskell-src-exts使用与GHC不同的解析 - 在此之后我遇到了另一个类似的问题,因为haskell-src-exts can't handle multi-param contexts without -XMultiParamTypeClasses, yet GHC can,如果你正在抓取Hackage,那就解析一下解析器。 Hint可能是更好的选择,但不能肯定地说。