anchor.diff:                                  (push (subseq line p i) parts)
                                   (setq p i))))
         (cond
  -       ((char= (char line i) (character " "))
  -        (push-part)
  -        (incf p))
  -       ((char= (char line i) (character "\""))
  -        (push-part)
  -        (incf i)
  -        (do ()
  -            ((or (<= (length line) i) (char= (char line i) (character "\""))))
  -          (incf i))
  -        (if (< i (length line)) (incf i))
  -        (push-part)
  -        (decf i))
  -       ((position (char line i) ",;:=+-*/^")
  -        (push-part)
  -        (incf p)
  -        (push (format nil "|~A|" (subseq line i p)) parts))
  -       ((char= (char line i) (character "<"))
  -        (push-part)
  -        (if (or (char= (char line (1+ i)) (character "="))
  -                (char= (char line (1+ i)) (character ">")))
  -          (progn (push (format nil "|~A|" (subseq line i (+ i 2))) parts)
  -                 (setq p (incf i)))
  -          (progn (incf p)
  -                 (push (format nil "|~A|" (subseq line i p)) parts))))
  -       ((char= (char line i) (character ">"))
  -        (push-part)
  -        (if  (char= (char line (1+ i)) (character "="))
  -          (progn (push (format nil "|~A|" (subseq line i (+ i 2))) parts)
  -                 (setq p (incf i)))
  -          (progn (incf p)
  -                 (push (format nil "|~A|" (subseq line i p)) parts))))
  -       ((or (alphanumericp (char line i))
  -            (char= (character "$") (char line i))
  -            (char= (character "%") (char line i))))
  -       (t
  -        (setq err (format nil "INVALID CHARACTER: '~A' AT POSITION ~D."
  -                          (char line i) i))
  -        (setq i (length line))))))
  +        ((char= (char line i) (character " "))
  +         (push-part)
  +         (incf p))
  +        ((char= (char line i) (character "\""))
  +         (push-part)
  +         (incf i)
  +         (do ()
  +             ((or (<= (length line) i) (char= (char line i) (character "\""))))
  +           (incf i))
  +         (if (< i (length line)) (incf i))
  +         (push-part)
  +         (decf i))
  +        ((position (char line i) ",;:=+-*/^")
  +         (push-part)
  +         (incf p)
  +         (push (format nil "|~A|" (subseq line i p)) parts))
  +        ((char= (char line i) (character "<"))
  +         (push-part)
  +         (if (or (char= (char line (1+ i)) (character "="))
  +                 (char= (char line (1+ i)) (character ">")))
  +             (progn (push (format nil "|~A|" (subseq line i (+ i 2))) parts)
  +                    (setq p (incf i)))
  +             (progn (incf p)
  +                    (push (format nil "|~A|" (subseq line i p)) parts))))
  +        ((char= (char line i) (character ">"))
  +         (push-part)
  +         (if  (char= (char line (1+ i)) (character "="))
  +              (progn (push (format nil "|~A|" (subseq line i (+ i 2))) parts)
  +                     (setq p (incf i)))
  +              (progn (incf p)
  +                     (push (format nil "|~A|" (subseq line i p)) parts))))
  +        ((or (alphanumericp (char line i))
  +             (char= (character "$") (char line i))
  +             (char= (character "%") (char line i))))
  +        (t
  +         (setq err (format nil "INVALID CHARACTER: '~A' AT POSITION ~D."
  +                           (char line i) i))
  +         (setq i (length line))))))
     );;SPLIT-LINE
   
   
  
positive.code:            or else nil.
  "
    (if (or (<= linenum 0) (<= (array-dimension *program* 0) linenum))
      (progn (setq *current-line* nil)
             nil)
      (do* ((linenum linenum (1+ linenum))
            (line (aref *program* linenum) (aref *program* linenum)) )
          ((or line (= (array-dimension *program* 0) (1+ linenum)))
           (if line
             (progn (setq *current-line* linenum)
                    line)
             (progn (setq *current-line* nil)
                    nil))))))
  
  
  
  
negative.code: RETURN:     A parse tree or :ERROR ; a cdr of expr.
  "
    (cond
      ((eq (car lnot) 'not)
       (multiple-value-bind (expr rest) (parse-lnot (cdr lnot))
         (if (eq :error expr)
             (values expr rest)
             (values (list 'not expr) rest))))
      ((eq '|(| (car lnot))
       (multiple-value-bind (expr rest) (parse-disj (cdr lnot))
         (if (eq '|)| (car rest))
             (values expr (cdr rest))
             (progn
               (berror "MISSING A CLOSING PARENTHESE.")
               (values :error nil)))))
      (t (parse-comp lnot))))
  
  
  (make-parse-level fact (^)       simp)
  