Страшная правда о lex и yacc
От: Эйнсток Файр Мухосранск  
Дата: 20.07.20 02:51
Оценка: 2 (1) +1 :)
Когда их представляют вниманию учеников,
про них говорят, что эти утилиты реализуют разные формализмы.

lex — это регулярные автоматы
yacc — это КС-грамматики

но на самом деле всё не так.

Можно обойтись без lex, если токены будут соответствовать буквам.
Но тогда в грамматике придётся писать правила для учёта пробельных символов,
и грамматика станет более "зашумлённой".

Вот это и есть настоящая подлинная цель разделения процесса парсинга на два этапа.
Разделение на два этапа нужно для того, чтобы
скрыть механизм удаления пробелов во второй грамматике.

Я бы хотел найти какие-нибудь тексты, посвящённые
формальному описанию такого разделения. Ведь
кроме пробелов ещё существуют препроцессоры, обработчики триграфов, esc-последовательностей и комментариев.

Неужели никто этого не описывал при помощи "научного подхода"?
парсеры грамматики наука
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.