haskell - 为什么这段代码在使用 parsec 时会产生解析异常,但在 Graham Huttons 简单示例库中却没有?
问题描述
我最近尝试进入 parsec,我偶然发现了一个视频,它解释了函数解析的基础知识。展示了一个简单的演示库,其语法类似于 parsec。功能组合的工作方式非常相似。此代码段与库正常工作。然而,如果我用解析器运行这段代码,它会给我一个解析错误,(意外字符)
module P where
import Text.ParserCombinators.Parsec
int :: Parser Int
int = do
x <- many digit
return (read x)
expr = do
x <- term
char '+'
y <- expr
return (x+y)
<|> term
term = do
x <- factor
char '*'
y <- term
return (x*y)
<|> factor
factor = do
char '('
x <- expr
char ')'
return x
<|> int
我不知道区别在哪里
解决方案
推荐阅读
- javascript - 如果曾孙数组为空,则从对象中删除数组
- excel - 根据前两列生成第三列序号
- jenkins - Jenkins 代理在 Gradle 构建期间内存不足导致 hudson.remoting.RequestAbortedException
- types - 当参数的类型是联合类型时,确定 Racket 中参数的具体类型
- c++ - 为什么 C++ 编译器没有检测到正确声明的类?
- python - 在基于文本的 RPG 中出现大量文本后输入错误的语法错误
- java - Eclipse java.lang.module.FindException 和 java.lang.ClassNotFoundException
- c# - 如何使用存储库模式模拟 MongoDB 数据访问层?
- c# - C# - 无法识别右括号
- validation - Vuepress - 任何编译/批量验证页面降价内容的方法?