diff options
| author | jantuomi <jans.tuomi@gmail.com> | 2016-08-04 15:18:57 +0300 |
|---|---|---|
| committer | jantuomi <jans.tuomi@gmail.com> | 2016-08-04 15:18:57 +0300 |
| commit | be4953049321731f865e94def771ed53fe6b061f (patch) | |
| tree | 05a4a8c7fca87a6240b25a16e4cc99dd7db56a3b /src | |
| parent | efc2af17c87104ad35e32c50d26a8678b519a1bf (diff) | |
Store functions as symbols in the scope
Functions no longer know their own name because they are essentially lambdas assigned to variables
Diffstat (limited to 'src')
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 |
