Now we show and explain several sample programs written using Bison: a reverse polish notation calculator, an algebraic (infix) notation calculator — later extended to track “locations” — and a multi-function calculator. All produce usable, though limited, interactive desk-top calculators.
These examples are simple, but Bison grammars for real programming languages are written the same way. You can copy these examples into a source file to try them.
|• RPN Calc:||Reverse polish notation calculator; a first example with no operator precedence.|
|• Infix Calc:||Infix (algebraic) notation calculator. Operator precedence is introduced.|
|• Simple Error Recovery:||Continuing after syntax errors.|
|• Location Tracking Calc:||Demonstrating the use of @n and @$.|
|• Multi-function Calc:||Calculator with memory and trig functions. It uses multiple data-types for semantic values.|
|• Exercises:||Ideas for improving the multi-function calculator.|