YACC(1)

НАЗВАНИЕ
yacc - еще один компилятор компиляторов

СИНТАКСИС


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

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

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

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

-v Сгенерировать файл y.output, который содержит описание таблиц разбора с указанием конфликтных ситуаций, вызванных неоднозначностями грамматики.
-d Сгенерировать файл y.tab.h, который содержит определения #define, связывающие заданные пользователем "имена лексем" с назначенными программой yacc "кодами лексем", что позволяет использовать коды лексем в исходных файлах, отличных от y.tab.c.
-l Не вставлять в программу y.tab.c операторы #line. Рекомендуется использовать только после того, как грамматика и другие компоненты полностью отлажены.
-t При помощи средств условной компиляции в программу 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-программ.

СМ. ТАКЖЕ
lex(1).

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

ОГРАНИЧЕНИЯ
Так как имена файлов фиксированы, в данном каталоге в каждый момент времени может быть активным только один процесс yacc