add error recovery to the parser

* the symbol for the error token in productions is %error
* XXX: no error messages are generated, what kind of sink
  should be used for the error messages (logging like
  interface?)