git.fiddlerwoaroof.com
Raw Blame History
;;; ****************************************************************
;;; OPS5 Interpreter ***********************************************
;;; ****************************************************************
;;; This Common Lisp version of OPS5 is in the public domain.  It is based
;;; in part on based on a Franz Lisp implementation done by Charles L. Forgy
;;; at Carnegie-Mellon University, which was placed in the public domain by
;;; the author in accordance with CMU policies.  Ported to Common Lisp by 
;;; George Wood and Jim Kowalski. CMU Common Lisp modifications by
;;; Dario Guise, Skef Wholey, Michael Parzen, and Dan Kuokka. 
;;; Modified to work in CLtL1, CLtL2 and X3J13 compatible lisps by 
;;; Mark Kantrowitz on 14-OCT-92.
;;; 
;;; This code is made available is, and without warranty of any kind by the
;;; authors or by Carnegie-Mellon University.
;;;

;;; 15-OCT-92 mk    Modified definition of RESET-OPS.

(in-package "OPS")

(defparameter *ops-version* "19-OCT-92")

(defun ops-init ()
  ;; Allows ^ , { , and } operators to be right next to another symbol.
  (set-macro-character #\{ #'(lambda (s c)
                               (declare (ignore s c))
                               '\{))
  (set-macro-character #\} #'(lambda (s c)
                               (declare (ignore s c))
                               '\}))
  (set-macro-character #\^ #'(lambda (s c)
                               (declare (ignore s c))
                               '\^))
  (backup-init)
  (compile-init)
  (main-init)
  (match-init)
  (io-init)
  (rhs-init)
  (format t "~&Common Lisp OPS5 interpreter, version ~A.~&"
          *ops-version*))

(defun reset-ops ()
  "Clears the state of OPS to allow a new rule set to be loaded."

  ;; Tell the user what we're doing.
  (format t "~&Resetting OPS5 interpreter: 
             ~&   deleting productions, working memory, etc.")
  (remove *)
  (ops-init)
  (clear-ops-hash-tables)
  ;; (i-g-v)
  (setq *class-list* nil
        *pcount* 0))

;;; *EOF*