More safe rules

Hi,

I believe that the use of the global  \*rules* unsafe. So I made ​​a small change that allows my to use own safe rules. With this change, I can write like this:

    (defvar *my-rules* (make-hash-table))
    
    (defvar *my-compiled-grammar* nil)
    
    (defmacro with-my-rules (&body body)
      `(let ((*rules* *my-rules*))
         ,@body))
    
    (defun compile-my-grammar ()
      (setf *my-compiled-grammar*
            (with-my-rules
              (compile-grammar 'my-toplevel-symbol))))
    
    (defmacro define-my-rule (symbol expression &body options)
      `(with-my-rules
         (defrule ,symbol ,expression ,@options)))
    
    (defun parse-my-doc (text)
      (unless *my-compiled-grammar*
        (compile-my-grammar))
      (parse *my-compiled-grammar* text))