summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-09-27 00:29:28 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-09-27 00:29:28 +0200
commit3b849eb2312f5ecc0ecb5a20fe574f8f69d4deb4 (patch)
treeda86cf38bdd6ca81aff7480f814517f76711c12a
parenta47fe92e1f5729a9f80d22e8437fb6d961d411c4 (diff)
downloadgeiser-chez-3b849eb2312f5ecc0ecb5a20fe574f8f69d4deb4.tar.gz
geiser-chez-3b849eb2312f5ecc0ecb5a20fe574f8f69d4deb4.tar.bz2
PLT: autodoc arg names scanning: better case-lambda, syntax-rules added.
-rw-r--r--scheme/plt/geiser/autodoc.ss10
1 files changed, 7 insertions, 3 deletions
diff --git a/scheme/plt/geiser/autodoc.ss b/scheme/plt/geiser/autodoc.ss
index c349f6e..7fbdb0c 100644
--- a/scheme/plt/geiser/autodoc.ss
+++ b/scheme/plt/geiser/autodoc.ss
@@ -32,7 +32,7 @@
(name (car loc))
(path (cdr loc))
(sgns (and path (find-signatures path name id)))
- (sgns (if (list? sgns) sgns '())))
+ (sgns (and sgns (if (list? sgns) sgns '()))))
(and sgns
`(,id
(name . ,name)
@@ -83,14 +83,18 @@
(add-signature! name formals store))
((list 'define name (list 'lambda formals body ...))
(add-signature! name formals store))
- ((list 'define name (list 'case-lambda forms ...))
- (for-each (lambda (f) (parse-datum! (list 'define name (cons 'lambda f)))) forms))
+ ((list 'define name (list 'case-lambda clauses ...))
+ (for-each (lambda (c) (add-signature! name (car c) store)) (reverse clauses)))
((list 'define-for-syntax (list name formals ...) body ...)
(add-signature! name formals store))
((list 'define-for-syntax name (list 'lambda formals body ...))
(add-signature! name formals store))
((list 'define-syntax-rule (list name formals ...) body ...)
(add-signature! name formals store))
+ ((list 'define-syntax name (list 'syntax-rules specials clauses ...))
+ (for-each (lambda (c)
+ (add-signature! name (cdar c) store))
+ (reverse clauses)))
(_ void)))
(define (add-signature! name formals store)