【问题标题】:Haskell-src-exts throws TemplateHaskell errorHaskell-src-exts 抛出 TemplateHaskell 错误
【发布时间】:2015-10-05 18:11:19
【问题描述】:

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

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

提到的模块没有引用 TemplateHaskell,不在它的 LANGUAGE pragma 中,也没有在源文件中的任何地方有 $

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

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

我还尝试将extensions 字段替换为来自the parsing suiteknownExtensions,但没有任何运气。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      相关资源
      最近更新 更多