diff options
Diffstat (limited to 'new-luxc/source/luxc/lang/translation/runtime.jvm.lux')
-rw-r--r-- | new-luxc/source/luxc/lang/translation/runtime.jvm.lux | 23 |
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)] |