Cleanup and expand * expansions.
This commit is contained in:
parent
4d81684cff
commit
2fb41c172e
1 changed files with 18 additions and 7 deletions
25
src/duck.scm
25
src/duck.scm
|
@ -35,7 +35,7 @@
|
|||
(chicken syntax))
|
||||
|
||||
(define-syntax duck-extract-defines
|
||||
(syntax-rules (define define/doc make-parameter)
|
||||
(syntax-rules (define define/doc make-parameter define* define*/doc)
|
||||
((_ (define var val))
|
||||
(define var val))
|
||||
((_ (define/doc var doc val))
|
||||
|
@ -54,18 +54,29 @@
|
|||
((_ (define/doc (proc . args) doc expr ...))
|
||||
(define (proc . args) expr ...))
|
||||
|
||||
((_ (define* (proc . args) expr ...))
|
||||
(define* (proc . args) expr ...))
|
||||
((_ (define*/doc (proc . args) doc expr ...))
|
||||
(define* (proc . args) expr ...))
|
||||
|
||||
((_ expr)
|
||||
expr)))
|
||||
|
||||
(define-syntax duck-extract-doc
|
||||
(syntax-rules (define/doc make-parameter)
|
||||
((_ mod (define/doc (proc . args) doc expr ...))
|
||||
(syntax-rules (define/doc make-parameter define*/doc)
|
||||
((_ (define/doc (proc . args) doc expr ...))
|
||||
(list 'FUN 'proc `doc 'args))
|
||||
((_ mod (define/doc var doc arg (make-parameter val)))
|
||||
((_ (define*/doc (proc . args) doc expr ...))
|
||||
(list 'FUN 'proc `doc 'args))
|
||||
((_ (define/doc var doc arg (make-parameter val)))
|
||||
(list 'PAR 'var `doc 'arg 'val))
|
||||
((_ mod (define/doc var doc val))
|
||||
((_ (define*/doc var doc arg (make-parameter val)))
|
||||
(list 'PAR 'var `doc 'arg 'val))
|
||||
((_ (define/doc var doc val))
|
||||
(list 'VAR 'var `doc 'val))
|
||||
((_ mod expr)
|
||||
((_ (define*/doc var doc val))
|
||||
(list 'VAR 'var `doc 'val))
|
||||
((_ expr)
|
||||
#f)))
|
||||
|
||||
(define-syntax module*
|
||||
|
@ -83,7 +94,7 @@
|
|||
(duck-extract-defines expr) ...
|
||||
(define modname
|
||||
(list (list 'MOD 'modname `(doc ...))
|
||||
(duck-extract-doc modname expr) ...))))
|
||||
(duck-extract-doc expr) ...))))
|
||||
((_ modname expr ...)
|
||||
(module* modname #:doc () expr ...))))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue