www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 53ae6058ffb066dde9ae82c0c5c18e8c7cf785f6
parent 86b76d2fe05a46d1ae36b129a9c28bd005cb15d2
Author: Georges Dupéron <georges.duperon@gmail.com>
Date:   Tue,  6 Sep 2016 01:22:56 +0200

Allow #:define-splicing-syntax-class in define/syntax-parse+simple.

Diffstat:
Mprivate/define-syntax+simple-api.rkt | 15+++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/private/define-syntax+simple-api.rkt b/private/define-syntax+simple-api.rkt @@ -32,18 +32,21 @@ (begin-for-syntax (define-syntax (define/syntax-parse+simple stx) - (syntax-case stx () - [(_ [name . args] . body) + (syntax-parse stx + [(_ (name:name-or-curry . args) + (~optional (~seq #:define-splicing-syntax-class define-class-name:id)) + . body) (let () (define introducer (make-syntax-introducer)) (define/with-syntax args-stxclass - (introducer (datum->syntax #'args 'args-stxclass) 'add)) + (or (attribute define-class-name) + (introducer (datum->syntax #'args 'args-stxclass) 'add))) (define/with-syntax body-introduced (introducer #'body 'add)) #'(begin - (define-syntax-class args-stxclass + (define-splicing-syntax-class args-stxclass #:auto-nested-attributes - (pattern args)) + (pattern (~seq . args))) (define/syntax-parse+simple/stxclass [name args-stxclass] . body-introduced)))])) @@ -84,7 +87,7 @@ (define (name stx2) (syntax-parameterize ([stx (make-rename-transformer #'stx2)]) (syntax-parse stx2 - [(_ . colon-stxclass) . body]))) + [(_ colon-stxclass) . body]))) (define def-private-simple-api (syntax-parameterize ([stx (make-rename-transformer #'stx/arg)]) (syntax-parse #'nothing