;; $Id: stx-engine.scm,v 1.9502 2004/01/22 01:11:45 kl Exp kl $ ;============================================================================= ; Auxilliary (define stx:version (string-append " $Revision: 1.9502 $" nl " $Date: 2004/01/22 01:11:45 $")) (define (stx:error . messages) (cerr nl "STX: ") (apply cerr messages) (cerr nl) (exit -1)) ;============================================================================= ; Syntactic sugar ; This macro emulates of XSLT ; "select" must be a node-set ; If omitted, (sxml:content current-node) is used. (define-macro (xsl:apply-templates . select) (cond ((null? select) `(stx:apply-templates (sxml:content current-node) stx:templates current-root $)) ((null? (cdr select)) `(stx:apply-templates ,(car select) stx:templates current-root $)) (else (myenv:error "Invalid parameters for 'xsl:apply-template': " select)))) ;------------------------------------------------------------------------------ ; These macros provide support for abbreviated stylesheets: ; ; ::= (stx:stylesheet