Next: expander examples top-level, Up: expander examples [Index]
All the examples are given as executable code, but when the output of the pretty printer is shown: it is edited for readability.
Unless otherwise specified, all the examples are R6RS programs, starting with the prelude:
(import (vicare)
(prefix (vicare expander) xp::))
(begin-for-syntax
(define (id->label id)
(xp::syntactic-identifier->label id))
(define (label->descriptor lab)
(xp::label->syntactic-binding-descriptor lab
(xp::current-inferior-lexenv)))
(define (id->descriptor id)
(label->descriptor (id->label id)))
(define (id-rib*/no-top id)
(reverse (cdr (reverse (xp::stx-rib* id)))))
(define (eq-ribs? id1 id2)
(eq? (xp::stx-rib* id1) (xp::stx-rib* id2)))
#| end of BEGIN-FOR-SYNTAX |# )
and ending with the postlude:
(begin-for-syntax (flush-output-port (current-output-port))) (flush-output-port (current-output-port))