GNU Bison
general-purpose parser generator

GNU Bison, commonly known as Bison, is a parser generator that is part of the GNU Project. Bison reads a specification in Bison syntax (described as "machine-readable BNF"), warns about any parsing ambiguities, and generates a parser that reads sequences of 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(1) parsers but it can also generate canonical LR, IELR(1) and GLR parsers.
In POSIX mode, Bison is compatible with Yacc, but also has several extensions over this earlier program, including
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 (C, C++, D, or Java)
Flex, an automatic lexical analyser, is often used with Bison, to tokenise input data and provide Bison with tokens.
Bison was originally written by Robert Corbett in 1985. Later, in 1989, Robert Corbett released another parser generator named Berkeley Yacc. Bison was made Yacc-compatible by Richard Stallman.
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.
Features
Counterexample generation
One delicate issue with LR parser generators is the resolution of conflicts (shift/reduce and reduce/reduce conflicts).
The public source identifies “GNU Bison” as general-purpose parser generator. This brief keeps that definition visible, then builds a research path around Bison, general-purpose and parser.
Why this record matters
A short description can identify a subject without explaining its stakes. For “GNU Bison”, the useful work is to connect “general-purpose parser generator” to the records capable of establishing context and consequence.
Named sources, stable identifiers and responsible institutions provide the strongest route from overview to verifiable evidence. The source revision retrieved here is dated Aug 9, 2025. The linked authority identifier is Q1071969. 2 of 2 selected statements include explicit references; 1 carry qualifiers and 0 use preferred rank. The first chronological checks are 1985 and 1989.
A concise general-reference account can conceal disagreements about scope, terminology or the weight assigned to individual sources. The lead is largely declarative, so disagreement and counter-evidence require a deliberate search beyond the opening account. Authority statements aid reconciliation but still require their own references, qualifiers and ranks to be checked.
How to read it
Use the entry as an orientation point, then follow its citations and revision history. Names, dates and institutional relationships should be checked against the original record.
- Subject orientation
- Search vocabulary
- Locating named sources
The closest primary source, responsible institution and strongest cited specialist reference.
Three-step research path
- Establish the record: confirm the title “GNU Bison”, its source revision and the description used here.
- Expand the search: follow GNU Bison primary sources, GNU Bison archive and Bison research across catalogues and specialist indexes.
- Test the account: compare the strongest cited source with the responsible institution’s current record and note any disagreement.
Questions for further research
- Which source most directly establishes the central claim about “GNU Bison”?
- Which cited source is closest to the event, object or claim?
- Which institution is responsible for the underlying evidence?
Search terms from this dossier
This entry incorporates text from “GNU Bison” on English Wikipedia. Contributors are listed in the page history. Text is available under the Creative Commons Attribution-ShareAlike 4.0 License. Selected authority identifiers and statements are retrieved from Wikidata under CC0; their references and qualifiers remain part of the verification path.