Files
bison/examples/c++
Akim Demaille 42ab6c1e44 doc: c++: document parser::context
* doc/bison.texi (C++ Parser Context): New.

* data/skeletons/lalr1.cc (parser::yysymbol_name): Rename as...
(parser::symbol_name): this.
(A Complete C++ Example): Promote LAC, now that we have it.
Promote parse.error detailed over verbose.
* examples/c++/calc++/calc++.test, tests/local.at: Adjust.
2020-04-13 16:54:14 +02:00
..
2020-04-13 16:54:14 +02:00
2019-09-22 07:48:10 +02:00
2020-01-05 10:26:35 +01:00
2020-01-05 10:26:35 +01:00
2020-01-05 10:26:35 +01:00
2020-01-05 10:26:35 +01:00

Examples in C++

This directory contains examples of Bison grammar files in C++.

You can run make to compile these examples. And make clean to tidy afterwards.

simple.yy - Simple example in C++14

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 kind 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

variant.yy - Self-contained example in C++98

A variation of simple.yy, in C++98.

Run as ./variant.

variant-11.yy - Self-contained example in modern C++

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.

calc++ - A Complete C++ Example

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