diff options
Diffstat (limited to 'scheme/plt/geiser')
| -rw-r--r-- | scheme/plt/geiser/autodoc.ss | 45 | 
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)  | 
