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"[3]), 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.[4]
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.[5]
Bison was originally written by Robert Corbett in 1985.[1] Later, in 1989, Robert Corbett released another parser generator named Berkeley Yacc. Bison was made Yacc-compatible by Richard Stallman.[6]
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.
^ abCorbett, Robert Paul (June 1985). Static Semantics and Compiler Error Recovery (Ph.D.). University of California, Berkeley. DTIC ADA611756.
^Akim Demaille (25 September 2021). "Bison 3.8.2".
^"Language and Grammar (Bison 3.8.1)". www.gnu.org. Retrieved 2021-12-26.
^Bison Manual: Introduction.
^Levine, John (August 2009). flex & bison. O'Reilly Media. ISBN 978-0-596-15597-1.
^"AUTHORS". bison.git. GNU Savannah. Retrieved 2017-08-26.
GNUBison, 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...
including linker, assembler and other tools GNUBison: a parser generator, often used with the Flex lexical analyser GNU C Library (glibc): core C library including...
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses, or copyleft, that guarantee end users the four...
the GNU General Public License (GNU GPL). GCC is a key component of the GNU toolchain and the standard compiler for most projects related to GNU and the...
programmers. GNU Binutils – contains the GNU assembler (as) and the GNU linker (ld) GNUBison – parser generator intended to replace yacc GNU build system...
generated from a grammar by an LALR parser generator such as Yacc or GNUBison. The automatically generated code may be augmented by hand-written code...
32-bit Windows platform. The ports included in the GnuWin32 packages are: GNU utilities such as bc, bison, chess, Coreutils, diffutils, ed, Flex, gawk, gettext...
the LR(1) parser is automatically generated by compiler-compilers like GNUBison, MSTA, Menhir, HYACC, and LRSTAR. In 1965 Donald Knuth invented the LR(k)...
supplied as a standard utility on BSD and AT&T Unix. GNU-based Linux distributions include Bison, a forward-compatible Yacc replacement. In the early...
rather some of their many reimplementations, like flex (often paired with GNUBison). These generators are a form of domain-specific language, taking in a...
patterned after the GNUbison license (which was written by Richard Stallman in 1988). Like the Bison license, and Stallman's later GNU General Public License...
GNU Compiler Collection 9.3.0 (10.2.0 is also available) Autoconf 2.5.9 Automake 1.9.4 Binutils 2.34 GNU Bash 4.1.17 GNUBison 2.4.1, Flex 2.5.4 GNU Emacs...
incompatible with Yacc but it was subsequently renamed Bison and became the basis of GNUBison. Later in 1985, Corbett developed his LALR parser generator...
"The Gnu" (sometimes known as "A Gnu", "I'm a Gnu" or "The Gnu Song") is a humorous song about a talking gnu by Flanders and Swann. The word gnu is consistently...
interpreter implements its own lexer, which coordinates with a modified GNUbison parser to resolve ambiguities in the language.[citation needed] It is...
performance. Comparison of parser generators DMS Software Reengineering Toolkit GNUBison, a parser generator that can create LALR and GLR parsers Packrat parser...
the exercises of the book Internals of an LALR(1) parser generated by GNUBison - Implementation issues Course notes on LR parsing Shift-reduce and Reduce-reduce...
successful for target machine description, it was less so for semantics. GNUBison yacc Benjamin M. Brosgol, "TCOLAda and the “Middle End” of the PQCC Ada...
Computer Associate's source code contained previously known source code (GNUBison Version 1.25) available under the GPL, that does not prevent them from...
inspired by and largely compatible with the original Yacc, for example GNUbison, a pun on the original Yacc/Yak. See Comparison of deterministic context-free...
portal GnuCOBOL (formerly OpenCOBOL, and for a short time known as GNU Cobol) is a free implementation of the COBOL programming language. GnuCOBOL is...
context-free grammars. ANTLR Coco/R (EBNF with semantics) GNUbison (FSF's version of Yacc) GNU Flex (FSF version of Lex) lex (Lexical Analysis, from Bell...
Unix systems, it was widely distributed and used. Derivatives such as GNUBison are still in use. The compiler generated by Yacc requires a lexical analyzer...