anchor.diff:          (values (1+ start) (string c))))))
   
   (grammar-rule concatenate-symbol
  -  (grammar-string ","))
  +  (grammar-func
  +   (grammar-string ",")
  +   (lambda (x) (declare (ignore x))
  +           :and)))
   
   (grammar-rule defining-symbol
  -  (grammar-string "="))
  +  (grammar-func
  +   (grammar-string "=")
  +   (lambda (x) (declare (ignore x))
  +           :=)))
   
   (grammar-rule definition-separator-symbol
  -  (grammar-or (grammar-string "|")
  -              (grammar-string "/")
  -              (grammar-string "!")))
  +  (grammar-func
  +   (grammar-or (grammar-string "|")
  +               (grammar-string "/")
  +               (grammar-string "!"))
  +   (lambda (x) (declare (ignore x))
  +           :or)))
   
   (grammar-rule end-comment-symbol
     (grammar-string "*)"))
  
positive.code:   "see 4.14"
    (grammar-func (grammar-and letter
                               (grammar-* meta-identifier-character))
                  (lambda (x) `(:meta-identifier ,(format nil "~A~{~A~}" (car x) (cdr x))))))
    
  
  (grammar-rule special-sequence-character
  
negative.code: ;(iso14977:syntax-abstract "test='ab c',\"g\'night\"|'c','d';")
  ;(iso14977:syntax-abstract "test='a b','c d'|3*('e','f');")
  ;(iso14977:syntax "(* hello *) test='ab c',\"g\'night\"(*test*) | 'c' , 'd';")
  ;(iso14977:syntax "(* hello *) test='ab c',\"g\'night\"(*test*) | 'c' , 'd', {'e'}, ['f'] | 3 * 'q'; test2='b'")