anchor.diff:  (defpackage #:yacc
     (:use #:common-lisp)
     (:export #:make-production #:make-grammar #:make-parser #:parse-with-lexer
  -           #:define-grammar #:define-parser
  +           #:define-grammar #:define-parser #:yacc-eof-symbol
              #:yacc-parse-error #:yacc-parse-error-terminal
  -           #:yacc-parse-error-value #:yacc-parse-error-expected-terminals)
  +           #:yacc-parse-error-value #:yacc-parse-error-expected-terminals
  +           #:insert-terminal #:replace-terminal #:skip-terminal)
     #+CMU
     (:import-from #:extensions #:required-argument #:memq)
     )
   
  +;;;; changes since being added to the jwacs repository:
  +
  +;;; James Wright Aug 24/2006
  +;;; - Added INSERT-TERMINAL, REPLACE-TERMINAL, and SKIP-TERMINAL restarts
  +
   (in-package #:yacc)
  -
  -(defparameter *debug* nil)
  -
  -(if *debug*
  -    (pushnew :yacc-debug cl:*features*)
  -    (setf cl:*features* (remove :yacc-debug cl:*features*)))
   
   #-CMU
   (defun required-argument () (error "A required argument was not supplied"))
  
positive.code:                      (yacc-parse-error-value e)
                       (yacc-parse-error-expected-terminals e)))))
  
  (defun parse-with-lexer (lexer parser)
  "Parse the stream of symbols provided by LEXER using PARSER.
  LEXER is a function of no arguments returning a symbol and a semantic value,
  and should return (VALUES NIL NIL) when the end of input is reached.
  Handle YACC-PARSE-ERROR to provide custom error reporting."
  
negative.code:                  (cond
                     ((and (eq 's-prime (item-symbol item))
                           (= 1 (item-position item)))
                      (when (member 'yacc-eof-symbol la)
                        (set-action k (list 'yacc-eof-symbol)
                                    (make-accept-action)
                                    (item-production item))))
                     (t
  