标题模块中有一个名为parse的函数。它有一个类型签名
parse :: String -> ParseResult ast
我一直在工作一段时间,我无法弄清楚如何使用它。我确定它显而易见但我只是没有看到它。提前致谢!
答案 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)))