1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
#lang racket/base
(require (for-syntax racket/base
syntax/parse
"private/sc.rkt"))
(provide define-simple-macro
define-syntax-parser
(for-syntax (all-from-out syntax/parse)))
(define-syntax (define-simple-macro stx)
(syntax-parse stx
[(define-simple-macro (macro:id . pattern) . body)
#`(define-syntax macro
(syntax-parser/template
#,((make-syntax-introducer) stx)
[((~var macro id) . pattern) . body]))]))
(define-simple-macro (define-syntax-parser macro:id option-or-clause ...)
(define-syntax macro
(syntax-parser option-or-clause ...)))
|