__GNU Bison__, commonly known as Bison, is a parser generator that is part of the GNU Project. Bison reads a specification of a context-free language, warns about any parsing ambiguities, and generates a parser (either in C (programming language), C++, or Java (programming language)) which reads sequences of Lexical analysis#Tokens and decides whether the sequence conforms to the syntax specified by the grammar. The generated parsers are portable: they do not require any specific compilers. Bison by default generates LALR parser but it can also generate canonical LR parser, IELR(1) and GLR parser parsers - wikipedia
- generation of counterexamples for conflicts, - location tracking (e.g., file, line, column), - rich and internationalizable syntax error messages in the generated parsers, - customizable syntax error generation, - reentrant parsers, - push parsers, with autocompletion, - support for named references, - several types of reports (graphical, XML) on the generated parser, - support for several programming languages, - etc.
Bison is free software and is available under the GNU General Public License, with an exception (discussed below) allowing its generated code to be used without triggering the copyleft requirements of the licence.