Files
bison/examples/c++/calc++
Akim Demaille 0c0cf6f5a4 examples: modernize the example Makefiles
* examples/c++/Makefile, examples/c++/calc++/Makefile,
* examples/c++/glr/Makefile, examples/c/bistromathic/Makefile,
* examples/c/calc/Makefile, examples/c/glr/Makefile,
* examples/c/lexcalc/Makefile, examples/c/mfcalc/Makefile,
* examples/c/pushcalc/Makefile, examples/c/reccalc/Makefile,
* examples/c/rpcalc/Makefile, examples/d/calc/Makefile,
* examples/d/simple/Makefile, examples/java/calc/Makefile,
* examples/java/simple/Makefile:
Use --html to generate *.html directly.
No longer demonstrate --xml.
No longer show rules for xml to html.
Use --header, not --defines.
Use --graph without specifying the output file now that we
generate *.gv by default.
2021-08-04 10:07:48 +02:00
..
2021-01-16 16:11:17 +01:00

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.