Настроить обработку ошибок в uu-parsinglib в Haskell

Это возможно:

  1. выдавать пользовательские ошибки парсера, используя uu-parsinglib в Haskell? (Я хочу специально напечатать пользовательское сообщение об ошибке с информацией о позиции)
  2. настроить способ отображения ошибок пользователю?
  3. как-то контролировать, где происходит автоматическая коррекция, а где нет? Я хочу, например, запретить некоторые шаги автокоррекции, такие как удаление первой буквы идентификатора, если она в верхнем регистре (идентификаторы должны начинаться с нижнего регистра)

person Wojciech Danilo    schedule 14.08.2013    source источник


Ответы (1)


1) Сообщения об ошибках: «Вставленная позиция строки [String]» в случае, если что-то было вставлено, и «Удаленная позиция строки» в случае, если что-то было удалено. Вы можете легко определить собственную версию стандартной функции show в своей версии run. Мы вызываем там просто show, но обертывание сообщений позволит вам переопределить show.

2) см. 1

3) Вы можете играть со стоимостью вставки и удаления. В общем старайтесь только увеличивать их. Стоимость более 1000 полностью исключает этот вариант. Стандартная стоимость удаления - 4. Я не понимаю, что вы хотите делать с этой заглавной буквой в начале строчного идентификатора. Всё равно принять? Если вы хотите увеличить стоимость удаления, вы можете написать свою собственную версию pSym и т. д.

Доайтсе Свирстра

person Doaitse Swierstra    schedule 17.08.2013