-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paths1.scm
35 lines (29 loc) · 943 Bytes
/
s1.scm
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
;; s1.scm
(use gauche.parseopt)
;; fix *load-path* so we can see files in the same directory :-/
(push! *load-path*
(sys-dirname (sys-normalize-pathname *program-name* :absolute #t)))
(load "tools")
(load "core")
(define (determine-exprs expr-src filename)
(cond
((string? expr-src)
(read-exprs-from-string expr-src))
((string? filename)
(read-exprs-from-file filename))
(else (list default-expr))))
(define (main args)
(let-args
(cdr args)
((expr-src "e|expr=s") ;; read code from expr
(filename "f|filename=s") ;; read code from file
. restargs)
(begin
(let ((exec-exprs (determine-exprs expr-src filename)))
;; XXX refactor:
(receive (before-exprs after-exprs exprs)
(parse-exprs exec-exprs)
(process-exprs before-exprs)
(process-file (current-input-port) exprs) ;; use stdin for now
(process-exprs after-exprs))
0))))