From 32175fb935683d00253a875e65dcb5bf498de15c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Wed, 6 Apr 2022 23:02:14 +0200 Subject: split (all-modules) into two procedures. --- scripts/all-modules.scm | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'scripts') 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)))) -- cgit v1.2.3