diff options
| author | Jan Tuomi <jan-sebastian.tuomi@aalto.fi> | 2016-08-06 20:34:20 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan-sebastian.tuomi@aalto.fi> | 2016-08-06 20:34:20 +0300 |
| commit | dcfe0b2074a871416530c124937811d71f71cf75 (patch) | |
| tree | 9728947c725618343a14fbe498ebb683a09061c5 /src/main/com/jantuomi/tunkki | |
| parent | 7f3662be3c3b4ee0680471798c846305e81d8dc8 (diff) | |
Create 'io' module
Move 'input' and 'output' builtins to said module
Rename wrongly named power builtin to 'pow'
Diffstat (limited to 'src/main/com/jantuomi/tunkki')
| -rw-r--r-- | src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinManager.java | 32 | ||||
| -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; |
