Top 1,000 Features Creators Events Podcasts Extensions Interviews Blog Explorer CSV

Bison

< >

Bison is an open source grammar language created in 1985 by Robert Corbett.

#341on PLDB 39Years Old 196Repos
Homepage · Wikipedia · Docs

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, C++, or Java) which reads sequences of tokens and decides whether the sequence conforms to the syntax specified by the grammar. Bison by default generates LALR parsers but can also create GLR parsers. Read more on Wikipedia...


Example from the web:
/* Reverse Polish Notation calculator. */ %{ #include <stdio.h> #include <math.h> int yylex (void); void yyerror (char const *); %} %define api.value.type {double} %token NUM %% /* Grammar rules and actions follow. */
Example from Wikipedia:
# Makefile FILES = Lexer.c Parser.c Expression.c main.c CC = g++ CFLAGS = -g -ansi test: $(FILES) $(CC) $(CFLAGS) $(FILES) -o test Lexer.c: Lexer.l flex Lexer.l Parser.c: Parser.y Lexer.c bison Parser.y clean: rm -f *.o *~ Lexer.c Lexer.h Parser.c Parser.h test

Language features

Feature Supported Example Token
Comments ✓
// A comment
MultiLine Comments ✓
/* A comment
*/
/* */
Line Comments ✓
// A comment
//
Semantic Indentation X

View source

- Build the next great programming language · About · Resources · Acknowledgements · Part of the World Wide Scroll