Added support for library (include) directives

This commit is contained in:
Justin Ethier 2015-05-14 17:29:42 -04:00
parent f69f2412b5
commit 1ab87e6f9b

View file

@ -48,11 +48,22 @@
(cond
((library? (car input-program))
(set! program? #f)
(set! lib-name (lib:name (car input-program)))
(set! lib-exports (lib:exports (car input-program)))
(set! imports (lib:imports (car input-program)))
(set! input-program (lib:body (car input-program))))
(let ((includes (lib:includes (car input-program))))
(set! program? #f)
(set! lib-name (lib:name (car input-program)))
(set! lib-exports (lib:exports (car input-program)))
(set! imports (lib:imports (car input-program)))
(set! input-program (lib:body (car input-program)))
;; Prepend any included files into the begin section
(if (not (null? includes))
(for-each
(lambda (include)
(set! input-program
(append (read-file (string-append
(lib:import->path lib-name)
include))
input-program)))
includes))))
((tagged-list? 'import (car input-program))
(set! imports (cdar input-program))
(set! input-program (cdr input-program))