Megatest

Diff
Login

Differences From Artifact [2b66df6bfd]:

To Artifact [6d50d1bd96]:


1
2
3
4
5
6
7
8
9
10

11



12
13









14
15

16
17
18
19
20

21
22
23
24
25
26
27
1
2
3
4
5
6
7
8
9

10
11
12
13
14


15
16
17
18
19
20
21
22
23
24

25
26
27
28
29

30
31
32
33
34
35
36
37









-
+

+
+
+
-
-
+
+
+
+
+
+
+
+
+

-
+




-
+







#!/mfs/pkgs/chicken/4.8.0.5/bin/csi -nbq

;; Coming soon (right?) Usage: plot-code file1.scm,file2.scm "fun1,fun2,x*" *.scm > plot.dot
;; Usage: plot-code file1.scm,file2.scm *.scm > plot.dot
;;        dot -Tpdf plot.dot > plot.pdf
;; first param is comma separated list of files to include in the map, use - to do all
;; second param is list of regexs for functions to include in the map
;; third param is list of files to scan

(use regex srfi-69 srfi-13)
(use regex srfi-69 srfi-13 srfi-1 data-structures posix)

;;                 1                   2        remainder
;; plot-code file1.scm,file2.scm... fn-regex file1.scm file2.scm ...

(define targs #f) 
(define files (cdr (cddddr (argv))))
(define targs #f)

(define args (argv))
(if (< (length args) 2) ;; no args provided
    (begin
       (print "Usage: plot-code file1.scm,file2.scm... 'your.*regex' file3.scm file4.scm file5.scm  ...")
       (exit)))

(define files (cdddr args))

(let ((targdat (cadddr (argv))))
(let ((targdat (cadr args)))
  (if (equal? targdat "-")
      (set! targs files)
      (set! targs (string-split targdat ","))))

(define function-patt (car (cdr (cdddr (argv)))))
(define function-patt (caddr args))
(define function-rx   (regexp function-patt))
(define filedat-defns (make-hash-table))
(define filedat-usages (make-hash-table))

(define defn-rx (regexp "^\\s*\\(define\\s+\\(([^\\s\\)]+).*"))
(define all-regexs (make-hash-table))