anchor.diff:    (let (grammar)
       (dolist (r rules (reverse grammar))
         (ecase (car r)
  -	((->)  (push (compile-rule (cdr r)) grammar))
  -	((r->) (push (compile-regex-rule (cdr r)) grammar))))))
  +	((->)  (push (compile-rule (list (cadr r) (caddr r) (cdddr r))) grammar))
  +	((r->) (push (compile-regex-rule (list (cadr r) (caddr r) (cdddr r))) grammar))))))
   
  +
  +;; statistics
   
   (defun save-grammar-doc (grammar filename)
     (let* ((len (length grammar))
  
positive.code:              (= 2 (length token)))
             (valid-side (side)
               (every #'identity (mapcar #'valid-token (parse-side side)))))
      (when (valid-length rule)
        (and (valid-side (car rule)) (valid-side (cadr rule))))))
  
  (defun valid-regex-rule (rule) (valid-length rule))
  
  (defun compile-rule (rule)
    (if (valid-rule rule)
  
negative.code: 
  
  (defun parse-side (string)
    (mapcar (lambda (x) (split-sequence #\_ x)) 
            (split-sequence #\Space string :remove-empty-subseqs t)))
  
  (defun compile-lhs-pattern (string)
  