我正在尝试使用parsec库在haskell中实现语法,但是我遇到了预期的V问题.语法中定义的实际类型,我知道我的问题的答案无疑是简单/明显的,但是有一些我不理解的东西......
随后是数据声明的摘录(应该足以诊断):
data Expr1 = SeqOfExpr1 [Expr1]
| Lambda Expr8 Expr1
| List Expr2 Expr1
| If Expr2 Expr1 Expr1
| Expr2
deriving (Show)
data Expr2 = SeqOfExpr3 [Expr3]
deriving (Show)
data Expr3 = SeqOfExpr4 [Expr4]
deriving (Show)
----------------------------Redundant Code Omitted------------------------------
expr1 :: Parser Expr1
expr1 = declaration
<|> list
<|> ifStmt
<|> expr2
declaration :: Parser Expr1
declaration =
do reservedOp "\\"
var <- name
reservedOp "->"
expr <- expr1
return $ Lambda var expr
list :: Parser Expr1 …Run Code Online (Sandbox Code Playgroud)