aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/generator/statement.jvm.lux
blob: ed66f3ecb290537e3c82f9da2a8e2f6551cff8b5 (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
(;module:
  lux
  (lux (control monad)
       [io #- run]
       (data [text "T/" Eq<Text>]
             text/format)
       [meta #+ Monad<Meta>])
  (luxc ["&" base]
        ["&;" module]
        ["&;" scope]
        (compiler ["&;" expr])))

(def: #export (compile-def def-name def-value def-meta)
  (-> Text Code Code (Meta Unit))
  (do Monad<Meta>
    [=def-value (&expr;compile def-value)
     =def-meta (&expr;compile def-meta)]
    (undefined)))

(def: #export (compile-program prog-args prog-body)
  (-> Text Code (Meta Unit))
  (do Monad<Meta>
    [=prog-body (&scope;with-local [prog-args (type (List Text))]
                  (&expr;compile prog-body))]
    (undefined)))