Несколько ошибок с разными позициями с использованием мегапарсек
Я собираюсь использовать мегапарсек для разбора языка программирования для университетского проекта. Тем не менее, я искал способ сообщить о нескольких ошибках.
Я знаю о withRecovery, и я видел эту проблему, но я не нашел о случае, когда ошибки происходят на разных позициях.
например в этом коде Java:
class A
{
public get() // line 3 column 10
{
return x // line 5 column 22
}
}
Есть ошибка1 "ожидаемый тип в строке 3, столбец 10" и ошибка2 "отсутствует точка с запятой в строке 5, столбец 22"
Я знаю, что могу комбинировать сообщения об ошибках с failure
а как насчет нескольких позиций? Как я могу это сделать?
1 ответ
Если вы уверены в предложении Алека, но не хотите Either (ParseError ...) (Either (ParseError ...) a)
, вы можете просто использовать Control.Monad.join для этого значения, чтобы превратить его в Either (ParseError ...) a
, Извините, если это не было слишком полезно