parse.rkt (1146B)
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 [pattern-expander 19 (-> (-> syntax? syntax?) pattern-expander?)] 20 [prop:pattern-expander 21 (struct-type-property/c (-> pattern-expander? (-> syntax? syntax?)))] 22 [syntax-local-syntax-parse-pattern-introduce 23 (-> syntax? syntax?)])) 24 25 (require (only-in (for-template syntax/parse) pattern-expander)) 26 #;(define pattern-expander 27 (let () 28 (struct pattern-expander (proc) #:transparent 29 #:omit-define-syntaxes 30 #:property prop:pattern-expander (λ (this) (pattern-expander-proc this))) 31 pattern-expander)))