Описание тега yacc
Название является аббревиатурой от "Еще один компилятор компилятора". Он генерирует синтаксический анализатор (часть компилятора, которая пытается понять синтаксический смысл исходного кода) на основе аналитической грамматики, написанной в нотации, аналогичной BNF. Исторически Yacc создавал код для парсера на языке программирования C.
Yacc раньше был доступен как генератор парсеров по умолчанию в большинстве систем Unix. С тех пор он был заменен по умолчанию более поздними, в значительной степени совместимыми программами, такими как Berkeley Yacc, GNU bison, MKS yacc и Abraxas pcyacc. Обновленная версия исходной версии AT&T включена как часть проекта Sun OpenSolaris. Каждый из них предлагает небольшие улучшения и дополнительные функции по сравнению с оригинальным yacc, но концепция осталась прежней. Yacc также был переписан для других языков, включая Ratfor, ML, Ada, Pascal, Java, Python и Common Lisp.
Парсер, сгенерированный yacc, требует лексического анализатора. Генераторы лексических анализаторов, такие как Lex или Flex, широко доступны. Стандарт IEEE POSIX P1003.2 определяет функциональные возможности и требования как для Lex, так и для Yacc.
Некоторые версии AT&T Yacc стали открытыми. Например, исходный код (для различных реализаций) доступен в стандартных дистрибутивах Plan 9 и OpenSolaris.
http://en.wikipedia.org/wiki/Yacc
Книги
Смотрите также:
ANTLR Flex-лексер Lex зубр jison слойной счастливая ocamlyacc fsyacc мл-Yacc