mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-12 15:27:36 +02:00
Added support for library (include) directives
This commit is contained in:
parent
f69f2412b5
commit
1ab87e6f9b
1 changed files with 16 additions and 5 deletions
13
cyclone.scm
13
cyclone.scm
|
@ -48,11 +48,22 @@
|
||||||
|
|
||||||
(cond
|
(cond
|
||||||
((library? (car input-program))
|
((library? (car input-program))
|
||||||
|
(let ((includes (lib:includes (car input-program))))
|
||||||
(set! program? #f)
|
(set! program? #f)
|
||||||
(set! lib-name (lib:name (car input-program)))
|
(set! lib-name (lib:name (car input-program)))
|
||||||
(set! lib-exports (lib:exports (car input-program)))
|
(set! lib-exports (lib:exports (car input-program)))
|
||||||
(set! imports (lib:imports (car input-program)))
|
(set! imports (lib:imports (car input-program)))
|
||||||
(set! input-program (lib:body (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))
|
((tagged-list? 'import (car input-program))
|
||||||
(set! imports (cdar input-program))
|
(set! imports (cdar input-program))
|
||||||
(set! input-program (cdr input-program))
|
(set! input-program (cdr input-program))
|
||||||
|
|
Loading…
Add table
Reference in a new issue