问题
I'm going to use megaparsec for parsing a programming language for university project. However, I searched for finding a way to report multiple errors.
I know about withRecovery and I saw this issue but I didn't find about the case where errors happen on different positions.
for example in this java code :
class A
{
public get() // line 3 column 10
{
return x // line 5 column 22
}
}
There are error1 "expected type at line 3 column 10" and error2 "missing semicolon at line 5 column 22"
I know I can combine error messages with failure but how about multiple positions ? How do I do that ?
回答1:
If you're sure about Alec's suggestion, but don't want to have Either (ParseError ...) (Either (ParseError ...) a), you can just use Control.Monad.join on that value to turn it into an Either (ParseError ...) a. Sorry if this wasn't too helpful
来源:https://stackoverflow.com/questions/39667592/multiple-errors-with-different-positions-using-megaparsec