f# - 使用 FParsec 解析多个语句时不显示错误
问题描述
我有一个语句解析器,当我使用这个作为解析器参数运行程序时,会显示所有错误。为了能够解析多个语句,我定义了一个新的解析器;但是,当有错误时,它不会显示它们。
这是这个解析器:
(* -------- Program -------- *)
let pprog, pprogimpl = createParserForwardedToRef ()
pprogimpl := attempt (many pstatement |>> Program)
pstatement
通过另一个解析器定义所有可能的语句。
我想知道为什么pprog
解析器不显示错误。我犯错了吗?忘记什么?
编辑
我终于能够通过更改many' instruction, and replacing it with
manyTill 来解决错误。显然,问题出在他无法处理“列出的”错误这一事实,如果你知道更多,我很想知道。
let pprog, pprogimpl = createParserForwardedToRef ()
pprogimpl := (attempt (manyTill (pstatement) eof) |>> Program)
解决方案
推荐阅读
- express - 我可以使用 Express res.sendFile() 发送 XLS/XLSX 文件吗?
- javascript - 如何将我的 expo 应用程序发布到 Apple 应用商店?
- json - 将 pandas 数据帧转换为具有特定格式的 json
- javascript - 如何在产品列表中添加切换“全部显示”、“全部隐藏”
- python - 为什么这没有返回预期的升序?
- spring-boot - Springboot + Elastic Search:如何构建模糊的 LIKE 查询?
- javascript - 来自数组的动态 HTML 行
- amazon-s3 - AWS 胶水将动态帧写入内存不足 (OOM)
- haskell - 是否有一个 Monad 收集结果并将其映射到它们?
- delphi - 未声明的标识符 soAllDirectories