我将使用 megaparsec 来解析大学项目的编程语言。但是,我寻找一种报告多个错误的方法。
我知道 withRecovery 并且我看到了this https://github.com/mrkkrp/megaparsec/issues/43问题,但我没有发现不同位置发生错误的情况。
例如在这个java代码中:
class A
{
public get() // line 3 column 10
{
return x // line 5 column 22
}
}
有错误1“第3行第10列的预期类型”和错误2“第5行第22列缺少分号”
我知道我可以将错误消息与failure
但多个职位怎么样?我怎么做 ?
如果您确定 Alec 的建议,但又不想接受Either (ParseError ...) (Either (ParseError ...) a)
,您可以对该值使用 Control.Monad.join 将其转换为Either (ParseError ...) a
。抱歉,如果这没有太大帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)