Currently this example crashes on input such as "T (x) + y;". The same example with glr.c works properly. * examples/c++/glr/Makefile, examples/c++/glr/README.md, * examples/c++/glr/c++-types.test, examples/c++/glr/c++-types.yy, * examples/c++/glr/local.mk, examples/c++/local.mk: New. Based on examples/c/glr/c++-types.y.
calc++ - A Flex+Bison calculator
This directory contains calc++, a Bison grammar file in C++. If you never saw the traditional implementation in C, please first read examples/c/lexcalc, which can be seen as a C precursor of this example.
Read the corresponding chapter in the documentation: "A Complete C++ Example". It is also available on line (maybe with a different version of Bison).
To use it, copy this directory into some work directory, and run make to
compile the executable, and try it. It is a simple calculator which accepts
several variable definitions, one per line, and then a single expression to
evaluate.
The program calc++ expects the file to parse as argument; pass - to read
the standard input (and then hit , control-d, to end your input).
$ ./calc++ -
one := 1
two := 2
three := 3
(one + two * three) * two * three
<Ctrl-d>
42
You may pass -p to activate the parser debug traces, and -s to activate
the scanner's.