blob: 33cf3ed7d2259be94bedc3efbd74210ecfa94746 (
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
27
28
|
(.module:
lux
(lux [macro]
(data [text]
text/format))
(luxc ["&" lang])
[//]
(// [".T" runtime]))
(do-template [<register> <translation> <prefix>]
[(def: #export (<register> register)
(-> Nat //.Expression)
(format <prefix> (%n register)))
(def: #export (<translation> register)
(-> Nat (Meta //.Expression))
(:: macro.Monad<Meta> wrap (<register> register)))]
[closure translate-local "c"]
[variable translate-captured "v"])
(def: #export (global [module name])
(-> Ident //.Expression)
(format (text.replace-all "/" "_" module) "$" (&.normalize-name name)))
(def: #export (translate-definition name)
(-> Ident (Meta //.Expression))
(:: macro.Monad<Meta> wrap (global name)))
|