(module macro-stx mzscheme (require "ns-utils.ss" ;; lookup not-found "rpn.ss" ;; rpn-compiler-stx "macro-prim.ss" ;; macro-prim: "macro-runtime.ss" ;; postponed-word "rpn-runtime.ss") ;; state-lift (require-for-syntax "macro-tx.ss") ;; macro-rpn (provide macro-stx) ;; At run time, when the name space is available, a distinction ;; needs to be made: a symbol either refers to an executable macro ;; which can generate code, or an already compiled target word, to ;; which we have to compile a call using the 'compile' macro. (define (make-postpone paths) (lambda (word) (or (lookup paths word) (postponed-word word)))) (rpn-compiler-stx macro-stx macro-rpn make-postpone) )