Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Входные и выходные файлы, структура грамматического ана-




Лизатора

 

Входная информация для yacc задается в спецификационном

файле, структура которого рассматривается в разделе 4.

 

На выходе компилятора компиляторов в результате обра-

ботки спецификаций создается файл y. tab. c с исходным текстом

Си-процедур, составляющих грамматический анализатор. Основ-

ной в файле y. tab. c является процедура yyparse, реализующая

алгоритм грамматического разбора. При формировании ее yacc

использует файл / usr / lib / yaccpar, содержащий неизменяемую

часть анализатора. Кроме yyparse, в файл y. tab. c yacc вклю-

чает построенные им таблицы разбора, описания и программные

фрагменты пользовательских спецификаций.

 

 

- 4 -

 

 

Процедура yyparse представляет собой целочисленную

функцию, возвращающую значение 0 или 1. Значение 0 возвраща-

ется в случае успешного разбора по достижении признака конца

файла, значение 1- в случае несоответствия входного текста

заданным спецификациям. Процедура yyparse содержит многок-

ратное обращение к процедуре лексического анализа yylex,

текст которой либо переносится в файл y. tab. c из специфика-

ционного файла, либо прикомпоновывается впоследствии.

 

Для организации обращения к процедуре yyparse в библио-

теке yacc существует стандартная процедура main, не содержа-

щая помимо обращения к yyparse никаких действий. Пользова-

тель может написать собственную процедуру main, включив в

нее как начальные действия, предваряющие вызов yyparse

(установка нужных режимов, открытие файлов, частичное запол-

нение таблиц), так и действия по завершении разбора, которым

должен предшествовать анализ возвращаемого yyparse значения;

действиями в случае успешного разбора могут быть закрытие

файлов, вывод результатов, вызов следующей фазы транслятора,

в частности, повторный вызов yyparse. Для замены стандартной

процедуры пользовательской программой main она должна быть

описана в спецификационном файле или присоединена на этапе

вызова Си- компилятора для подготовки исполняемой программы.

 

Кроме выходного файла y. tab. c, yacc может дополнительно

генерировать следующие выходные файлы:

 

y. output

содержащий описание состояний анализатора и сообщения о

конфликтах (раздел 6)

 

y. tab. h

содержащий описание лексем (раздел 4.3).

 

Для генерации этих файлов требуется задание соответст-

вующих флагов при вызове yacc.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных