anchor.diff:               :scanner scanner
                :non-terminal-stack (copy-list *non-terminal-stack*)
                :expected-token expected-tokens
  -             :format-control "Unexpected token ~S (~S)~@[~%Expected ~S~]~%~S~@[~%~{~A --> ~S~}~]"
  +             :format-control "Unexpected token ~A (~S)~@[~%Expected ~A~]~%~S~@[~%~{~A --> ~S~}~]"
                :format-arguments (list
                                   (scanner-current-token scanner)
                                   (scanner-current-text scanner)
  
positive.code: (defmethod gen-in-firsts ((target (eql :lisp)) firsts)
    (if (null (cdr firsts))
        `(word-equal (scanner-current-token scanner) ',(car firsts))
        `(member  (scanner-current-token scanner) ',firsts
                  :test (function word-equal))))
  
  (defmethod gen-parsing-statement ((target (eql :lisp)) (grammar grammar) item)
  
negative.code:               (if emptyp
                    `(when ,(gen-in-firsts target expected-tokens)
                       (,(gen-parse-function-name target grammar item) scanner))
                    `(loop ; retrying
                           :until ,(gen-in-firsts target expected-tokens)
                           :do (ecase (error-unexpected-token scanner
                                                              ',expected-tokens
                                                              ',(assoc item (grammar-rules grammar)))
                                 (:retry)
                                 (:continue (loop-finish)))
                           :finally (return (,(gen-parse-function-name target grammar item) scanner))))))
          (ecase (car item)
            ((seq)
             (destructuring-bind (seq items actions) item
  