summaryrefslogtreecommitdiff
path: root/scheme/plt/geiser/autodoc.ss
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-09-27 00:32:28 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-09-27 00:32:28 +0200
commitb8573ff1667349e87980fd1b37f48512d99449cf (patch)
tree5481647dfdddf9a26048d1b7db2b2cecf9cc5148 /scheme/plt/geiser/autodoc.ss
parent3b849eb2312f5ecc0ecb5a20fe574f8f69d4deb4 (diff)
downloadgeiser-chez-b8573ff1667349e87980fd1b37f48512d99449cf.tar.gz
geiser-chez-b8573ff1667349e87980fd1b37f48512d99449cf.tar.bz2
PLT: Ignoring errors during argument name scanning for autodoc.
Diffstat (limited to 'scheme/plt/geiser/autodoc.ss')
-rw-r--r--scheme/plt/geiser/autodoc.ss45
1 files changed, 23 insertions, 22 deletions
diff --git a/scheme/plt/geiser/autodoc.ss b/scheme/plt/geiser/autodoc.ss
index 7fbdb0c..1bec9fd 100644
--- a/scheme/plt/geiser/autodoc.ss
+++ b/scheme/plt/geiser/autodoc.ss
@@ -74,28 +74,29 @@
result))
(define (parse-datum! datum store)
- (match datum
- ((list 'module name lang forms ...)
- (for-each (lambda (f) (parse-datum! f store)) forms))
- ((list 'define (list (list name formals ...) other ...) body ...)
- (add-signature! name formals store))
- ((list 'define (list name formals ...) body ...)
- (add-signature! name formals store))
- ((list 'define name (list 'lambda formals body ...))
- (add-signature! name formals store))
- ((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)))
+ (with-handlers ((exn? (lambda (_) void)))
+ (match datum
+ ((list 'module name lang forms ...)
+ (for-each (lambda (f) (parse-datum! f store)) forms))
+ ((list 'define (list (list name formals ...) other ...) body ...)
+ (add-signature! name formals store))
+ ((list 'define (list name formals ...) body ...)
+ (add-signature! name formals store))
+ ((list 'define name (list 'lambda formals body ...))
+ (add-signature! name formals store))
+ ((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)
(when (symbol? name)