mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-07-08 13:37:35 +02:00
procedure-analysis takes an optional module argument
This commit is contained in:
parent
9ce81e9223
commit
7469dd82da
1 changed files with 10 additions and 8 deletions
|
@ -22,11 +22,13 @@
|
||||||
(define (module-ast-set! mod x) (vector-set! mod 3 x))
|
(define (module-ast-set! mod x) (vector-set! mod 3 x))
|
||||||
|
|
||||||
(define (module-name mod)
|
(define (module-name mod)
|
||||||
(let lp ((ls *modules*))
|
(if (pair? mod)
|
||||||
(and (pair? ls)
|
(car mod)
|
||||||
(if (eq? mod (cdar ls))
|
(let lp ((ls *modules*))
|
||||||
(caar ls)
|
(and (pair? ls)
|
||||||
(lp (cdr ls))))))
|
(if (eq? mod (cdar ls))
|
||||||
|
(caar ls)
|
||||||
|
(lp (cdr ls)))))))
|
||||||
|
|
||||||
(define (module-dir mod)
|
(define (module-dir mod)
|
||||||
(let ((name (module-name mod)))
|
(let ((name (module-name mod)))
|
||||||
|
@ -140,10 +142,10 @@
|
||||||
(car ls)
|
(car ls)
|
||||||
(lp2 (cdr e-ls))))))))))
|
(lp2 (cdr e-ls))))))))))
|
||||||
|
|
||||||
(define (procedure-analysis x)
|
(define (procedure-analysis x . o)
|
||||||
(let ((mod (containing-module x)))
|
(let ((mod (or (and (pair? o) (car o)) (containing-module x))))
|
||||||
(and mod
|
(and mod
|
||||||
(let lp ((ls (module-ast (analyze-module (car mod)))))
|
(let lp ((ls (module-ast (analyze-module (module-name mod)))))
|
||||||
(and (pair? ls)
|
(and (pair? ls)
|
||||||
(if (and (set? (car ls))
|
(if (and (set? (car ls))
|
||||||
(eq? (procedure-name x) (ref-name (set-var (car ls)))))
|
(eq? (procedure-name x) (ref-name (set-var (car ls)))))
|
||||||
|
|
Loading…
Add table
Reference in a new issue