From 396e2d9896affa56d9d08d2c3d4f5b9d51794926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Thu, 6 Jul 2023 18:42:48 +0200 Subject: [PATCH] Add support for define-syntax/doc to duck. --- src/duck.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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 ...))