tree: 180bb71b2a9414b4f0973d7381252f564d55fd8a [path history] [tgz]
  1. calc++/
  2. local.mk
  3. Makefile
  4. README.md
  5. simple.test
  6. simple.yy
  7. variant-11.test
  8. variant-11.yy
  9. variant.test
  10. variant.yy
examples/c++/README.md

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

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