Unix Man (Справочное руководство)

         

YACC(1)


YACC(1)

НАЗВАНИЕ


yacc - еще один компилятор компиляторов

СИНТАКСИС

yacc [-v] [-d] [-l] [-t] грамматика

ОПИСАНИЕ


Команда yacc преобразует контекстно-свободную грамматику в набор таблиц для простого LR(1)-разбора. Грамматика может содержать неоднозначности; чтобы их преодолеть, используются заданные правила предшествования.

Выходной файл y.tab.c преобразуется C-компилятором в программу yyparse, которую нужно скомпоновать с программой лексического анализа yylex, а также с подпрограммой main и подпрограммой обработки ошибок yyerror. Эти подпрограммы должны быть предоставлены пользователем; при порождении лексических анализаторов полезен .

Допустимые опции:


-v -d -l -t
Сгенерировать файл y.output, который содержит описание таблиц разбора с указанием конфликтных ситуаций, вызванных неоднозначностями грамматики.
Сгенерировать файл y.tab.h, который содержит определения #define, связывающие заданные пользователем "имена лексем" с назначенными программой yacc "кодами лексем", что позволяет использовать коды лексем в исходных файлах, отличных от y.tab.c.
Не вставлять в программу y.tab.c операторы #line. Рекомендуется использовать только после того, как грамматика и другие компоненты полностью отлажены.
При помощи средств условной компиляции в программу y.tab.c всегда вставляются отладочные операторы, однако по умолчанию компилятор их пропускает. Если указана опция -t, то при отсутствии других указаний отладочные операторы будут скомпилированы. Вне зависимости от использования опции -t компиляцией отладочных операторов управляет переменная препроцессора YYDEBUG. Если YYDEBUG имеет ненулевое значение, отладочные операторы компилируются; при нулевом значении они пропускаются. Когда программа сформирована без отладочного кода, ее размер меньше и скорость выполнения несколько выше.

ФАЙЛЫ

y.output y.tab.c y.tab.h Определение кодов лексем. yacc.tmp Временный файл. yacc.debug Временный файл. yacc.acts Временный файл. /usr/lib/yaccpar Прототип алгоритма разбора для C-программ.

СМ. ТАКЖЕ


.

ДИАГНОСТИКА


В стандартный протокол направляется информация о числе конфликтных ситуаций типа "свертка-свертка" и "перенос-свертка"; более подробные сообщения содержатся в файле y.output. Аналогичным образом сообщается о продукциях, недостижимых из начального символа грамматики.

ОГРАНИЧЕНИЯ


Так как имена файлов фиксированы, в данном каталоге в каждый момент времени может быть активным только один процесс yacc



Содержание раздела