provide syntax-parse/typed-syntax as parse-typed-syntax

- but dont remove the old name
- closes #50
This commit is contained in:
Stephen Chang 2017-01-24 14:51:03 -05:00
parent 36c24c04b9
commit b23ee8fc3f
3 changed files with 13 additions and 4 deletions

View File

@ -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

View File

@ -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 τ)

View File

@ -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