diff --git a/lib/chibi/doc-test.sld b/lib/chibi/doc-test.sld index bee75215..04c14637 100644 --- a/lib/chibi/doc-test.sld +++ b/lib/chibi/doc-test.sld @@ -7,7 +7,22 @@ (test '(spec (args config)) (get-optionals-signature '(spec . o) - '(let ((args (or (and (pair? o) (car o)) (command-line))) - (config (and (pair? o) (pair? (cdr o)) (cadr o)))) - (foo)))) + '((let ((args (or (and (pair? o) (car o)) (command-line))) + (config (and (pair? o) (pair? (cdr o)) (cadr o)))) + (foo))))) + (test '(filename (port len)) + (get-optionals-signature + '(filename . o) + '((let ((port (if (pair? o) (car o) (open-input-file filename))) + (len (if (and (pair? o) (pair? (cdr o))) (cadr o) 4096))) + (foo))))) + (test '(f kons knil source (index)) + (get-optionals-signature + '(f kons knil source . o) + '((let lp ((p (if (string? source) + (string->parse-stream source) + source)) + (index (if (pair? o) (car o) 0)) + (acc knil)) + (f p index fk))))) (test-end)))) diff --git a/lib/chibi/doc.scm b/lib/chibi/doc.scm index 8daa96c1..cdf68bbb 100644 --- a/lib/chibi/doc.scm +++ b/lib/chibi/doc.scm @@ -206,7 +206,7 @@ (define (make-module-doc-env mod-name) (env-extend (make-default-doc-env) '(example-env) - (list (environment '(scheme base) + (list (environment '(scheme small) '(only (chibi) import) mod-name)))) @@ -492,7 +492,7 @@ div#footer {padding-bottom: 50px} (if (contains? val o) (extract #f vars i) (extract rest vars i))) - (((or 'let 'let* 'letrec 'letrec*) (y ...) . body) + ((((or 'let 'let* 'letrec 'letrec*) (y ...) . body) . rest) (let ((ordered? (memq (car x) '(let* letrec*)))) (let lp ((ls y) (vars vars) (j i)) (cond @@ -521,8 +521,10 @@ div#footer {padding-bottom: 50px} (lp (cdr ls) vars j)))) (else (extract body vars j)))))) - (((or 'let-optionals 'let-optionals*) ls ((var default) ...) - . body) + ((('let (? symbol?) (y ...) . body) . rest) + (extract `((let ,y . ,body) . ,rest) vars i)) + ((((or 'let-optionals 'let-optionals*) ls ((var default) ...) + . body) . rest) (let lp ((ls var) (vars vars) (i i)) (cond ((pair? ls)