24 lines
521 B
Racket
24 lines
521 B
Racket
#lang scheme/base
|
|
|
|
;; PLT Scheme pre-requisites for any phase
|
|
|
|
(require (for-syntax scheme/base))
|
|
|
|
(provide
|
|
(rename-out [datum #%datum])
|
|
(rename-out [#%plain-app #%app])
|
|
#%top #%top-interaction)
|
|
|
|
;; ----------------------------------------
|
|
;; Datum
|
|
|
|
(define-syntax (datum stx)
|
|
(syntax-case stx ()
|
|
[(_ . thing)
|
|
(if (vector? (syntax-e #'thing))
|
|
(raise-syntax-error 'r6rs
|
|
"a vector is not an expression"
|
|
#'thing)
|
|
#`(quote thing))]))
|
|
|