Language.Haskell.Exts.Parser中的“解析”函数?

时间:2013-07-31 22:58:49

标签: haskell haskell-src-exts

标题模块中有一个名为parse的函数。它有一个类型签名

parse :: String -> ParseResult ast

我一直在工作一段时间,我无法弄清楚如何使用它。我确定它显而易见但我只是没有看到它。提前致谢!

1 个答案:

答案 0 :(得分:3)

Language.Haskell.Exts.Parser模块处理将Haskell源代码解析为适当的语法树。 parse是一个通用函数,用于处理将String Haskell源解析为Parseable类的实例。对于Exp(Haskell表达式),解析定义为:

instance Parseable Exp where
    parse = parseExp

因此,要使用parse函数,只需提供类型声明(如果无法推断)。例如,要解析表达式“5 + 5”:

parse "5 + 5" :: ParseResult Exp

相当于:

parseExp "5 + 5"

在ghci中,他们都回归:

ParseOk (InfixApp (Lit (Int 5)) (QVarOp (UnQual (Symbol "+"))) (Lit (Int 5)))