Ugh, forgot to git-add this
This commit is contained in:
parent
6703c5ef9a
commit
4f8bc6e5af
|
@ -0,0 +1,21 @@
|
||||||
|
#lang racket/base
|
||||||
|
;; Common syntax classes.
|
||||||
|
|
||||||
|
(provide (for-syntax assertions
|
||||||
|
name))
|
||||||
|
|
||||||
|
(require (for-syntax racket/base))
|
||||||
|
(require (for-syntax syntax/parse))
|
||||||
|
(require (for-syntax syntax/srcloc))
|
||||||
|
|
||||||
|
(require "trie.rkt")
|
||||||
|
|
||||||
|
(begin-for-syntax
|
||||||
|
(define-splicing-syntax-class assertions
|
||||||
|
(pattern (~seq #:assertions P0) #:attr P #'(pattern->trie '<initial-assertions> P0))
|
||||||
|
(pattern (~seq #:assertions* P)) ;; P should be an expression yielding a trie
|
||||||
|
(pattern (~seq) #:attr P #'trie-empty))
|
||||||
|
|
||||||
|
(define-splicing-syntax-class name
|
||||||
|
(pattern (~seq #:name N))
|
||||||
|
(pattern (~seq) #:attr N #'#f)))
|
Loading…
Reference in New Issue