aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/compiler/statement.jvm.lux
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)))