Информация о программах lex и yacc
Для того чтобы программа могла обрабатывать вводимые данные в интерактивном или пакетном режиме, необходимо разработать процедуру или дополнительную программу, которая будет обрабатывать входной поток. Если ввод сложный, то требуется дополнительный модуль для разбиения ввода на фрагменты, интерпретируемые программой как отдельные, независимые данные.
Для разработки таких программ ввода можно применять команды lex и yacc.
Команда lex создает лексический анализатор, который считывает ввод и разбивает его на лексемы, такие как числа, буквы и операторы. Лексемы определяются правилами грамматики, описанными в файле спецификаций lex. Команда yacc создает синтаксический анализатор, который обрабатывает ввод с помощью лексем, созданных командой lex и хранящихся в файле спецификаций lex, и выполняет указанные действия, например, отмечает синтаксические ошибки. С помощью этих команд можно создать лексический и синтаксический анализаторы для разбора входных и форматирования выходных данных.