Зарегистрироваться
Восстановить пароль
FAQ по входу

Синтаксический анализ c ply.yacc (a'la lex и yacc/bizon)

  • Файл формата zip
  • размером 618,93 КБ
  • содержит документ формата archive
  • Добавлен пользователем , дата добавления неизвестна
  • Описание отредактировано
Пользуясь полученными в л. р. #1 знаниями и результатами, достигнутыми при
выполнении л. р. #2, написать программу, проверяющую корректность синтаксиса входного потока в соответствии с вариантом.
Вариант:
Конфигурационный файл команды { \it sudo /etc/sudoers }.
При обнаружении ошибок программа должна сообщать о них в понятной пользователю форме. Программа должна завершаться с кодом 0, если завершилась успешно, и с отличным от 0 кодом в случае ошибки.
Работа с {\it ply.yacc} была весьма интересной.
Несмотря на нарушение стандарта языка, {\it ply.yacc} оказалась достаточно мощным и простым
построителем синтаксических анализаторов.
Вместе с {\it ply.lex} они позволили проверить правильность файла {\it /etc/sudoers}.
Если это делать обычным способом, то это займет много времени и сил.
Правда и в данном случае пришлось потрудиться.
В грамматике {\it /etc/sudoers} оказалось достаточно много повторяющихся элементов.
Было бы глупо все это забивать руками. Я воспользовался возможностями Python.
Половина программы создается в процессе выполнения. Удобно. Правда из-за
нарушения стандарта языка, тут возникли некоторые проблемы, которые были легко преодолены.
Работа выполнена на языках
* Python (требуется модуль ply -- как установить написано в л. р. #1 )
Отчет в формате — PDF
Исходники отчета — LaTeX2e
МАИ.
Факультет прикладной математики.
Кафедра вычислительной математики и программирования.
Преподаватели:
Алексей AVL Лебедев
Илья US-Marine Перетягин
  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.
  • Регистрация