gpt4 book ai didi

haskell - 使用 haskell-src-exts 解析 UnicodeSyntax

转载 作者:行者123 更新时间:2023-12-04 02:19:10 24 4
gpt4 key购买 nike

我有一个使用 Unicode 语法的 Haskell 源文件:

{-# LANGUAGE UnicodeSyntax #-}
succ' :: Int → Int
succ' = succ

main :: IO ()
main = print $ succ' 1

这可以使用 GHC 解析并运行良好。此外,style-haskell 和 hlint(均基于 haskell-src-exts)可以毫无问题地读取此文件。但是,当我尝试使用 haskell-src-exts 自己解析它时:
import Language.Haskell.Exts (parseModule)

main = do
x <- readFile "test.hs"
print $ parseModule x

我收到错误消息:
ParseFailed (SrcLoc {srcFilename = "<unknown>.hs", srcLine = 6, srcColumn = 1}) "TypeOperators is not enabled"

但是,在扩展列表中显式提供 UnicodeSyntax 或使用 parseFile 就可以了:
import Language.Haskell.Exts

main = do
x <- readFile "test.hs"
print $ parseModuleWithMode defaultParseMode
{ extensions = [UnicodeSyntax]
} x

parseFile "test.hs" >>= print

知道为什么第一种方法会失败吗?

最佳答案

粗略看了一下源代码,它看起来不像 parseModule在解析之前从源中提取语言编译指示( parseFile 通过调用 getExtensions 来做到这一点)。当解析开始时,启用 unicode 语法已经太晚了。

关于haskell - 使用 haskell-src-exts 解析 UnicodeSyntax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15784076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com