parsing - 在 Haskell 的 uu-parsinglib 中自定义错误处理

标签 parsing haskell error-handling uu-parsinglib

是否可以:

  1. 在 Haskell 中使用 uu-parsinglib 抛出自定义解析器错误? (我特别想打印带有位置信息的自定义错误消息)
  2. 自定义向用户显示错误的方式?
  3. 以某种方式控制自动更正在何处发生,在何处不发生?例如,我想拒绝一些自动更正步骤,比如删除大写的标识符的第一个字母(标识符应以小写开头)

最佳答案

1) 错误信息要么是“Inserted String position [String]”(如果插入了某些内容),要么是“Deleted String position”(如果某些内容被删除)。您可以在您的“运行”版本中轻松定义您自己的标准显示功能版本。我们称之为 show,但包装消息将使您能够重新定义 show。

2) 见 1

3) 您可以使用插入和删除成本。通常只尝试增加它们。超过 1000 的成本完全跳过了该替代方案。标准删除成本是 4。我不明白你想用小写标识符开头的大写字母做什么。还是接受?如果您想增加删除成本,您可能需要编写自己的 pSym 版本等。

杜艾茨·斯维尔斯特拉

关于parsing - 在 Haskell 的 uu-parsinglib 中自定义错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18232391/

相关文章:

python - 如何在正则表达式中使用 bool OR

haskell - 共享 IORef 时,只要我使用atomicModifyIORef 写入,使用 readIORef 读取是否安全?

haskell - 在 Haskell 中,函数相对于二等事物有什么特权?

algorithm - 如何在 O(n*log(n)) 中将一个列表与另一个列表进行比较?

error-handling - NodeJS 0.4.2 http.request : can the error event be fired after the response callback has been called?

java - 如何使用斯坦福解析器将文本拆分为句子?

android - 在 ANDROID 中解析嵌套的 JSON

Java - 错误消息显示不正确

ruby-on-rails - 如何制作像 Wolfram|Alpha 这样的小型引擎?

java - 无法启动模拟器