wisent: Report errors

 
 3.3 The error reporting function
 ================================
 
 When the parser encounters a syntax error it calls a user-defined
 function.  It must be an Emacs Lisp function with one argument: a string
 containing the message to report.
 
    By default the parser uses this function to report error messages:
 
  -- Function: wisent-message string &rest args
      Print a one-line message if ‘wisent-parse-verbose-flag’ is set.
      Pass STRING and ARGS arguments to “message”.
 
 *Please Note:*
      ‘wisent-message’ uses the following function to print lexical
      tokens:
 
       -- Function: wisent-token-to-string token
           Return a printed representation of lexical token TOKEN.
 
      The general printed form of a lexical token is:
 
      ‘TOKEN(VALUE)@LOCATION’
 
    To control the verbosity of the parser you can set to non-‘nil’ this
 variable:
 
  -- Option: wisent-parse-verbose-flag
      non-‘nil’ means to issue more messages while parsing.
 
    Or interactively use the command:
 
  -- Command: wisent-parse-toggle-verbose-flag
      Toggle whether to issue more messages while parsing.
 
    When the error reporting function is entered the variable
 ‘wisent-input’ contains the unexpected token as returned by the lexer.
 
    The error reporting function can be called from a semantic action too
 using the special macro ‘wisent-error’.  When called from a semantic
 action entered by error recovery (SeeError recovery) the value of
 the variable ‘wisent-recovering’ is non-‘nil’.