Bison (бизон) - генератор синтаксических анализаторов общего назначения, который преобразует описание контекстно-свободной LALR грамматики в программу на языке C для синтаксического анализа текстов относительно заданной грамматики.
Bison, пригодный для разработки анализаторов языков довольно широкого класса: от тех, что используются в простых настольных калькуляторах в сложных языков программирования. Bison типично используется вместе с генератором лексических анализаторов Flex.
Bison обратно совместим с Yacc : все правильные грамматики Yacc должны без изменений работать с Bison. Каждый, кто хорошо знает Yacc, не должен иметь больших проблем при использовании Bison.
Bison написан, в основном, Робертом Корбетт (Robert Corbett). Ричард Столмен (Richard Stallman) сделал его совместимым с Yacc. Вильфред Хансен (Wilfred Hansen) из Carnegie Mellon Univerisity добавил поддержку багатосимвольних литералов и другие возможности.
Условия использования Bison
Начиная с версии Bison 1.24 изменены условия распространения yyparse, разрешив использовать результат работы Bison в несвободные программы. Ранее анализаторы, созданные Bison, могли быть использованы лишь в программах, которые являются свободными.
Другие инструменты GNU для программирования, такие как компилятор GCC, никогда не содержали такого требования. Они всегда могли использоваться для разработки несвободного программного обеспечения. Bison отличался от них не через какое-то особое политическое решение, просто ко всему первоначального кода Bison применялась обычная Универсальная Общественная Лицензия (GPL).
Выход Bison - файл анализатора Bison - содержит точную копию части Bison как код функции yyparse (все действия вашей грамматики вставляются в функцию в одном месте, остальные функции при этом не изменяется). В результате применения условий GPL к коду yyparse, использование выхода Bison было ограничено свободными.