From ac8cd4d325889f99d8cba0b432b674cbfc9ce288 Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 20 Sep 2016 18:58:32 +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=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20toH?= =?UTF-8?q?exString?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ownlang/modules/std/NumberFunctions.java | 21 +++++++++++++++++++ .../com/annimon/ownlang/modules/std/std.java | 3 +++ 2 files changed, 24 insertions(+) create mode 100644 src/main/java/com/annimon/ownlang/modules/std/NumberFunctions.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/NumberFunctions.java b/src/main/java/com/annimon/ownlang/modules/std/NumberFunctions.java new file mode 100644 index 0000000..31d2cd6 --- /dev/null +++ b/src/main/java/com/annimon/ownlang/modules/std/NumberFunctions.java @@ -0,0 +1,21 @@ +package com.annimon.ownlang.modules.std; + +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.NumberValue; +import com.annimon.ownlang.lib.StringValue; +import com.annimon.ownlang.lib.Types; +import com.annimon.ownlang.lib.Value; + +public final class NumberFunctions { + + public static Value toHexString(Value... args) { + Arguments.check(1, args.length); + long value; + if (args[0].type() == Types.NUMBER) { + value = ((NumberValue) args[0]).asLong(); + } else { + value = (long) args[0].asNumber(); + } + return new StringValue(Long.toHexString(value)); + } +} 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 ffce722..a8618db 100644 --- a/src/main/java/com/annimon/ownlang/modules/std/std.java +++ b/src/main/java/com/annimon/ownlang/modules/std/std.java @@ -27,6 +27,9 @@ public final class std implements Module { Functions.set("sync", new std_sync()); Functions.set("try", new std_try()); + // Numbers + Functions.set("toHexString", NumberFunctions::toHexString); + // String Functions.set("sprintf", new std_sprintf()); Functions.set("split", new std_split());