When tt(parse) encounters a em(syntax error), it calls the error reporting
member function (tt(error)) to print an error message. A very basic in-line
implementation is provided by b() in the parser class internal header file
(see chapter ref(INTERFACE)), which can easily be redefined by the
programmer. The tt(error) member's default implementation is OK for
tt(rpn).

Once tt(error) returns, b()'s parser may recover from the error and continue
parsing if the grammar contains a suitable error rule (see chapter
ref(RECOVERY)).  Otherwise, the parsing function tt(parse) returns a non-zero
value. No error production rules were used for tt(rpn), so the calculator
terminates at the first syntax error.. Not very nice in a real-life
calculator, but it is acceptable for this first example.


