anchor.diff:              following rule:  name ::= name { operators next } .
               That functions will return a parse tree or :ERROR ; a cdr of expr.
   "
  -  (let ((parse-level-name (intern (format nil "PARSE-~A" name)))
  -        (parse-next-name  (intern (format nil "PARSE-~A" next))))
  +  (let ((parse-level-name (intern (concatenate 'string "PARSE-" (string name))))
  +        (parse-next-name  (intern (concatenate 'string "PARSE-" (string next)))))
       `(defun ,parse-level-name (expr)
          (let ((result))
            (multiple-value-bind (term rest) (,parse-next-name expr)
  
positive.code: DO:         Prints an error message formated from fmt and args.
  "
    (if *current-line*
      (format t "~&ERROR LINE ~D: ~A~%"
              *current-line* (apply (function format) nil fmt args))
      (format t "~&ERROR: ~A~%"  (apply (function format) nil fmt args)))
    (setq *current-line* nil))
  
  
  
negative.code: "
    (multiple-value-bind (tree rest) (parse-expr expr)
      (cond
        ((eq :error tree)
         (berror "SYNTAX ERROR IN EXPRESSION ~A." expr)
         nil)
        ((null rest)
         (basic-eval-tree tree))
        (t
         (berror "UNEXPECTED TOKEN IN EXPRESSION: ~A." (car rest))
         nil))))
  
  
  
  