diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-04-06 23:02:14 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-04-11 19:12:30 +0200 |
commit | 32175fb935683d00253a875e65dcb5bf498de15c (patch) | |
tree | 1c270435bd7cfe054bf25601c11c4231a85dd8e1 | |
parent | Manual fixup of f589216 (diff) | |
download | calp-32175fb935683d00253a875e65dcb5bf498de15c.tar.gz calp-32175fb935683d00253a875e65dcb5bf498de15c.tar.xz |
split (all-modules) into two procedures.
-rw-r--r-- | scripts/all-modules.scm | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/scripts/all-modules.scm b/scripts/all-modules.scm index 41f35393..2d6b068c 100644 --- a/scripts/all-modules.scm +++ b/scripts/all-modules.scm @@ -3,12 +3,9 @@ :use-module (srfi srfi-1) :use-module (ice-9 ftw) :use-module (ice-9 match) - :export (all-modules-under-directory)) - -(define (all-modules-under-directory dir) - "Returns two values, all scm files in dir, and all top -level modules in those files" + :export (all-files-and-modules-under-directory all-modules-under-directory)) +(define (all-files-and-modules-under-directory dir) (define re (make-regexp "\\.scm$")) (define files '()) @@ -23,11 +20,19 @@ level modules in those files" (else #t)))) - (values files - (filter identity - (map (lambda (file) - (match (call-with-input-file file read) - (('define-module (module ...) _ ...) - module) - (_ #f))) - files)))) + (map (lambda (file) + (list file + (match (call-with-input-file file read) + (('define-module (module ...) _ ...) + module) + (_ #f)))) + files)) + +(define (all-modules-under-directory dir) + "Returns two values, all scm files in dir, and all top +level modules in those files" + + (define pairs (all-files-and-modules-under-directory dir)) + (values + (map car pairs) + (filter identity (map cadr pairs)))) |