From d40c4d5284fcf0e09ce17bb637bae0364ffe6981 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 20 Sep 2016 18:58:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20par?= =?UTF-8?q?seInt,=20parseLong?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ownlang/modules/std/StringFunctions.java | 20 +++++++++++++++++++ .../com/annimon/ownlang/modules/std/std.java | 6 ++++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/annimon/ownlang/modules/std/StringFunctions.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/StringFunctions.java b/src/main/java/com/annimon/ownlang/modules/std/StringFunctions.java new file mode 100644 index 0000000..b9b5794 --- /dev/null +++ b/src/main/java/com/annimon/ownlang/modules/std/StringFunctions.java @@ -0,0 +1,20 @@ +package com.annimon.ownlang.modules.std; + +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.NumberValue; +import com.annimon.ownlang.lib.Value; + +public final class StringFunctions { + + public static Value parseInt(Value... args) { + Arguments.checkOrOr(1, 2, args.length); + final int radix = (args.length == 2) ? args[1].asInt() : 10; + return NumberValue.of(Integer.parseInt(args[0].asString(), radix)); + } + + public static Value parseLong(Value... args) { + Arguments.checkOrOr(1, 2, args.length); + final int radix = (args.length == 2) ? args[1].asInt() : 10; + return NumberValue.of(Long.parseLong(args[0].asString(), radix)); + } +} diff --git a/src/main/java/com/annimon/ownlang/modules/std/std.java b/src/main/java/com/annimon/ownlang/modules/std/std.java index a28149c..ffce722 100644 --- a/src/main/java/com/annimon/ownlang/modules/std/std.java +++ b/src/main/java/com/annimon/ownlang/modules/std/std.java @@ -30,7 +30,6 @@ public final class std implements Module { // String Functions.set("sprintf", new std_sprintf()); Functions.set("split", new std_split()); - Functions.set("join", new std_join()); Functions.set("indexOf", new std_indexof()); Functions.set("lastIndexOf", new std_lastindexof()); Functions.set("charAt", new std_charat()); @@ -42,9 +41,12 @@ public final class std implements Module { Functions.set("replace", new std_replace()); Functions.set("replaceAll", new std_replaceall()); Functions.set("replaceFirst", new std_replacefirst()); - + Functions.set("parseInt", StringFunctions::parseInt); + Functions.set("parseLong", StringFunctions::parseLong); + // Arrays and maps Functions.set("newarray", new std_newarray()); + Functions.set("join", new std_join()); Functions.set("sort", new std_sort()); Functions.set("arrayCombine", new std_arrayCombine()); Functions.set("arrayKeyExists", new std_arrayKeyExists());