anchor.diff:    (:! :F  --> :id)
     (:! :F --> :num))
   
  +(define-random-test
  +    grammar-8-random-reject-test grammar-8-parser 50 :S nil
  +  (:S --> :E)
  +  (:E --> :T :E1)
  +  (:E1 --> #\+ :T)
  +  (:E1 --> :eps)
  +  (:T --> :F :T1)
  +  (:T1 --> #\* :F)
  +  (:T1 --> :eps)
  +  (:! :F  --> #\( (:! (uniform :F :S :T)) #\))
  +  (:F  --> :id)
  +  (:F --> :num)
  +  (:! :F --> :err))
  +   
  +
   (define-accept-test grammar-8-accept-test grammar-8-parser ()
     (list :id :$)
     (list :num :$)
  
positive.code:   (:S1 --> #\( :S1 #\+ :F #\))
    (:F --> :a))
  
  (define-random-accept-test
      grammar-9-random-accept-test grammar-9-parser 50 :S
    (:S --> :S1)
    (:S1 --> :F)
    (:S1 --> #\( :S1 #\+ :F #\))
  
negative.code:        (check
  	,@(loop
  	     for c in cases
  	     collect (if accept-reject-p
  			 `(,parser-name ',(append c (list :$)))
  			 `(or (>= 15 (length ',(append c (list :$)))) (not (,parser-name ',(append c (list :$)))))))))))
  
  ;;;; TESTS
  
  