在 title 模块中有一个叫做 parse 的函数。它有一个类型签名
parse :: String -> ParseResult ast
我已经研究了一段时间,但我不知道如何使用它。我确定它很明显,但我只是没有看到它。提前致谢!
在 title 模块中有一个叫做 parse 的函数。它有一个类型签名
parse :: String -> ParseResult ast
我已经研究了一段时间,但我不知道如何使用它。我确定它很明显,但我只是没有看到它。提前致谢!
Language.Haskell.Exts.Parser 模块处理将 Haskell 源代码解析为适当的语法树。parse
是处理String
将 Haskell 源代码解析为类实例的通用函数Parseable
。对于Exp
(一个 Haskell 表达式), parse 定义为:
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)))