Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Грамматика.doc
Скачиваний:
6
Добавлен:
16.05.2015
Размер:
779.26 Кб
Скачать
  1. Проверка и трансляция набранной грамматики

    1. Непроизводящие и недостижимые символы

По завершении трансляции осуществляется проверка грамматики на наличие непроизводящих и недостижимых символов.

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

Недостижимыми символами называются те нетерминальные символы, которые не могут встретиться ни в одной цепочке, выводимой из начального символа. Недостижимые символы появляются, если в грамматике есть нетерминальные символы, не встречающиеся в правых частях ни одного из правил (за исключением начального символа грамматики).

Наиболее частая причина появления таких символов – ошибки в написании имени символа или пропуск какого-либо правила.

    1. Проверка синтаксиса грамматики

После того как файл с грамматикой создан и сохранен на диске, можно проверить его на соответствие правилам записи БНФ. Для проверки синтаксиса и трансляции в редакторе есть две кнопки на панели инструментов (рис.2).

  1. Кнопки на панели для работы с грамматикой

Кнопка проверить синтаксис позволяет проанализировать набранную грамматику и обнаружить строки, не соответствующие правилам формального описания. Вся отладочная информация выводится в окно статуса, находящееся в нижней части редактора (рис.3).

  1. Окно статуса при успешной проверке

На рис. 3 показан случай, когда набранная вами грамматика соответствует всем правилам БНФ и может быть откомпилирована и использована в дальнейшем для разбора цепочек. Если же цепочка не соответствует правилам, то в этом окошке можно посмотреть информацию об ошибке. Так, если в грамматику ввести ошибочное правило (например, использовать специальные символы)

pro&gram ::= part_prog;

то можно увидеть сообщение об ошибке, показанное на рис.4.

  1. Окно статуса с ошибкой

При этом будет указана строка в файле грамматики и символ, который вызвал ошибку. В указанном примере ошибочным является правило, набранное в первой строке, четвертом символе.

Помимо проверки синтаксиса, происходит также проверка правил на наличие непроизводящих символов. Если будет найден хотя бы один такой символ, то в окне статуса появится соответствующее сообщение.

    1. Трансляция грамматики и запуск g&a

Если введенная грамматика не содержит ошибок (при проверке синтаксиса вы видите окно статуса, похожее на то, что изображено на рис. 4), то можно компилировать и запускать саму программу G&A. Для этого необходимо, установив указтель мыши на кнопке запуска на панели инструментов (кнопка в виде зеленого треугольника  рис. 3), нажать левую клавишу мыши.

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

G&A также позволяет просматривать словари нетерминальных и терминальных символов. Для этого достаточно воспользоваться кнопкам VN и VT соответственно. Окно программы с открытым словарем нетерминальных символов показано на рис.5.

  1. Словарь нетерминальных символов