ТОР 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.
Не нашли, что искали? Воспользуйтесь поиском:
|