Bison is the GNU variant of Yacc, which
stands for Yet Another Compiler Compiler. It translates formal
LR/BNF grammars into C code.
It is normally used with Flex, GNUs
variant of the lexical analyzer/Tokenize/Lexer Lex.

If you're a C programmer, you should really learn at least Lex and probably also Yacc. Saves a lot of work, and is
not only useful for compiler authors