Цитата:
Механизм исправления ошибок ANTLR основан на ранних разработках Никлауса Вирта.
идеи в алгоритмах + структуры данных = программы 1 (а также
Замечание Родни Топора об исправлении ошибок в парсерах рекурсивного спуска
2 ), но также включает в себя хорошие идеи Йозефа Гроша из его CoCo
Генератор парсера (Эффективное и удобное восстановление после ошибок
sive Descent Parsers 3 ). По сути, распознаватели выполняют одно-
вставка и удаление символов при несовпадающих ошибках символов (как
описано через минуту) если возможно. Если нет, распознаватели сожрать сим-
bols, пока lookahead не является членом набора ресинхронизации и
затем выйдите из правила. Набор ресинхронизации - это набор входных символов
которые могут юридически следовать ссылкам на текущее правило и ссылкам на
любые правила вызова вверх по цепочке вызовов. Точно так же, если распознаватель не может
выбрать любую из альтернатив в начале правила, распознаватель
снова использует стратегию gobble-and-exit.
[...]
- Теренс Парр. Полная ссылка ANTLR , 10.7 Стратегия автоматического восстановления после ошибок.
Ссылки
1 Никлаус Вирт. Алгоритмы + структуры данных = Программы . Prentice Hall PTR, Upper Saddle River, Нью-Джерси, США, 1978.
2 Родни В. Топор. Замечание по исправлению ошибок в парсерах рекурсивного спуска. SIGPLAN Not. , 17 (2): 37–40, 1982.
3 Йозеф Грош. Эффективное и удобное исправление ошибок в парсерах рекурсивного спуска. Структурированное программирование , 11 (3): 129–140, 1990.