diff options
Diffstat (limited to 'src/main/com')
23 files changed, 64 insertions, 178 deletions
diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/FunctionDefineNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/FunctionDefineNode.java index 5c3ad94..19de2f2 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/FunctionDefineNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/FunctionDefineNode.java @@ -16,16 +16,10 @@ import java.util.List; */ public class FunctionDefineNode extends VarargOperatorNode { - private String name; - public void setBody(ASTNode body) { this.body = body; } - public void setName(String name) { - this.name = name; - } - private ASTNode body; public FunctionDefineNode(Token token) { @@ -45,8 +39,6 @@ public class FunctionDefineNode extends VarargOperatorNode { throw new ExpectedDifferentTokenTunkkiError(getLine(), getText()); } Function function = new Function(argumentNames, (BlockBodyNode) body); - function.setName(name); - State.getInstance().addFunctionToScope(name, function); CallableDatatype c = new CallableDatatype(); c.setData(function); @@ -60,7 +52,7 @@ public class FunctionDefineNode extends VarargOperatorNode { System.out.print("\t"); } - System.out.println(String.format("Function %s", name)); + System.out.println(String.format("Function")); for (int i = 0; i < indent + 1; i++) { System.out.print("\t"); diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/SymbolNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/SymbolNode.java index ff4c256..6eccabf 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/SymbolNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/SymbolNode.java @@ -45,12 +45,8 @@ public class SymbolNode extends ASTNode { Datatype returnValue; try { - if (State.getInstance().isFunction(name)) { - returnValue = State.getInstance().makeFunctionReference(name); - } else { - List<Datatype> paramValues = evaluateParameters(); - returnValue = State.getInstance().evaluateSymbol(name, paramValues); - } + List<Datatype> paramValues = evaluateParameters(); + returnValue = State.getInstance().evaluateSymbol(name, paramValues); } /* If a TunkkiError is caught, pass it on with line information */ diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/CallableDatatype.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/CallableDatatype.java index f4f2844..f05ee72 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/datatype/CallableDatatype.java +++ b/src/main/com/jantuomi/tunkki/core/parser/datatype/CallableDatatype.java @@ -17,7 +17,7 @@ public class CallableDatatype extends Datatype<Function> { @Override public String toString() { - return String.format("Callable %s", getData().getName()); + return "Callable"; } public Datatype call(List<Datatype> params) throws TunkkiError { diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/ObjectDatatype.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/ObjectDatatype.java index 39f1d3d..b9dfb07 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/datatype/ObjectDatatype.java +++ b/src/main/com/jantuomi/tunkki/core/parser/datatype/ObjectDatatype.java @@ -20,7 +20,6 @@ public class ObjectDatatype extends Datatype<Scope> { public String toString() { String sb = "Object ["; sb += String.join(", ", getData().getVariableNames()); - sb += String.join(", ", getData().getFunctionNames()); sb += "]"; return sb; } diff --git a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/FunctionDefineToken.java b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/FunctionDefineToken.java index 8050692..34a73f6 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/FunctionDefineToken.java +++ b/src/main/com/jantuomi/tunkki/core/parser/tokenizer/token/types/FunctionDefineToken.java @@ -24,11 +24,8 @@ public class FunctionDefineToken extends VarargOperatorToken { if (args.size() == 0) { throw new ExpectedDifferentTokenTunkkiError(getLine(), getText()); } - - node.setName(args.get(0).getText()); - List<ASTNode> funcArgs = new ArrayList<>(); - for (int i = 1; i < args.size() - 1; i++) { + for (int i = 0; i < args.size() - 1; i++) { funcArgs.add(args.get(i).generateNode()); } node.setArgs(funcArgs); diff --git a/src/main/com/jantuomi/tunkki/core/runtime/Function.java b/src/main/com/jantuomi/tunkki/core/runtime/Function.java index 4b08a80..e4c4f0f 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/Function.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/Function.java @@ -1,6 +1,7 @@ package com.jantuomi.tunkki.core.runtime; import com.jantuomi.tunkki.core.parser.ast.BlockBodyNode; +import com.jantuomi.tunkki.core.parser.datatype.CallableDatatype; import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.exception.types.TunkkiError; @@ -14,16 +15,6 @@ public class Function { private List<String> argumentNames; private BlockBodyNode body; - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - private String name; - public Function(List<String> argumentNames, BlockBodyNode body) { this.argumentNames = argumentNames; this.body = body; @@ -48,4 +39,10 @@ public class Function { return returnValue; } + public CallableDatatype makeCallable() { + CallableDatatype c = new CallableDatatype(); + c.setData(this); + return c; + } + } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/Scope.java b/src/main/com/jantuomi/tunkki/core/runtime/Scope.java index 712c97a..7238505 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/Scope.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/Scope.java @@ -17,16 +17,11 @@ public class Scope { private Scope parent = null; private Map<String, Datatype> variables = new HashMap<>(); - private Map<String, Function> functions = new HashMap<>(); public Set<String> getVariableNames() { return variables.keySet(); } - public Set<String> getFunctionNames() { - return functions.keySet(); - } - public void addVariable(String symbol) { variables.put(symbol, null); } @@ -35,10 +30,12 @@ public class Scope { variables.replace(symbol, value); } + public void addAndSetVariable(String symbol, Datatype value) { + addVariable(symbol); + setVariableValue(symbol, value); + } + public Datatype resolveSymbol(String symbol, List<Datatype> params) throws TunkkiError { - if (functions.containsKey(symbol)) { - return functions.get(symbol).evaluate(params); - } if (variables.containsKey(symbol)) { return variables.get(symbol); } @@ -50,30 +47,7 @@ public class Scope { } } - public CallableDatatype getCallable(String symbol) { - if (functions.containsKey(symbol)) { - Function f = functions.get(symbol); - CallableDatatype c = new CallableDatatype(); - c.setData(f); - return c; - } - else if (parent != null) { - return parent.getCallable(symbol); - } - else { - return null; - } - } - public void setParent(Scope parent) { this.parent = parent; } - - public void addFunction(String symbol, Function func) { - functions.put(symbol, func); - } - - public boolean isFunction(String symbol) { - return functions.containsKey(symbol); - } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/State.java b/src/main/com/jantuomi/tunkki/core/runtime/State.java index 968f8c9..e5f53b4 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/State.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/State.java @@ -1,5 +1,6 @@ package com.jantuomi.tunkki.core.runtime; +import com.jantuomi.tunkki.core.parser.datatype.CallableDatatype; import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.parser.datatype.NadaDatatype; import com.jantuomi.tunkki.core.runtime.builtins.BuiltinManager; @@ -7,6 +8,7 @@ import com.jantuomi.tunkki.exception.types.TunkkiError; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.Stack; /** @@ -25,8 +27,10 @@ public class State { /* Push global scope onto the stack */ Scope globalScope = new Scope(); - for (Function builtin : BuiltinManager.getInstance().getBuiltins()) { - globalScope.addFunction(builtin.getName(), builtin); + Map<String, CallableDatatype> builtins = BuiltinManager.getInstance().getBuiltins(); + for (String builtin : builtins.keySet()) { + globalScope.addVariable(builtin); + globalScope.setVariableValue(builtin, builtins.get(builtin)); } /* Add nada to the scope */ @@ -49,10 +53,6 @@ public class State { return scopes.peek().resolveSymbol(symbol, parameters); } - public boolean isFunction(String symbol) { - return scopes.peek().isFunction(symbol); - } - public Scope createScope() { Scope scope = new Scope(); if (scopes.size() > 0) { @@ -68,9 +68,6 @@ public class State { scopes.peek().addVariable(symbol); } - public void addFunctionToScope(String symbol, Function func) { - scopes.peek().addFunction(symbol, func); - } public void setSymbolValueToScope(String symbol, Datatype value) { scopes.peek().setVariableValue(symbol, value); @@ -79,8 +76,4 @@ public class State { public Scope popScope() { return scopes.pop(); } - - public Datatype makeFunctionReference(String name) { - return scopes.peek().getCallable(name); - } } 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 0b98830..ae66a14 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinManager.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinManager.java @@ -1,5 +1,6 @@ package com.jantuomi.tunkki.core.runtime.builtins; +import com.jantuomi.tunkki.core.parser.datatype.CallableDatatype; import com.jantuomi.tunkki.core.runtime.Function; import com.jantuomi.tunkki.core.runtime.builtins.globals.*; import com.jantuomi.tunkki.core.runtime.builtins.globals.cast.AsBooleanBuiltinFunction; @@ -20,37 +21,37 @@ public class BuiltinManager { return instance; } - private List<BuiltinFunction> builtins; + private Map<String, CallableDatatype> builtins = new HashMap<>(); public final Set<String> BUILTIN_MODULES = new HashSet<>(Arrays.asList( "math" )); private BuiltinManager() { - instance = this; - builtins = new ArrayList<>(); initializeGlobals(); } private void initializeGlobals() { - builtins.add(new OutputBuiltinFunction()); - builtins.add(new InputBuiltinFunction()); - builtins.add(new ConcatBuiltinFunction()); - builtins.add(new AsIntBuiltinFunction()); - builtins.add(new AsBooleanBuiltinFunction()); - builtins.add(new IncludeBuiltinFunction()); - builtins.add(new ListBuiltinFunction()); - builtins.add(new ContainsBuiltinFunction()); - builtins.add(new GetBuiltinFunction()); - builtins.add(new EqualsBuiltinFunction()); - builtins.add(new IfBuiltinFunction()); + 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()); + builtins.put("get", new GetBuiltinFunction().makeCallable()); + builtins.put("eq", new EqualsBuiltinFunction().makeCallable()); + builtins.put("if", new IfBuiltinFunction().makeCallable()); } - private List<Function> getFunctionsFromMathModule() { - return Collections.singletonList(new PowerBuiltinFunction()); + private Map<String, CallableDatatype> getFunctionsFromMathModule() { + Map<String, CallableDatatype> map = new HashMap<>(); + map.put("math", new PowerBuiltinFunction().makeCallable()); + return map; } - public List<Function> getFunctionsFromModule(String name) throws TunkkiError { + public Map<String, CallableDatatype> getFunctionsFromModule(String name) throws TunkkiError { if (name.equals("math")) { return getFunctionsFromMathModule(); } @@ -59,7 +60,7 @@ public class BuiltinManager { } } - public List<BuiltinFunction> getBuiltins() { + public Map<String, CallableDatatype> getBuiltins() { return builtins; } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/BuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/BuiltinFunction.java index 8cb8c41..b175525 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/BuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/BuiltinFunction.java @@ -9,14 +9,11 @@ import java.util.List; /** * Created by jan on 28.6.2016. */ -abstract public class BuiltinFunction extends Function{ +abstract public class BuiltinFunction extends Function { public BuiltinFunction(List<String> argumentNames) { super(argumentNames, null); } @Override abstract public Datatype evaluate(List<Datatype> params) throws TunkkiError; - - @Override - abstract public String getName(); } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ConcatBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ConcatBuiltinFunction.java index 677ed32..170efed 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ConcatBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ConcatBuiltinFunction.java @@ -18,11 +18,6 @@ public class ConcatBuiltinFunction extends BuiltinFunction { } @Override - public String getName() { - return "concat"; - } - - @Override public Datatype evaluate(List<Datatype> params) throws TunkkiError { StringBuilder sb = new StringBuilder(); for (Datatype d : params) { diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ContainsBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ContainsBuiltinFunction.java index c6eb589..ccb461a 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ContainsBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ContainsBuiltinFunction.java @@ -21,7 +21,7 @@ public class ContainsBuiltinFunction extends BuiltinFunction { @Override public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 2) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } if (params.get(0).getType() == Datatype.Type.List) { @@ -30,7 +30,7 @@ public class ContainsBuiltinFunction extends BuiltinFunction { else if (params.get(0).getType() == Datatype.Type.String) { return evaluateOnString(params); } - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } private Datatype evaluateOnList(List<Datatype> params) throws TunkkiError { @@ -47,7 +47,7 @@ public class ContainsBuiltinFunction extends BuiltinFunction { private Datatype evaluateOnString(List<Datatype> params) throws TunkkiError { if (params.get(1).getType() != Datatype.Type.String) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } StringDatatype string = (StringDatatype) params.get(0); @@ -57,9 +57,4 @@ public class ContainsBuiltinFunction extends BuiltinFunction { string.getData().contains(comp.getData()) ); } - - @Override - public String getName() { - return "contains"; - } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/EqualsBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/EqualsBuiltinFunction.java index 1d5ca64..c31759a 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/EqualsBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/EqualsBuiltinFunction.java @@ -20,7 +20,7 @@ public class EqualsBuiltinFunction extends BuiltinFunction { @Override public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 2) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } Datatype lhs = params.get(0); @@ -33,9 +33,4 @@ public class EqualsBuiltinFunction extends BuiltinFunction { throw new TypeTunkkiError(-1, lhs.getType().toString(), rhs.getType().toString()); } } - - @Override - public String getName() { - return "eq"; - } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/GetBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/GetBuiltinFunction.java index 5298e60..f936854 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/GetBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/GetBuiltinFunction.java @@ -21,15 +21,15 @@ public class GetBuiltinFunction extends BuiltinFunction { @Override public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 2) { - throw new FunctionArgumentTunkkiError(-1, getName(), params.toString()); + throw new FunctionArgumentTunkkiError(-1, params.toString()); } if (params.get(0).getType() != Datatype.Type.List) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } if (params.get(1).getType() != Datatype.Type.Integer) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } ListDatatype list = (ListDatatype) params.get(0); @@ -42,9 +42,4 @@ public class GetBuiltinFunction extends BuiltinFunction { throw new OutOfBoundsTunkkiError(-1, index.toString()); } } - - @Override - public String getName() { - return "get"; - } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/IfBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/IfBuiltinFunction.java index b0eb491..f794aa2 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/IfBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/IfBuiltinFunction.java @@ -22,13 +22,13 @@ public class IfBuiltinFunction extends BuiltinFunction { @Override public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 2) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } Datatype lhs = params.get(0); Datatype rhs = params.get(1); if (lhs.getType() != Datatype.Type.Boolean || rhs.getType() != Datatype.Type.Callable) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } BooleanDatatype cond = (BooleanDatatype) lhs; @@ -38,9 +38,4 @@ public class IfBuiltinFunction extends BuiltinFunction { } return new VoidDatatype(); } - - @Override - public String getName() { - return "if"; - } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/IncludeBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/IncludeBuiltinFunction.java index ea4f7a6..fb2f9fc 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/IncludeBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/IncludeBuiltinFunction.java @@ -3,10 +3,7 @@ package com.jantuomi.tunkki.core.runtime.builtins.globals; import com.jantuomi.tunkki.Tunkki; import com.jantuomi.tunkki.core.CommandLineArgumentContainer; -import com.jantuomi.tunkki.core.parser.datatype.Datatype; -import com.jantuomi.tunkki.core.parser.datatype.ObjectDatatype; -import com.jantuomi.tunkki.core.parser.datatype.StringDatatype; -import com.jantuomi.tunkki.core.parser.datatype.VoidDatatype; +import com.jantuomi.tunkki.core.parser.datatype.*; import com.jantuomi.tunkki.core.runtime.State; import com.jantuomi.tunkki.core.runtime.builtins.BuiltinManager; import com.jantuomi.tunkki.exception.ExceptionManager; @@ -14,6 +11,7 @@ import com.jantuomi.tunkki.exception.types.*; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -29,11 +27,11 @@ public class IncludeBuiltinFunction extends BuiltinFunction { @Override public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 1) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } if (params.get(0).getType() != Datatype.Type.String) { - throw new TypeTunkkiError(-1, params.get(0).getType().toString(), getName()); + throw new TypeTunkkiError(-1, params.get(0).getType().toString(), "include"); } StringDatatype param = (StringDatatype) params.get(0); @@ -42,8 +40,10 @@ public class IncludeBuiltinFunction extends BuiltinFunction { if (BuiltinManager.getInstance().BUILTIN_MODULES.contains(filename)) { ObjectDatatype namespace = new ObjectDatatype(); - BuiltinManager.getInstance().getFunctionsFromModule(filename) - .forEach( f -> namespace.getData().addFunction(f.getName(), f) ); + Map<String, CallableDatatype> funcs = BuiltinManager.getInstance().getFunctionsFromModule(filename); + for (String funcName : funcs.keySet()) { + namespace.getData().addAndSetVariable(funcName, funcs.get(funcName)); + } State.getInstance().addSymbolToScope(filename); State.getInstance().setSymbolValueToScope(filename, namespace); @@ -67,9 +67,4 @@ public class IncludeBuiltinFunction extends BuiltinFunction { return new VoidDatatype(); } - - @Override - public String getName() { - return "include"; - } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/InputBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/InputBuiltinFunction.java index c5c8e56..4c52d46 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/InputBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/InputBuiltinFunction.java @@ -19,11 +19,6 @@ public class InputBuiltinFunction extends BuiltinFunction { } @Override - public String getName() { - return "input"; - } - - @Override public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() > 0) { Datatype param = params.get(0); diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ListBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ListBuiltinFunction.java index 60d9b50..4d82c1a 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ListBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/ListBuiltinFunction.java @@ -20,9 +20,4 @@ public class ListBuiltinFunction extends BuiltinFunction { ListDatatype data = new ListDatatype(params); return data; } - - @Override - public String getName() { - return "list"; - } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/OutputBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/OutputBuiltinFunction.java index aa511ce..7a7d6fa 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/OutputBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/OutputBuiltinFunction.java @@ -18,11 +18,6 @@ public class OutputBuiltinFunction extends BuiltinFunction { } @Override - public String getName() { - return "output"; - } - - @Override public Datatype evaluate(List<Datatype> params) throws TunkkiError { Datatype param = params.get(0); System.out.println(param.getData().toString()); diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/cast/AsBooleanBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/cast/AsBooleanBuiltinFunction.java index 632d25f..4432554 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/cast/AsBooleanBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/cast/AsBooleanBuiltinFunction.java @@ -19,11 +19,6 @@ public class AsBooleanBuiltinFunction extends BuiltinFunction { } @Override - public String getName() { - return "as_bool"; - } - - @Override public BooleanDatatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 1) { return null; diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/cast/AsIntBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/cast/AsIntBuiltinFunction.java index 4bd13a0..773d480 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/cast/AsIntBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/globals/cast/AsIntBuiltinFunction.java @@ -19,11 +19,6 @@ public class AsIntBuiltinFunction extends BuiltinFunction { } @Override - public String getName() { - return "as_int"; - } - - @Override public IntegerDatatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 1) { return null; diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/math/PowerBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/math/PowerBuiltinFunction.java index ffd81f8..e56a9b9 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/math/PowerBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/math/PowerBuiltinFunction.java @@ -21,7 +21,7 @@ public class PowerBuiltinFunction extends BuiltinFunction { @Override public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 2) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } Datatype lhs = params.get(0); @@ -35,7 +35,7 @@ public class PowerBuiltinFunction extends BuiltinFunction { return new DoubleDatatype(result); } catch (Exception ex) { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } } @@ -47,13 +47,8 @@ public class PowerBuiltinFunction extends BuiltinFunction { number = ((DoubleDatatype) dt).getData(); } else { - throw new FunctionArgumentTunkkiError(-1, getName(), Datatype.toString(params)); + throw new FunctionArgumentTunkkiError(-1, Datatype.toString(params)); } return number; } - - @Override - public String getName() { - return "pow"; - } } diff --git a/src/main/com/jantuomi/tunkki/exception/types/FunctionArgumentTunkkiError.java b/src/main/com/jantuomi/tunkki/exception/types/FunctionArgumentTunkkiError.java index 1b61c86..068b55d 100644 --- a/src/main/com/jantuomi/tunkki/exception/types/FunctionArgumentTunkkiError.java +++ b/src/main/com/jantuomi/tunkki/exception/types/FunctionArgumentTunkkiError.java @@ -10,7 +10,7 @@ public class FunctionArgumentTunkkiError extends TunkkiError { @Override public String what() { - return "The parameter list given to function %s is either of wrong length or the parameters are of wrong type. Actual: %s"; + return "The parameter list given to function is either of wrong length or the parameters are of wrong type. Actual: %s"; } @Override |
