anchor.diff:  (defun preposition-p (string)
     "Is STRING a PREPOSITION?"
     (member string *prepositions* :test #'string-equal))
  +
  +(defun adjective-p (string)
  +  "Is STRING a PREPOSITION?"
  +  (member string *adjectives* :test #'string-equal))
   
   (defun article-p (string)
     "Is STRING an ARTICLE?"
  
positive.code: (defun parse-command (token-list)
    "Uses a TOKEN-LIST to generate an AST"
    (cond ((verb-p (car token-list))
  	  (let ((noun-phrase (parse-noun-phrase (cdr token-list)))
  		(verb (car token-list)))
  	    (if noun-phrase
  		(list verb noun-phrase nil)
  		(list verb nil nil))))
  	 (t
  	  (format t "Unknown verb: '~a'" (car token-list)))))
  
  (defun parse-noun-phrase (token-list)
    "Parses a TOKEN-LIST into an LIST representing a NOUN PHRASE."
    (if (article-p (car token-list))
        (list (cadr token-list) (car token-list))
        (list (car token-list))))
  
  (defun verb-p (string)
    "Is STRING a VERB?"
  
negative.code: ;; The complete parser
  ;; Command ::= (adverb) verb (adverb) (<noun-phrase> (adverb) (preposition <noun-phrase> (adverb)))
  ;; Noun-phrase ::= <noun-group> (preposition <noun-group>)
  ;; noun-group ::= (article) (number) (adjective) pronoun | string
  ;; verb ::= *verbs*
  ;; adverb ::= *adverbs*
  ;; preposition ::= *prepositions*
  ;; article ::= *articles*
  ;; pronoun ::= *pronouns*
  ;; number ::= number, or number-string
  ;; adjective ::= any unknown token, can be used later.
  ;; noun ::= any unknown token, can be used later.
  ;; ----------------------------------------------
  ;; !!! TODO - Add everything to the parser.
  ;
  
  ;;; Ignoring adverbs for now.
  
  (defun parse-string (string)
    "Parses a STRING that was entered by PLAYER and returns an Abstract Syntax Tree"
    (parse-command (string->token-list string)))
  