File: define.rkt

package info (click to toggle)
racket 7.9%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 178,684 kB
  • sloc: ansic: 282,112; lisp: 234,887; pascal: 70,954; sh: 27,112; asm: 16,268; makefile: 4,613; cpp: 2,715; ada: 1,681; javascript: 1,244; cs: 879; exp: 499; csh: 422; python: 274; xml: 106; perl: 104
file content (20 lines) | stat: -rw-r--r-- 650 bytes parent folder | download | duplicates (2)
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 ...)))