anchor.diff:                                   (constraintp constraint))
                        nil "This pattern has a malformed slot: ~S" pattern)
                    (when (variablep field)
  -                   (push-slot-binding field name location bindings))
  +                   (push-slot-binding field name bindings))
                    (when (consp constraint)
  -                   (push-test-bindings constraint bindings))
  +                   (push-constraint-bindings constraint bindings))
                    (make-pattern-slot :name name :value field
                                       :constraint constraint
                                       :bindings (nreverse bindings))))
  
positive.code:     (cl:assert (and (listp form)
                      (= (length form) 1)) nil
        "The body of a TEST CE must be a single Lisp form")
      (values
       (loop for obj in (utils:flatten form)
           if (variablep obj)
           collect (cons obj (find-or-set-binding-address obj location)))
       pattern)))
  
  (defun parse-default-pattern (pattern location)
    (let ((head (first pattern)))
      (cl:assert (find-meta-fact head nil) nil
        "This pattern has no meta data: ~S" pattern)
      (labels ((parse-slot (slot)
                 (let ((name (first slot))
                       (field (second slot))
                       (constraint (third slot))
  
negative.code: ;;; modify) is performed elsewhere as these constructs undergo additional
  ;;; transformations.
  ;;;
  ;;; $Id: parser.lisp,v 1.10 2002/08/26 16:03:48 youngde Exp $
  
  (in-package "LISA")
  
  