Server for Information Technologies Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер содержит море(!) аналитической информации CIT Forum CD-ROM

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
Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT