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)) ((find-module-file (module-name->file mod-name))
=> (lambda (f) (reverse (extract-file-docs f defs strict? 'module)))) => (lambda (f) (reverse (extract-file-docs f defs strict? 'module))))
(else '())) (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?)) (reverse (append-map (lambda (x) (extract-file-docs x defs strict?))
(module-includes mod))) (module-includes mod)))
(reverse (append-map (lambda (x) (extract-file-docs x defs strict? 'ffi)) (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))) (lp (cdr ls) (append (reverse (cdar ls)) res)))
(else (lp (cdr 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))) (let* ((mod (if (module? mod) mod (find-module mod)))
(dir (module-dir mod))) (dir (module-dir mod)))
(define (module-file f) (define (module-file f)
(find-module-file (string-append dir 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) (define (module-shared-includes mod)
(let* ((mod (if (module? mod) mod (find-module mod))) (let* ((mod (if (module? mod) mod (find-module mod)))

View file

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

View file

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