provide syntax-parse/typed-syntax as parse-typed-syntax
- but dont remove the old name - closes #50
This commit is contained in:
parent
36c24c04b9
commit
b23ee8fc3f
|
@ -675,7 +675,7 @@
|
|||
#:with out
|
||||
(cond
|
||||
[(×? #'τ_e) ;; e is tuple
|
||||
(syntax-parse/typed-syntax #'clauses
|
||||
(parse-typed-syntax #'clauses
|
||||
[([x ... (~datum ->) e_body]) ≫
|
||||
#:with (~× ty ...) #'τ_e
|
||||
#:fail-unless (stx-length=? #'(ty ...) #'(x ...))
|
||||
|
@ -689,7 +689,7 @@
|
|||
(let- ([x- (acc z)] ...) e_body-))
|
||||
⇒ ty_body]])]
|
||||
[(List? #'τ_e) ;; e is List
|
||||
(syntax-parse/typed-syntax #'clauses
|
||||
(parse-typed-syntax #'clauses
|
||||
[([(~or (~and (~and xs [x ...]) (~parse rst (generate-temporary)))
|
||||
(~and (~seq (~seq x (~datum ::)) ... rst:id) (~parse xs #'())))
|
||||
(~datum ->) e_body] ...+) ≫
|
||||
|
@ -721,7 +721,7 @@
|
|||
(let- ([x- (acc1 z)] ... [rst- (acc2 z)]) e_body-)] ...))
|
||||
⇒ (⊔ ty_body ...)]])]
|
||||
[else ;; e is variant
|
||||
(syntax-parse/typed-syntax #'clauses
|
||||
(parse-typed-syntax #'clauses
|
||||
[([Clause:id x:id ...
|
||||
(~optional (~seq #:when e_guard) #:defaults ([e_guard #'(ext-stlc:#%datum . #t)]))
|
||||
(~datum ->) e_c_un] ...+) ≫ ; un = unannotated with expected ty
|
||||
|
|
|
@ -32,6 +32,7 @@ and then press Control-@litchar{\}.
|
|||
|
||||
@section{Forms}
|
||||
|
||||
@; define-typed-syntax---------------------------------------------------------
|
||||
@defform*[
|
||||
#:literals (≫ ⊢ ⇒ ⇐ ≻ : --------)
|
||||
((define-typed-syntax (name-id . pattern) ≫
|
||||
|
@ -179,7 +180,13 @@ attach type information to the top-level @tt{x} identifier, so the
|
|||
|
||||
]}
|
||||
|
||||
@; parse-typed-syntax ---------------------------------------------------------
|
||||
@defform[(parse-typed-syntax stx option ... rule ...+)]{
|
||||
A @racket[syntax-parse]-like form that supports
|
||||
@racket[define-typed-syntax]-style clauses. In particular, see the
|
||||
"rule" part of @racket[define-typed-syntax]'s grammar above.}
|
||||
|
||||
@; define-primop --------------------------------------------------------------
|
||||
@defform*[((define-primop typed-op-id τ)
|
||||
(define-primop typed-op-id : τ)
|
||||
(define-primop typed-op-id op-id τ)
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
-define-typed-syntax -define-syntax-category)
|
||||
define-typed-syntax define-syntax-category
|
||||
(rename-out [define-typed-syntax define-typerule])
|
||||
(for-syntax syntax-parse/typed-syntax))
|
||||
(for-syntax syntax-parse/typed-syntax
|
||||
(rename-out
|
||||
[syntax-parse/typed-syntax parse-typed-syntax])))
|
||||
|
||||
(require (except-in (rename-in
|
||||
macrotypes/typecheck
|
||||
|
|
Loading…
Reference in New Issue
Block a user