aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/runtime.jvm.lux
diff options
context:
space:
mode:
authorEduardo Julian2017-11-14 20:03:14 -0400
committerEduardo Julian2017-11-14 20:03:14 -0400
commitb88027c19181f24584d5ad1c46fb2443d65edece (patch)
treeae6ce4b8cc4dab3a5b05e9e9759df041509c4113 /new-luxc/source/luxc/lang/translation/runtime.jvm.lux
parent686a46f569b818681583e6ce75b37b25642b375b (diff)
- Fixed some bugs.
- new-luxc can now fully compile lux.lux!
Diffstat (limited to '')
-rw-r--r--new-luxc/source/luxc/lang/translation/runtime.jvm.lux23
1 files changed, 23 insertions, 0 deletions
diff --git a/new-luxc/source/luxc/lang/translation/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/runtime.jvm.lux
index 0a330ab73..cc17014e1 100644
--- a/new-luxc/source/luxc/lang/translation/runtime.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/runtime.jvm.lux
@@ -386,6 +386,28 @@
$i;DRETURN)))
)))
+(def: text-methods
+ $;Def
+ (|>. ($d;method #$;Public $;staticM "text_char" ($t;method (list $String $t;int) (#;Some $Variant) (list))
+ (let [get-charI (|>. ($i;ALOAD +0)
+ ($i;ILOAD +1)
+ ($i;INVOKEVIRTUAL "java.lang.String" "codePointAt" ($t;method (list $t;int) (#;Some $t;int) (list)) false)
+ $i;I2L
+ ($i;wrap #$;Long))]
+ (<| $i;with-label (function [@from])
+ $i;with-label (function [@to])
+ $i;with-label (function [@handler])
+ (|>. ($i;try @from @to @handler "java.lang.Exception")
+ ($i;label @from)
+ get-charI
+ someI
+ $i;ARETURN
+ ($i;label @to)
+ ($i;label @handler)
+ noneI
+ $i;ARETURN))))
+ ))
+
(def: pm-methods
$;Def
(let [tuple-sizeI (|>. ($i;ALOAD +0) $i;ARRAYLENGTH)
@@ -564,6 +586,7 @@
nat-methods
frac-methods
deg-methods
+ text-methods
pm-methods
io-methods))]
_ (commonT;store-class hostL;runtime-class bytecode)]