#| -------------------------------- Things for the transducer to do: Keep track of macros, and expand them. Keep track of procedures to integrate (i.e. those with arguments), and integrate them. Integration entails substituting actuals for formals in lambda-combinations. (But not in LET's, since a LET is presumably introduced explicitly because that's not desirable.) Propagate statements inside of LET's: (set! reg (let ((x ...)) ,,,)) ==> (let ((x ...)) (set! reg ,,,)) Flatten out LET's so they use global temporary registers. -------------------- The output: (tagbody () tag1 (statement11) (statement12) ... tag2 ... ...) A statement is one of (set! ) An expression can do the following Allocate a chunk or byte-vector |# (define (transduce file-list) ( ;;; Local Modes: ;;; Lisp tagbody Indent:1 ;;; End: