;; $Id: stx-engine.scm,v 1.9502 2004/01/22 01:11:45 kl Exp kl $ ;============================================================================= ; Auxilliary (define (cerr . args) (for-each (lambda (x) (if (procedure? x) (x (current-error-port)) (display x (current-error-port)))) args)) (define (stx:error . messages) (cerr nl "STX: ") (apply cerr messages) (cerr nl) (exit -1)) (define null-template `(*default* ,(lambda (node bindings root env) (begin (warn "Unrecognized input element:" node) '())))) (define identity-template `(*default* ,(lambda (node bindings root env) node))) (define-syntax sxml:make-null-ss (syntax-rules () ((stx rule ...) (list ; default handler null-template ; handler for textual nodes (list '*text* (lambda (text) text)) rule ...)))) (define-syntax sxml:make-identity-ss (syntax-rules () ((stx rule ...) (list ; default handler identity-template ; handler for textual nodes (list '*text* (lambda (text) text)) rule ...)))) ;------------------------------------------------------------------------------ ; These macros provide support for abbreviated stylesheets: ; ; ::= (stx:stylesheet