diff --git a/src/duck.scm b/src/duck.scm index dd1d284..154118a 100644 --- a/src/duck.scm +++ b/src/duck.scm @@ -35,7 +35,16 @@ (chicken syntax)) (define-syntax duck-extract-defines - (syntax-rules (define define/doc make-parameter define* define*/doc) + (syntax-rules + (define define/doc + make-parameter + define* define*/doc + define-syntax define-syntax/doc) + ((_ (define-syntax id transformer)) + (define-syntax id transformer)) + ((_ (define-syntax/doc id doc transformer)) + (define-syntax id transformer)) + ((_ (define var val)) (define var val)) ((_ (define/doc var doc val)) @@ -63,7 +72,9 @@ expr))) (define-syntax duck-extract-doc - (syntax-rules (define/doc make-parameter define*/doc) + (syntax-rules (define/doc make-parameter define*/doc define-syntax/doc) + ((_ (define-syntax/doc id doc transformer)) + (list 'STX 'id `doc)) ((_ (define/doc (proc . args) doc expr ...)) (list 'FUN 'proc `doc 'args)) ((_ (define*/doc (proc . args) doc expr ...))