#lang racket/base ;; Common syntax classes. (provide (for-syntax assertions name snapshot)) (require racket/set) (require (for-syntax racket/base)) (require (for-syntax syntax/parse)) (require (for-syntax syntax/srcloc)) (begin-for-syntax (define-splicing-syntax-class assertions (pattern (~seq #:assertions [exprs ...])) (pattern (~seq) #:attr (exprs 1) '())) (define-splicing-syntax-class name (pattern (~seq #:name N)) (pattern (~seq) #:attr N #'#f)) (define-splicing-syntax-class snapshot (pattern (~seq #:snapshot) #:attr dynamic? #'#f) (pattern (~seq) #:attr dynamic? #'#t)))