aboutsummaryrefslogtreecommitdiff
path: root/source/lux
diff options
context:
space:
mode:
Diffstat (limited to 'source/lux')
-rw-r--r--source/lux/control/monad.lux12
-rw-r--r--source/lux/data/io.lux2
-rw-r--r--source/lux/data/list.lux22
-rw-r--r--source/lux/data/maybe.lux5
-rw-r--r--source/lux/host/jvm.lux109
-rw-r--r--source/lux/meta/syntax.lux16
6 files changed, 83 insertions, 83 deletions
diff --git a/source/lux/control/monad.lux b/source/lux/control/monad.lux
index df48da863..8e59ae941 100644
--- a/source/lux/control/monad.lux
+++ b/source/lux/control/monad.lux
@@ -59,18 +59,18 @@
(let [[var value] binding]
(case var
[_ (#;TagS ["" "let"])]
- (` (;let (~ value) (~ body')))
+ (` (let (~ value) (~ body')))
_
- (` (;|> (~ value) ((~ g!map) (;lambda [(~ var)] (~ body'))) (~ g!join)))
+ (` (|> (~ value) ((~ g!map) (lambda [(~ var)] (~ body'))) (~ g!join)))
## (` (;|> (~ value) (F;map (;lambda [(~ var)] (~ body'))) (;:: ;;_functor) (;;join)))
))))
body
(reverse (as-pairs bindings)))]
- (#;Right [state (#;Cons [(` (;case (~ monad)
- {#;;_functor {#F;map (~ g!map)} #;;wrap (~ (' wrap)) #;;join (~ g!join)}
- (~ body')))
- #;Nil])]))
+ (#;Right [state (#;Cons (` (case (~ monad)
+ {#_functor {#F;map (~ g!map)} #wrap (~ (' wrap)) #join (~ g!join)}
+ (~ body')))
+ #;Nil)]))
_
(#;Left "Wrong syntax for do")))
diff --git a/source/lux/data/io.lux b/source/lux/data/io.lux
index 032381404..2d2a2bc35 100644
--- a/source/lux/data/io.lux
+++ b/source/lux/data/io.lux
@@ -20,7 +20,7 @@
(case tokens
(\ (list value))
(let [blank (symbol$ ["" ""])]
- (#;Right [state (list (` (_lux_lambda (~ blank) (~ blank) (~ value))))]))
+ (#;Right [state (list (` (;_lux_lambda (~ blank) (~ blank) (~ value))))]))
_
(#;Left "Wrong syntax for io")))
diff --git a/source/lux/data/list.lux b/source/lux/data/list.lux
index c9a4c7598..7df2eb358 100644
--- a/source/lux/data/list.lux
+++ b/source/lux/data/list.lux
@@ -214,21 +214,19 @@
## [Syntax]
(defmacro #export (list xs state)
- (#;Right [state (#;Cons [(foldL (: (-> AST AST AST)
- (lambda [tail head]
- (` (#;Cons [(~ head) (~ tail)]))))
- (: AST (` #;Nil))
- (reverse xs))
- #;Nil])]))
+ (#;Right state (#;Cons (foldL (: (-> AST AST AST)
+ (lambda [tail head] (` (#;Cons (~ head) (~ tail)))))
+ (: AST (` #;Nil))
+ (reverse xs))
+ #;Nil)))
(defmacro #export (list& xs state)
(case (reverse xs)
- (#;Cons [last init])
- (#;Right [state (list (foldL (: (-> AST AST AST)
- (lambda [tail head]
- (` (#;Cons [(~ head) (~ tail)]))))
- last
- init))])
+ (#;Cons last init)
+ (#;Right state (list (foldL (: (-> AST AST AST)
+ (lambda [tail head] (` (#;Cons (~ head) (~ tail)))))
+ last
+ init)))
_
(#;Left "Wrong syntax for list&")))
diff --git a/source/lux/data/maybe.lux b/source/lux/data/maybe.lux
index 5df03f378..77dbec5b1 100644
--- a/source/lux/data/maybe.lux
+++ b/source/lux/data/maybe.lux
@@ -45,12 +45,13 @@
(defmacro #export (? tokens state)
(case tokens
(\ (list maybe else))
- (let [g!value (symbol$ ["" "_"])]
+ (let [g!value (symbol$ ["" "_"])
+ g!_ (symbol$ ["" "12_34"])]
(#;Right state (list (` (case (~ maybe)
(#;Some (~ g!value))
(~ g!value)
- _
+ (~ g!_)
(~ else))))))
_
diff --git a/source/lux/host/jvm.lux b/source/lux/host/jvm.lux
index 40021d8fa..d7992509a 100644
--- a/source/lux/host/jvm.lux
+++ b/source/lux/host/jvm.lux
@@ -82,21 +82,21 @@
## [Syntax]
(defsyntax #export (throw ex)
- (emit (list (` (_jvm_throw (~ ex))))))
+ (emit (list (` (;_jvm_throw (~ ex))))))
(defsyntax #export (try body [catches (*^ catch^)] [finally (?^ finally^)])
- (emit (list (` (_jvm_try (~ body)
- (~@ (:: List/Monoid (m;++ (map (: (-> (, Text Ident AST) AST)
- (lambda [catch]
- (let [[class ex body] catch]
- (` (_jvm_catch (~ (text$ class)) (~ (symbol$ ex)) (~ body))))))
- catches)
- (case finally
- #;None
- (list)
-
- (#;Some finally)
- (: (List AST) (list (` (_jvm_finally (~ finally))))))))))))))
+ (emit (list (` (;_jvm_try (~ body)
+ (~@ (:: List/Monoid (m;++ (map (: (-> (, Text Ident AST) AST)
+ (lambda [catch]
+ (let [[class ex body] catch]
+ (` (;_jvm_catch (~ (text$ class)) (~ (symbol$ ex)) (~ body))))))
+ catches)
+ (case finally
+ #;None
+ (list)
+
+ (#;Some finally)
+ (: (List AST) (list (` (;_jvm_finally (~ finally))))))))))))))
(defsyntax #export (definterface [name local-symbol^] [supers (tuple^ (*^ local-symbol^))] [members (*^ method-decl^)])
(let [members' (map (: (-> (, (List Text) Text (List Text) Text) AST)
@@ -104,8 +104,8 @@
(let [[modifiers name inputs output] member]
(` ((~ (text$ name)) [(~@ (map text$ inputs))] (~ (text$ output)) [(~@ (map text$ modifiers))])))))
members)]
- (emit (list (` (_jvm_interface (~ (text$ name)) [(~@ (map text$ supers))]
- (~@ members')))))))
+ (emit (list (` (;_jvm_interface (~ (text$ name)) [(~@ (map text$ supers))]
+ (~@ members')))))))
(defsyntax #export (defclass [name local-symbol^] [super local-symbol^] [interfaces (tuple^ (*^ local-symbol^))]
[fields (*^ field-decl^)]
@@ -133,36 +133,37 @@
[(~@ (map text$ modifiers))]
(~ body))))))
methods)]]
- (emit (list (` (_jvm_class (~ (text$ name)) (~ (text$ super))
- [(~@ (map text$ interfaces))]
- [(~@ fields')]
- [(~@ methods')]))))))
+ (emit (list (` (;_jvm_class (~ (text$ name)) (~ (text$ super))
+ [(~@ (map text$ interfaces))]
+ [(~@ fields')]
+ [(~@ methods')]))))))
(defsyntax #export (new [class local-symbol^] [arg-classes (tuple^ (*^ local-symbol^))] [args (tuple^ (*^ id^))])
- (emit (list (` (_jvm_new (~ (text$ class))
- [(~@ (map text$ arg-classes))]
- [(~@ args)])))))
+ (emit (list (` (;_jvm_new (~ (text$ class))
+ [(~@ (map text$ arg-classes))]
+ [(~@ args)])))))
(defsyntax #export (instance? [class local-symbol^] obj)
- (emit (list (` (_jvm_instanceof (~ (text$ class)) (~ obj))))))
+ (emit (list (` (;_jvm_instanceof (~ (text$ class)) (~ obj))))))
(defsyntax #export (locking lock body)
(do Lux/Monad
[g!lock (gensym "")
- g!body (gensym "")]
- (emit (list (` (;let [(~ g!lock) (~ lock)
- _ (_jvm_monitorenter (~ g!lock))
- (~ g!body) (~ body)
- _ (_jvm_monitorexit (~ g!lock))]
- (~ g!body)))))
+ g!body (gensym "")
+ g!_ (gensym "")]
+ (emit (list (` (let [(~ g!lock) (~ lock)
+ (~ g!_) (;_jvm_monitorenter (~ g!lock))
+ (~ g!body) (~ body)
+ (~ g!_) (;_jvm_monitorexit (~ g!lock))]
+ (~ g!body)))))
))
(defsyntax #export (null? obj)
- (emit (list (` (_jvm_null? (~ obj))))))
+ (emit (list (` (;_jvm_null? (~ obj))))))
(defsyntax #export (program [args symbol^] body)
- (emit (list (` (_jvm_program (~ (symbol$ args))
- (~ body))))))
+ (emit (list (` (;_jvm_program (~ (symbol$ args))
+ (~ body))))))
(defsyntax #export (.? [field local-symbol^] obj)
(case obj
@@ -171,7 +172,7 @@
[obj-type (find-var-type obj-name)]
(case obj-type
(#;DataT class)
- (emit (list (` (_jvm_getfield (~ (text$ class)) (~ (text$ field))))))
+ (emit (list (` (;_jvm_getfield (~ (text$ class)) (~ (text$ field))))))
_
(fail "Can only get field from object.")))
@@ -179,8 +180,8 @@
_
(do Lux/Monad
[g!obj (gensym "")]
- (emit (list (` (;let [(~ g!obj) (~ obj)]
- (.? (~ (text$ field)) (~ g!obj)))))))))
+ (emit (list (` (let [(~ g!obj) (~ obj)]
+ (;;.? (~ (text$ field)) (~ g!obj)))))))))
(defsyntax #export (.= [field local-symbol^] value obj)
(case obj
@@ -189,7 +190,7 @@
[obj-type (find-var-type obj-name)]
(case obj-type
(#;DataT class)
- (emit (list (` (_jvm_putfield (~ (text$ class)) (~ (text$ field)) (~ value)))))
+ (emit (list (` (;_jvm_putfield (~ (text$ class)) (~ (text$ field)) (~ value)))))
_
(fail "Can only set field of object.")))
@@ -197,8 +198,8 @@
_
(do Lux/Monad
[g!obj (gensym "")]
- (emit (list (` (;let [(~ g!obj) (~ obj)]
- (.= (~ (text$ field)) (~ value) (~ g!obj)))))))))
+ (emit (list (` (let [(~ g!obj) (~ obj)]
+ (;;.= (~ (text$ field)) (~ value) (~ g!obj)))))))))
(defsyntax #export (.! [call method-call^] obj)
(let [[m-name ?m-classes m-args] call]
@@ -208,8 +209,8 @@
[obj-type (find-var-type obj-name)]
(case obj-type
(#;DataT class)
- (emit (list (` (_jvm_invokevirtual (~ (text$ class)) (~ (text$ m-name)) [(~@ (map text$ ?m-classes))]
- (~ obj) [(~@ m-args)]))))
+ (emit (list (` (;_jvm_invokevirtual (~ (text$ class)) (~ (text$ m-name)) [(~@ (map text$ ?m-classes))]
+ (~ obj) [(~@ m-args)]))))
_
(fail "Can only call method on object.")))
@@ -217,31 +218,31 @@
_
(do Lux/Monad
[g!obj (gensym "")]
- (emit (list (` (;let [(~ g!obj) (~ obj)]
- (.! ((~ (symbol$ ["" m-name]))
- [(~@ (map (lambda [c] (symbol$ ["" c])) ?m-classes))]
- [(~@ m-args)])
- (~ g!obj))))))))))
+ (emit (list (` (let [(~ g!obj) (~ obj)]
+ (;;.! ((~ (symbol$ ["" m-name]))
+ [(~@ (map (lambda [c] (symbol$ ["" c])) ?m-classes))]
+ [(~@ m-args)])
+ (~ g!obj))))))))))
(defsyntax #export (..? [field local-symbol^] [class local-symbol^])
- (emit (list (` (_jvm_getstatic (~ (text$ class)) (~ (text$ field)))))))
+ (emit (list (` (;_jvm_getstatic (~ (text$ class)) (~ (text$ field)))))))
(defsyntax #export (..= [field local-symbol^] value [class local-symbol^])
- (emit (list (` (_jvm_putstatic (~ (text$ class)) (~ (text$ field)) (~ value))))))
+ (emit (list (` (;_jvm_putstatic (~ (text$ class)) (~ (text$ field)) (~ value))))))
(defsyntax #export (..! [call method-call^] [class local-symbol^])
(let [[m-name m-classes m-args] call]
- (emit (list (` (_jvm_invokestatic (~ (text$ class)) (~ (text$ m-name))
- [(~@ (map text$ m-classes))]
- [(~@ m-args)]))))))
+ (emit (list (` (;_jvm_invokestatic (~ (text$ class)) (~ (text$ m-name))
+ [(~@ (map text$ m-classes))]
+ [(~@ m-args)]))))))
(defsyntax #export (->maybe expr)
(do Lux/Monad
[g!val (gensym "")]
- (emit (list (` (;let [(~ g!val) (~ expr)]
- (;if (null? (~ g!val))
- #;None
- (#;Some (~ g!val)))))))))
+ (emit (list (` (let [(~ g!val) (~ expr)]
+ (if (null? (~ g!val))
+ #;None
+ (#;Some (~ g!val)))))))))
(defsyntax #export (try$ expr)
(emit (list (` (try (#;Right (~ expr))
diff --git a/source/lux/meta/syntax.lux b/source/lux/meta/syntax.lux
index 7d888f659..df79772c1 100644
--- a/source/lux/meta/syntax.lux
+++ b/source/lux/meta/syntax.lux
@@ -242,20 +242,20 @@
body' (foldL (: (-> AST (, AST AST) AST)
(lambda [body name+parser]
(let [[name parser] name+parser]
- (` (_lux_case ((~ parser) (~ g!tokens))
- (#;Some [(~ g!tokens) (~ name)])
- (~ body)
+ (` (;_lux_case ((~ parser) (~ g!tokens))
+ (#;Some [(~ g!tokens) (~ name)])
+ (~ body)
- (~ g!_)
- (l;fail (~ error-msg)))))))
+ (~ g!_)
+ (l;fail (~ error-msg)))))))
body
(: (List (, AST AST)) (list& [(symbol$ ["" ""]) (` end^)] (reverse names+parsers))))
macro-def (: AST
- (` (m;defmacro ((~ (symbol$ ["" name])) (~ g!tokens))
- (~ body'))))]]
+ (` (defmacro ((~ (symbol$ ["" name])) (~ g!tokens))
+ (~ body'))))]]
(wrap (list& macro-def
(if exported?
- (list (` (_lux_export (~ (symbol$ ["" name])))))
+ (list (` (;_lux_export (~ (symbol$ ["" name])))))
(list)))))
_