anchor.diff:                     (error 'parser-error :text (format nil "Unknown verb: ~a" fail-verb))
                      (error 'parser-error :text "Invalid input"))))))
       `(:sentence . ((:verb . ,verb)
  -                   (:adverb . ,adverb)
  -                   (:noun-clause . ,noun-clause)
  -                   (:chat-string . ,chat-string)))))
  +                   ,@(when adverb `((:adverb . ,adverb)))
  +                   ,@(when noun-clause `((:noun-clause . ,noun-clause)))
  +                   ,@(when chat-string `((:chat-string . ,chat-string)))))))
   
   (defun parse-noun-clause (token-list adverb)
     "Generates the NOUN-CLAUSE list.
  
positive.code:              (if adverb
                   (error 'parser-error :text "Too many adverbs.")
                   (setf adverb (pop token-list))))))
      (let (prep1 prep2 dir-obj ind-obj)
        (maybe-parse-adverb)
        (when (prepositionp (car token-list))
          (setf prep1 (pop token-list)))
        (multiple-value-setq (dir-obj token-list) (parse-noun-group token-list))
        (maybe-parse-adverb)
        (when token-list
          (when (prepositionp (car token-list))
            (setf prep2 (pop token-list)))
          (multiple-value-setq (ind-obj token-list) (parse-noun-group token-list)))
        (values `((:direct-object
                   . (:prepositional-phrase
                      . ((:preposition . ,prep1)
                         (:object . ,dir-obj))))
                  (:indirect-object
                   . (:prepositional-phrase
                      . ((:preposition . ,prep2)
                         (:object . ,ind-obj)))))
                adverb
                token-list))))
  
  (defun parse-noun-group (token-list)
    "Parses a TOKEN-LIST into a LIST representing a NOUN GROUP (multiple noun
  
negative.code:                         (setf noun it))
                      (return-from parse-noun-phrase
                        (values `(:noun-phrase
                                  . (,@(when article `((:article . ,article)))
                                       (:noun . ,noun)
                                       ,@(when adjs `((:adjectives . ,adjs)))
                                       ,@(when amount `((:amount . ,amount)))
                                       ,@(when ordinality `((:ordinality . ,ordinality)))
                                       ,@(when owns `((:possesses . ,owns)))))
                                token-list)))
                     (t (when it (push it token-list))
                        (return-from parse-noun-phrase (values nil token-list)))))))))))
  