Replace syntax-map with stx-map in plai.
This commit is contained in:
parent
d6b63dddf7
commit
09ff5cafd4
|
@ -55,7 +55,7 @@
|
||||||
(plai-syntax-error 'type-case stx-loc type-case:not-a-type)))
|
(plai-syntax-error 'type-case stx-loc type-case:not-a-type)))
|
||||||
|
|
||||||
(require (for-syntax syntax/parse
|
(require (for-syntax syntax/parse
|
||||||
racket/syntax unstable/syntax
|
racket/syntax syntax/stx
|
||||||
(only-in racket/function curry)))
|
(only-in racket/function curry)))
|
||||||
|
|
||||||
(define-for-syntax (syntax-string s)
|
(define-for-syntax (syntax-string s)
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
;; Ensure variant names are unique.
|
;; Ensure variant names are unique.
|
||||||
(assert-unique #'(variant ...))
|
(assert-unique #'(variant ...))
|
||||||
;; Ensure each set of fields have unique names.
|
;; Ensure each set of fields have unique names.
|
||||||
(syntax-map assert-unique #'((field ...) ...))
|
(stx-map assert-unique #'((field ...) ...))
|
||||||
|
|
||||||
;; Ensure type and variant names are unbound
|
;; Ensure type and variant names are unbound
|
||||||
(map (assert-unbound 'define-type)
|
(map (assert-unbound 'define-type)
|
||||||
|
@ -119,51 +119,51 @@
|
||||||
|
|
||||||
(with-syntax
|
(with-syntax
|
||||||
([((field/c-val ...) ...)
|
([((field/c-val ...) ...)
|
||||||
(syntax-map generate-temporaries #'((field/c ...) ...))]
|
(stx-map generate-temporaries #'((field/c ...) ...))]
|
||||||
[((the-field/c ...) ...)
|
[((the-field/c ...) ...)
|
||||||
(syntax-map generate-temporaries #'((field/c ...) ...))]
|
(stx-map generate-temporaries #'((field/c ...) ...))]
|
||||||
[datatype?
|
[datatype?
|
||||||
(format-id stx "~a?" #'datatype #:source #'datatype)]
|
(format-id stx "~a?" #'datatype #:source #'datatype)]
|
||||||
[(variant? ...)
|
[(variant? ...)
|
||||||
(syntax-map (λ (x) (format-id stx "~a?" x #:source x)) #'(variant ...))]
|
(stx-map (λ (x) (format-id stx "~a?" x #:source x)) #'(variant ...))]
|
||||||
[(variant*? ...)
|
[(variant*? ...)
|
||||||
(syntax-map (λ (x) (format-id x "~a?" x #:source x)) #'(variant* ...))]
|
(stx-map (λ (x) (format-id x "~a?" x #:source x)) #'(variant* ...))]
|
||||||
[(make-variant ...)
|
[(make-variant ...)
|
||||||
(syntax-map (λ (x) (format-id stx "make-~a" x #:source x)) #'(variant ...))]
|
(stx-map (λ (x) (format-id stx "make-~a" x #:source x)) #'(variant ...))]
|
||||||
[(make-variant* ...)
|
[(make-variant* ...)
|
||||||
(syntax-map (λ (x) (format-id x "make-~a" x #:source x)) #'(variant* ...))])
|
(stx-map (λ (x) (format-id x "make-~a" x #:source x)) #'(variant* ...))])
|
||||||
|
|
||||||
(with-syntax
|
(with-syntax
|
||||||
([((f:variant? ...) ...)
|
([((f:variant? ...) ...)
|
||||||
(syntax-map (lambda (v? fs)
|
(stx-map (lambda (v? fs)
|
||||||
(syntax-map (lambda (f) v?) fs))
|
(stx-map (lambda (f) v?) fs))
|
||||||
#'(variant? ...)
|
#'(variant? ...)
|
||||||
#'((field ...) ...))]
|
#'((field ...) ...))]
|
||||||
[((variant-field ...) ...)
|
[((variant-field ...) ...)
|
||||||
(syntax-map (lambda (variant fields)
|
(stx-map (lambda (variant fields)
|
||||||
(syntax-map (λ (f) (format-id stx "~a-~a" variant f #:source f))
|
(stx-map (λ (f) (format-id stx "~a-~a" variant f #:source f))
|
||||||
fields))
|
fields))
|
||||||
#'(variant ...)
|
#'(variant ...)
|
||||||
#'((field ...) ...))]
|
#'((field ...) ...))]
|
||||||
[((variant*-field ...) ...)
|
[((variant*-field ...) ...)
|
||||||
(syntax-map (lambda (variant fields)
|
(stx-map (lambda (variant fields)
|
||||||
(syntax-map (λ (f) (format-id variant "~a-~a" variant f #:source f))
|
(stx-map (λ (f) (format-id variant "~a-~a" variant f #:source f))
|
||||||
fields))
|
fields))
|
||||||
#'(variant* ...)
|
#'(variant* ...)
|
||||||
#'((field ...) ...))]
|
#'((field ...) ...))]
|
||||||
|
|
||||||
[((set-variant-field! ...) ...)
|
[((set-variant-field! ...) ...)
|
||||||
(syntax-map (lambda (variant fields)
|
(stx-map (lambda (variant fields)
|
||||||
(syntax-map (λ (f) (format-id stx "set-~a-~a!" variant f #:source f))
|
(stx-map (λ (f) (format-id stx "set-~a-~a!" variant f #:source f))
|
||||||
fields))
|
fields))
|
||||||
#'(variant ...)
|
#'(variant ...)
|
||||||
#'((field ...) ...))]
|
#'((field ...) ...))]
|
||||||
[((set-variant*-field! ...) ...)
|
[((set-variant*-field! ...) ...)
|
||||||
(syntax-map (lambda (variant fields)
|
(stx-map (lambda (variant fields)
|
||||||
(syntax-map (λ (f) (format-id variant "set-~a-~a!" variant f #:source f))
|
(stx-map (λ (f) (format-id variant "set-~a-~a!" variant f #:source f))
|
||||||
fields))
|
fields))
|
||||||
#'(variant* ...)
|
#'(variant* ...)
|
||||||
#'((field ...) ...))])
|
#'((field ...) ...))])
|
||||||
|
|
||||||
(syntax/loc stx
|
(syntax/loc stx
|
||||||
(begin
|
(begin
|
||||||
|
|
Loading…
Reference in New Issue
Block a user