小编Phi*_*tel的帖子

Haskell Megaparsec - 保留字解析为标识符

我正在尝试用 lamdba 表达式解析一种简单的语言。但runParser expr "lamdbda(x) (return x)返回Right (Var "lamdba")而不是Right (Lambda ["x"] (Return (Var "x")))

\n\n

我的猜测是,我必须try在某个地方添加一个,但我不知道在哪里。lambdaExpr正确解析 lamdbas。

\n\n

AST.HS

\n\n
data Expr = Const Integer\n          | BinOp Op Expr Expr\n          | Neg Expr\n          | If Expr Expr Expr\n          | Var String\n          | Lambda [String] Stmt\n  deriving (Show, Eq)\n\ndata Op = Multiply\n        | Divide\n        | Add\n        | Subtract\n  deriving (Show, Eq)\n\ndata Stmt = Decl String Expr\n          | Seq [Stmt]\n          | Print Expr\n …
Run Code Online (Sandbox Code Playgroud)

haskell megaparsec

5
推荐指数
1
解决办法
785
查看次数

标签 统计

haskell ×1

megaparsec ×1