使用 megaparsec 的不同位置的多个错误
multiple errors with different positions using megaparsec
我将使用 megaparsec 来解析大学项目的编程语言。但是,我搜索了一种方法来报告多个错误。
我知道 withRecovery,我看到了 this 问题,但我没有发现在不同位置发生错误的情况。
例如在这个 java 代码中:
class A
{
public get() // line 3 column 10
{
return x // line 5 column 22
}
}
有error1"expected type at line 3 column 10"和error2"missing semicolon at line 5 column 22"
我知道我可以将错误消息与 failure
合并,但是多个位置怎么样?我该怎么做?
如果您确定 Alec 的建议,但不想 Either (ParseError ...) (Either (ParseError ...) a)
,您可以只对该值使用 Control.Monad.join 将其变成 Either (ParseError ...) a
。抱歉,如果这不是很有帮助
我将使用 megaparsec 来解析大学项目的编程语言。但是,我搜索了一种方法来报告多个错误。
我知道 withRecovery,我看到了 this 问题,但我没有发现在不同位置发生错误的情况。
例如在这个 java 代码中:
class A
{
public get() // line 3 column 10
{
return x // line 5 column 22
}
}
有error1"expected type at line 3 column 10"和error2"missing semicolon at line 5 column 22"
我知道我可以将错误消息与 failure
合并,但是多个位置怎么样?我该怎么做?
如果您确定 Alec 的建议,但不想 Either (ParseError ...) (Either (ParseError ...) a)
,您可以只对该值使用 Control.Monad.join 将其变成 Either (ParseError ...) a
。抱歉,如果这不是很有帮助