anchor.diff:                lists))))
   
   (defmacro define-grammar (name &body body)
  +  "DEFINE-GRAMMAR NAME OPTION... PRODUCTION...
  +PRODUCTION ::= (SYMBOL RHS...)
  +RHS ::= SYMBOL | (SYMBOL... [ACTION])
  +Defines the special variable NAME to be a grammar.  Options are as in
  +MAKE-GRAMMAR."
     (multiple-value-bind (options make-options productions) (parse-grammar body)
       (declare (ignore make-options))
       `(defparameter ,name
  
positive.code:      collection)))
  
  (defun lr1-add-collection (items collection)
    (declare (type lr1-collection items collection))
    (typecase items
      (list
  
negative.code:                options))))
  
  (defmacro define-parser (name &body body)
    "DEFINE-GRAMMAR NAME OPTION... PRODUCTION...
  PRODUCTION ::= (SYMBOL RHS...)
  RHS ::= SYMBOL | (SYMBOL... [ACTION])
  Defines the special variable NAME to be a parser.  Options are as in
  MAKE-GRAMMAR and MAKE-PARSER."
    (multiple-value-bind (options make-options productions) (parse-grammar body)
      `(defparameter ,name
        ',(apply #'make-parser
  