anchor.diff:                           (do-finite-set (z (fa-terminals fa))
                              (let ((q1 (funcall mover q0 z)))
                                (when q1
  -                               (format s "~&		if( 0 == ~A( context ) ) goto state~A;~&" (csymbol z) q1))))
  +                               (format s "~&		if( 0 == ~A ) goto state~A;~&"
  +                                       (print-c-parser-funcall nil z "context") q1))))
                            (when (finite-set-inp q0 (fa-accept fa))
                              (format s "~&		if( 0 == ~A( context ) ) return 0;~&" halt-function))
                            (format s "~&		return -1;~&"))
  
positive.code:                    (function-name "mgparse")
                     (halt-function "halt")
                     (context-type "void*")
                     (stub-pathname (make-pathname :directory (pathname-directory pathname)
                                                   :name (concatenate 'string (pathname-name pathname) "-terminal-stub")
                                                   :type "c")))
    (fa->c-stub fa :output stub-pathname :halt-function halt-function :context-type context-type)
    (fa->c-parser fa :output pathname
                  :header (format nil "#include \"~A.c\" ~&" (pathname-name stub-pathname))
                  :function-name function-name
  
negative.code:                      (format s "~%/* Each function must return 0 for an occuring terminal and nonzero otherwise */~%~%")
                       (do-finite-set (z (finite-set-add (fa-terminals fa) halt-function))
                         (format s "~&/* Terminal Symbol function for \"~A\" */~&" z)
                         (funcall print-stub s z context-type "context")))
                         ;(format s "~&~:[~;static ~]int ~A( ~A context ) {~%~%~%}~%~%" static-functions (csymbol z) context-type)))
                     output))
  
  (defun fa->c-parser (fa &key
  