chibi-doc traverses include-library-declarations.

This commit is contained in:
Alex Shinn 2014-07-27 16:36:01 +09:00
parent 4e52ffc411
commit 7c181ca3fe
4 changed files with 18 additions and 4 deletions

View file

@ -790,6 +790,9 @@ div#footer {padding-bottom: 50px}
((find-module-file (module-name->file mod-name))
=> (lambda (f) (reverse (extract-file-docs f defs strict? 'module))))
(else '()))
(reverse (append-map (lambda (x)
(extract-file-docs x defs strict? 'module))
(module-include-library-declarations mod)))
(reverse (append-map (lambda (x) (extract-file-docs x defs strict?))
(module-includes mod)))
(reverse (append-map (lambda (x) (extract-file-docs x defs strict? 'ffi))

View file

@ -43,12 +43,18 @@
(lp (cdr ls) (append (reverse (cdar ls)) res)))
(else (lp (cdr ls) res))))))
(define (module-includes mod)
(define (module-extract-declaration-files mod decls)
(let* ((mod (if (module? mod) mod (find-module mod)))
(dir (module-dir mod)))
(define (module-file f)
(find-module-file (string-append dir f)))
(map module-file (reverse (module-metas mod '(include))))))
(map module-file (reverse (module-metas mod decls)))))
(define (module-includes mod)
(module-extract-declaration-files mod '(include)))
(define (module-include-library-declarations mod)
(module-extract-declaration-files mod '(include-library-declarations)))
(define (module-shared-includes mod)
(let* ((mod (if (module? mod) mod (find-module mod)))

View file

@ -1,6 +1,7 @@
(define-library (chibi modules)
(export module-name module-dir module-includes module-shared-includes
module-include-library-declarations
module-ast module-ast-set! module-ref module-contains?
analyze-module containing-module load-module module-exports
module-name->file procedure-analysis find-module

View file

@ -268,7 +268,7 @@
;; Generate the library wrapper.
(set! *this-path*
(cons (string-concatenate
(module-name->strings (reverse (cdr (reverse name))) '()))
(module-name->strings (cdr (reverse name)) '()))
*this-path*))
`(,_let ((,tmp ,this-module))
(,_define (rewrite-export x)
@ -338,7 +338,11 @@
(error "couldn't find include-library-declarations file" file)))))
(else
`(,(rename 'meta-begin)
,@(reverse res))))))))
,@(reverse res)
(,(rename 'set!) ,(rename '*this-module*)
(,(rename 'cons) (,(rename 'quote)
,(cons 'include-library-declarations (cdr expr)))
,(rename '*this-module*))))))))))
(define-syntax define-meta-primitive
(er-macro-transformer