aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinManager.java32
-rw-r--r--src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/io/InputBuiltinFunction.java (renamed from src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/InputBuiltinFunction.java)3
-rw-r--r--src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/io/OutputBuiltinFunction.java (renamed from src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/OutputBuiltinFunction.java)3
3 files changed, 29 insertions, 9 deletions
diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinManager.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinManager.java
index eb7374d..6758b25 100644
--- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinManager.java
+++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinManager.java
@@ -4,6 +4,8 @@ import com.jantuomi.tunkki.core.parser.datatype.CallableDatatype;
import com.jantuomi.tunkki.core.runtime.builtins.globals.*;
import com.jantuomi.tunkki.core.runtime.builtins.globals.cast.AsBooleanBuiltinFunction;
import com.jantuomi.tunkki.core.runtime.builtins.globals.cast.AsIntBuiltinFunction;
+import com.jantuomi.tunkki.core.runtime.builtins.globals.io.InputBuiltinFunction;
+import com.jantuomi.tunkki.core.runtime.builtins.globals.io.OutputBuiltinFunction;
import com.jantuomi.tunkki.core.runtime.builtins.math.PowerBuiltinFunction;
import com.jantuomi.tunkki.exception.types.IncludeTunkkiError;
import com.jantuomi.tunkki.exception.types.TunkkiError;
@@ -23,7 +25,7 @@ public class BuiltinManager {
private Map<String, CallableDatatype> builtins = new HashMap<>();
public final Set<String> BUILTIN_MODULES = new HashSet<>(Arrays.asList(
- "math"
+ "math", "io", "cast"
));
private BuiltinManager() {
@@ -31,11 +33,7 @@ public class BuiltinManager {
}
private void initializeGlobals() {
- builtins.put("output", new OutputBuiltinFunction().makeCallable());
- builtins.put("input", new InputBuiltinFunction().makeCallable());
builtins.put("concat", new ConcatBuiltinFunction().makeCallable());
- builtins.put("as_int", new AsIntBuiltinFunction().makeCallable());
- builtins.put("as_bool", new AsBooleanBuiltinFunction().makeCallable());
builtins.put("include", new IncludeBuiltinFunction().makeCallable());
builtins.put("list", new ListBuiltinFunction().makeCallable());
builtins.put("contains", new ContainsBuiltinFunction().makeCallable());
@@ -46,14 +44,34 @@ public class BuiltinManager {
private Map<String, CallableDatatype> getFunctionsFromMathModule() {
Map<String, CallableDatatype> map = new HashMap<>();
- map.put("math", new PowerBuiltinFunction().makeCallable());
+ map.put("pow", new PowerBuiltinFunction().makeCallable());
+ return map;
+ }
+
+ private Map<String, CallableDatatype> getFunctionsFromIOModule() {
+ Map<String, CallableDatatype> map = new HashMap<>();
+ map.put("input", new InputBuiltinFunction().makeCallable());
+ map.put("output", new OutputBuiltinFunction().makeCallable());
+ return map;
+ }
+
+ private Map<String, CallableDatatype> getFunctionsFromCastModule() {
+ Map<String, CallableDatatype> map = new HashMap<>();
+ builtins.put("as_int", new AsIntBuiltinFunction().makeCallable());
+ builtins.put("as_bool", new AsBooleanBuiltinFunction().makeCallable());
return map;
}
public Map<String, CallableDatatype> getFunctionsFromModule(String name) throws TunkkiError {
- if (name.equals("math")) {
+ if ("math".equals(name)) {
return getFunctionsFromMathModule();
}
+ else if ("io".equals(name)) {
+ return getFunctionsFromIOModule();
+ }
+ else if ("cast".equals(name)) {
+ return getFunctionsFromCastModule();
+ }
else {
throw new IncludeTunkkiError(-1, name);
}
diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/InputBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/io/InputBuiltinFunction.java
index c7b53f0..47e6f23 100644
--- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/InputBuiltinFunction.java
+++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/io/InputBuiltinFunction.java
@@ -1,8 +1,9 @@
-package com.jantuomi.tunkki.core.runtime.builtins.globals;
+package com.jantuomi.tunkki.core.runtime.builtins.globals.io;
import com.jantuomi.tunkki.core.parser.datatype.Datatype;
import com.jantuomi.tunkki.core.parser.datatype.NadaDatatype;
import com.jantuomi.tunkki.core.parser.datatype.StringDatatype;
+import com.jantuomi.tunkki.core.runtime.builtins.globals.BuiltinFunction;
import com.jantuomi.tunkki.exception.types.TunkkiError;
import com.jantuomi.tunkki.utils.IO;
diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/OutputBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/io/OutputBuiltinFunction.java
index b16f668..cdefcc7 100644
--- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/OutputBuiltinFunction.java
+++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/io/OutputBuiltinFunction.java
@@ -1,7 +1,8 @@
-package com.jantuomi.tunkki.core.runtime.builtins.globals;
+package com.jantuomi.tunkki.core.runtime.builtins.globals.io;
import com.jantuomi.tunkki.core.parser.datatype.Datatype;
import com.jantuomi.tunkki.core.parser.datatype.VoidDatatype;
+import com.jantuomi.tunkki.core.runtime.builtins.globals.BuiltinFunction;
import com.jantuomi.tunkki.exception.types.TunkkiError;
import com.jantuomi.tunkki.utils.IO;