parse.rkt (1258B)
1 #lang racket/base 2 (require (for-syntax racket/base) 3 racket/contract/base 4 "parse/pre.rkt" 5 "parse/experimental/provide.rkt" 6 "parse/experimental/contract.rkt") 7 (provide (except-out (all-from-out "parse/pre.rkt") 8 static) 9 expr/c) 10 (provide-syntax-class/contract 11 [static (syntax-class/c [(-> any/c any/c) (or/c string? symbol? #f)])]) 12 13 (begin-for-syntax 14 (require racket/contract/base 15 syntax/parse/private/residual-ct) 16 (provide pattern-expander? 17 (contract-out 18 [prop:syntax-class 19 (struct-type-property/c (or/c identifier? (-> any/c identifier?)))] 20 [pattern-expander 21 (-> (-> syntax? syntax?) pattern-expander?)] 22 [prop:pattern-expander 23 (struct-type-property/c (-> pattern-expander? (-> syntax? syntax?)))] 24 [syntax-local-syntax-parse-pattern-introduce 25 (-> syntax? syntax?)])) 26 27 (require (only-in (for-template syntax/parse) pattern-expander)) 28 #;(define pattern-expander 29 (let () 30 (struct pattern-expander (proc) #:transparent 31 #:omit-define-syntaxes 32 #:property prop:pattern-expander (λ (this) (pattern-expander-proc this))) 33 pattern-expander)))