aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/macro.lux
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc/source/luxc/lang/macro.lux')
-rw-r--r--new-luxc/source/luxc/lang/macro.lux42
1 files changed, 20 insertions, 22 deletions
diff --git a/new-luxc/source/luxc/lang/macro.lux b/new-luxc/source/luxc/lang/macro.lux
index 4885e21db..71b140c6e 100644
--- a/new-luxc/source/luxc/lang/macro.lux
+++ b/new-luxc/source/luxc/lang/macro.lux
@@ -1,37 +1,35 @@
-(;module:
+(.module:
lux
(lux (control [monad #+ do])
(data ["e" error])
[macro]
[host])
- (luxc (lang [";L" host]
- (translation [";T" common]))))
+ (luxc (lang [".L" host]
+ (translation [".T" common]))))
-(for {"JVM" (as-is (host;import java.lang.reflect.Method
+(for {"JVM" (as-is (host.import java/lang/reflect/Method
(invoke [Object (Array Object)] #try Object))
- (host;import (java.lang.Class c)
+ (host.import (java/lang/Class c)
(getMethod [String (Array (Class Object))] #try Method))
- (host;import java.lang.Object
- (getClass [] (Class Object))
- (toString [] String))
- (def: _object-class (Class Object) (host;class-for Object))
+ (host.import java/lang/Object)
+ (def: _object-class (Class Object) (host.class-for Object))
(def: _apply-args
(Array (Class Object))
- (|> (host;array (Class Object) +2)
- (host;array-write +0 _object-class)
- (host;array-write +1 _object-class)))
+ (|> (host.array (Class Object) +2)
+ (host.array-write +0 _object-class)
+ (host.array-write +1 _object-class)))
(def: #export (expand macro inputs)
(-> Macro (List Code) (Meta (List Code)))
- (do macro;Monad<Meta>
- [class (commonT;load-class hostL;function-class)]
+ (do macro.Monad<Meta>
+ [class (commonT.load-class hostL.function-class)]
(function [compiler]
- (do e;Monad<Error>
- [apply-method (Class.getMethod ["apply" _apply-args] class)
- output (Method.invoke [(:! Object macro)
- (|> (host;array Object +2)
- (host;array-write +0 (:! Object inputs))
- (host;array-write +1 (:! Object compiler)))]
- apply-method)]
- (:! (e;Error [Compiler (List Code)])
+ (do e.Monad<Error>
+ [apply-method (Class::getMethod ["apply" _apply-args] class)
+ output (Method::invoke [(:! Object macro)
+ (|> (host.array Object +2)
+ (host.array-write +0 (:! Object inputs))
+ (host.array-write +1 (:! Object compiler)))]
+ apply-method)]
+ (:! (e.Error [Compiler (List Code)])
output))))))
})