blob: 0e53ba37dca72d8a4164510636759f4960041b4f (
plain)
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
|
(;module:
lux
(lux (control monad)
[io #- run]
(data ["E" error]
[text "T/" Eq<Text>]
text/format)
[macro #+ Monad<Lux>])
(luxc ["&" base]
["&;" module]
["&;" env]
(compiler ["&;" expr])))
(def: #export (compile-def def-name def-value def-meta)
(-> Text AST AST (Lux Unit))
(do Monad<Lux>
[=def-value (&expr;compile def-value)
=def-meta (&expr;compile def-meta)]
(undefined)))
(def: #export (compile-program prog-args prog-body)
(-> Text AST (Lux Unit))
(do Monad<Lux>
[=prog-body (&env;with-local [prog-args (type (List Text))]
(&expr;compile prog-body))]
(undefined)))
|