aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/ruby.lux
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc/source/luxc/lang/translation/ruby.lux')
-rw-r--r--new-luxc/source/luxc/lang/translation/ruby.lux39
1 files changed, 21 insertions, 18 deletions
diff --git a/new-luxc/source/luxc/lang/translation/ruby.lux b/new-luxc/source/luxc/lang/translation/ruby.lux
index 8f00c0ecd..e405b2b4f 100644
--- a/new-luxc/source/luxc/lang/translation/ruby.lux
+++ b/new-luxc/source/luxc/lang/translation/ruby.lux
@@ -18,6 +18,16 @@
(host [ruby #+ Ruby Expression Statement]))
[".C" io]))
+(do-template [<name>]
+ [(exception: #export (<name> {message Text})
+ message)]
+
+ [No-Active-Module-Buffer]
+ [Cannot-Execute]
+
+ [No-Anchor]
+ )
+
(host.import java/lang/Object)
(host.import java/lang/String
@@ -50,7 +60,7 @@
(io {#context ["" +0]
#anchor #.None
#interpreter (let [interpreter (ScriptingContainer::new [])]
- (function [code]
+ (function (_ code)
("lux try" (io (: Top (maybe.default [] (ScriptingContainer::runScriptlet [code] interpreter)))))))
#module-buffer #.None
#program-buffer (StringBuilder::new [])}))
@@ -59,7 +69,7 @@
(def: #export init-module-buffer
(Meta Unit)
- (function [compiler]
+ (function (_ compiler)
(#e.Success [(update@ #.host
(|>> (:! Host)
(set@ #module-buffer (#.Some (StringBuilder::new [])))
@@ -67,12 +77,9 @@
compiler)
[]])))
-(exception: #export No-Active-Module-Buffer)
-(exception: #export Cannot-Execute)
-
(def: #export (with-sub-context expr)
(All [a] (-> (Meta a) (Meta [Text a])))
- (function [compiler]
+ (function (_ compiler)
(let [old (:! Host (get@ #.host compiler))
[old-name old-sub] (get@ #context old)
new-name (format old-name "___" (%i (nat-to-int old-sub)))]
@@ -92,7 +99,7 @@
(def: #export context
(Meta Text)
- (function [compiler]
+ (function (_ compiler)
(#e.Success [compiler
(|> (get@ #.host compiler)
(:! Host)
@@ -102,7 +109,7 @@
(def: #export (with-anchor anchor expr)
(All [a] (-> Anchor (Meta a) (Meta a)))
- (function [compiler]
+ (function (_ compiler)
(let [old (:! Host (get@ #.host compiler))]
(case (expr (set@ #.host
(:! Void (set@ #anchor (#.Some anchor) old))
@@ -118,11 +125,9 @@
(#e.Error error)
(#e.Error error)))))
-(exception: #export No-Anchor)
-
(def: #export anchor
(Meta Anchor)
- (function [compiler]
+ (function (_ compiler)
(case (|> compiler (get@ #.host) (:! Host) (get@ #anchor))
(#.Some anchor)
(#e.Success [compiler anchor])
@@ -132,32 +137,30 @@
(def: #export module-buffer
(Meta StringBuilder)
- (function [compiler]
+ (function (_ compiler)
(case (|> compiler (get@ #.host) (:! Host) (get@ #module-buffer))
#.None
- ((lang.fail (No-Active-Module-Buffer "")) compiler)
+ ((lang.throw No-Active-Module-Buffer "") compiler)
(#.Some module-buffer)
(#e.Success [compiler module-buffer]))))
(def: #export program-buffer
(Meta StringBuilder)
- (function [compiler]
+ (function (_ compiler)
(#e.Success [compiler (|> compiler (get@ #.host) (:! Host) (get@ #program-buffer))])))
(def: (execute code)
(-> Expression (Meta Unit))
- (function [compiler]
+ (function (_ compiler)
(let [interpreter (|> compiler (get@ #.host) (:! Host) (get@ #interpreter))]
(case (interpreter code)
(#e.Error error)
- ((lang.fail (Cannot-Execute error)) compiler)
+ ((lang.throw Cannot-Execute error) compiler)
(#e.Success _)
(#e.Success [compiler []])))))
-(exception: #export Unknown-Member)
-
(def: #export variant-tag-field "_lux_tag")
(def: #export variant-flag-field "_lux_flag")
(def: #export variant-value-field "_lux_value")