This directory contains examples of Bison grammar files in C++.
You can run make
to compile these examples. And make clean
to tidy afterwards.
A very simple example in C++, based on variants and symbol constructors. Variants allow to use any C++ type as semantic value type, and symbol constructors ensure consistency between declared token type and effective semantic value.
Run as ./simple
.
Extracted from the documentation: “A Simple C++ Example”. https://www.gnu.org/software/bison/manual/html_node/A-Simple-C_002b_002b-Example.html
A variation of simple.yy, in C++98.
Run as ./variant
.
Another variation of simple.yy, closely related to the previous one, but exhibiting support for C++11's move semantics.
Run as ./variant
or ./variant NUMBER
.
A fully featured C++ version of the canonical example for parsers: a calculator. Also uses Flex for the scanner.
Don't look at this example first: it is fully featured and can serve as a starting point for a clean parser in C++. The previous examples are better introductory examples, and the C examples are also useful introductory examples.
Extracted from the documentation: “A Complete C++ Example”. https://www.gnu.org/software/bison/manual/html_node/A-Complete-C_002b_002b-Example.html