diff options
| author | jantuomi <jans.tuomi@gmail.com> | 2016-07-29 15:18:35 +0300 |
|---|---|---|
| committer | jantuomi <jans.tuomi@gmail.com> | 2016-07-29 15:18:35 +0300 |
| commit | 316add83c73292b16e1c51feb66e30720208e20c (patch) | |
| tree | f8ff16cb09f4b44ab78230ec94f37af3a8120451 /src/main | |
| parent | ee478b5487a262106fcb9eb62eec37d41972787c (diff) | |
Rename DataContainer to Datatype
Diffstat (limited to 'src/main')
42 files changed, 422 insertions, 427 deletions
diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/ASTNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/ASTNode.java index 4878105..a3b0f47 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/ASTNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/ASTNode.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.TunkkiError; @@ -11,7 +11,7 @@ import java.util.List; */ abstract public class ASTNode { - public abstract DataContainer evaluate() throws TunkkiError; + public abstract Datatype evaluate() throws TunkkiError; protected Token source; diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/AdditionNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/AdditionNode.java index 69edec1..6d4e7ca 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/AdditionNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/AdditionNode.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.ExceptionManager; import com.jantuomi.tunkki.exception.TunkkiError; @@ -18,11 +18,11 @@ public class AdditionNode extends BinaryOperatorNode { } @Override - public DataContainer evaluate() throws TunkkiError { - DataContainer operand1 = lhs.evaluate(); - DataContainer operand2 = rhs.evaluate(); + public Datatype evaluate() throws TunkkiError { + Datatype operand1 = lhs.evaluate(); + Datatype operand2 = rhs.evaluate(); - DataContainer result = operand1.add(operand2); + Datatype result = operand1.add(operand2); if (result != null) { return result; } else { diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/AssignmentNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/AssignmentNode.java index 619fe31..0500ad3 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/AssignmentNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/AssignmentNode.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.runtime.State; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.TunkkiError; @@ -17,9 +17,9 @@ public class AssignmentNode extends BinaryOperatorNode { } @Override - public DataContainer evaluate() throws TunkkiError { + public Datatype evaluate() throws TunkkiError { SymbolNode symbol = (SymbolNode) lhs; - DataContainer rValue = rhs.evaluate(); + Datatype rValue = rhs.evaluate(); State.getInstance().setSymbolValueToScope( symbol.getName(), rValue diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/BlockBodyNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/BlockBodyNode.java index 2df3496..4899b8f 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/BlockBodyNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/BlockBodyNode.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.VoidDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.VoidDatatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.TunkkiError; @@ -14,8 +14,8 @@ public class BlockBodyNode extends VarargOperatorNode { } @Override - public DataContainer evaluate() throws TunkkiError { - DataContainer returnValue = new VoidDataContainer(); + public Datatype evaluate() throws TunkkiError { + Datatype returnValue = new VoidDatatype(); for (ASTNode node : args) { returnValue = node.evaluate(); diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/BooleanLiteralNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/BooleanLiteralNode.java index aaa1e95..d9d2c6a 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/BooleanLiteralNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/BooleanLiteralNode.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.BooleanDataContainer; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.BooleanDatatype; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import java.util.Arrays; @@ -11,15 +11,15 @@ import java.util.List; * Created by jan on 16.6.2016. */ public class BooleanLiteralNode extends ASTNode { - private BooleanDataContainer value; + private BooleanDatatype value; public BooleanLiteralNode(Token token) { super(token); - value = new BooleanDataContainer(Boolean.parseBoolean(token.getText())); + value = new BooleanDatatype(Boolean.parseBoolean(token.getText())); } @Override - public DataContainer evaluate() { + public Datatype evaluate() { return value; } diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/BranchNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/BranchNode.java index c4a027a..51a5f45 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/BranchNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/BranchNode.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.BooleanDataContainer; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.BooleanDatatype; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.TunkkiError; @@ -23,16 +23,16 @@ public class BranchNode extends ASTNode { } @Override - public DataContainer evaluate() throws TunkkiError { - DataContainer ev = expression.evaluate(); + public Datatype evaluate() throws TunkkiError { + Datatype ev = expression.evaluate(); boolean returnValue = false; - if (ev instanceof BooleanDataContainer) { - returnValue = ((BooleanDataContainer) ev).getData(); + if (ev instanceof BooleanDatatype) { + returnValue = ((BooleanDatatype) ev).getData(); if (returnValue) { branch.evaluate(); } } - return new BooleanDataContainer(returnValue); + return new BooleanDatatype(returnValue); } @Override diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/DeclareAssignNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/DeclareAssignNode.java index 6e951cb..ea882cf 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/DeclareAssignNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/DeclareAssignNode.java @@ -1,11 +1,9 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.StringDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.runtime.State; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.TunkkiError; -import com.sun.java_cup.internal.runtime.Symbol; import java.util.Arrays; import java.util.List; @@ -19,7 +17,7 @@ public class DeclareAssignNode extends BinaryOperatorNode { } @Override - public DataContainer evaluate() throws TunkkiError { + public Datatype evaluate() throws TunkkiError { SymbolNode var; try { var = (SymbolNode) lhs; @@ -30,7 +28,7 @@ public class DeclareAssignNode extends BinaryOperatorNode { State.getInstance().addSymbolToScope(var.getName()); - DataContainer rValue = rhs.evaluate(); + Datatype rValue = rhs.evaluate(); State.getInstance().setSymbolValueToScope( var.getName(), rValue diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/DivisionNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/DivisionNode.java index c963c77..c1311c0 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/DivisionNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/DivisionNode.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.ExceptionManager; import com.jantuomi.tunkki.exception.TunkkiError; @@ -18,11 +18,11 @@ public class DivisionNode extends BinaryOperatorNode { } @Override - public DataContainer evaluate() throws TunkkiError { - DataContainer operand1 = lhs.evaluate(); - DataContainer operand2 = rhs.evaluate(); + public Datatype evaluate() throws TunkkiError { + Datatype operand1 = lhs.evaluate(); + Datatype operand2 = rhs.evaluate(); - DataContainer result = operand1.divide(operand2); + Datatype result = operand1.divide(operand2); if (result != null) { return result; } else { diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/DoubleLiteralNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/DoubleLiteralNode.java index 361161d..1272519 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/DoubleLiteralNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/DoubleLiteralNode.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.DoubleDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.DoubleDatatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import java.util.Arrays; @@ -11,15 +11,15 @@ import java.util.List; * Created by jan on 16.6.2016. */ public class DoubleLiteralNode extends ASTNode { - private DoubleDataContainer value; + private DoubleDatatype value; public DoubleLiteralNode(Token token) { super(token); - value = new DoubleDataContainer(Double.parseDouble(token.getText())); + value = new DoubleDatatype(Double.parseDouble(token.getText())); } @Override - public DataContainer evaluate() { + public Datatype evaluate() { return value; } diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/EmptyNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/EmptyNode.java index 943623f..136a0c3 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/EmptyNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/EmptyNode.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.VoidDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.VoidDatatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import java.util.Arrays; @@ -16,8 +16,8 @@ public class EmptyNode extends ASTNode { } @Override - public DataContainer evaluate() { - return new VoidDataContainer(); + public Datatype evaluate() { + return new VoidDatatype(); } @Override 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 d8d6aa2..7339970 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/FunctionDefineNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/FunctionDefineNode.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.StringDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.StringDatatype; import com.jantuomi.tunkki.core.runtime.Function; import com.jantuomi.tunkki.core.runtime.State; import com.jantuomi.tunkki.core.tokenizer.token.Token; @@ -32,7 +32,7 @@ public class FunctionDefineNode extends VarargOperatorNode { } @Override - public DataContainer evaluate() throws TunkkiError { + public Datatype evaluate() throws TunkkiError { List<String> argumentNames = new ArrayList<>(); try { for (ASTNode arg : args) { @@ -47,7 +47,7 @@ public class FunctionDefineNode extends VarargOperatorNode { function.setName(name); State.getInstance().addFunctionToScope(name, function); - return new StringDataContainer("function " + name); + return new StringDatatype("function " + name); } @Override diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/IntegerLiteralNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/IntegerLiteralNode.java index a0e0c13..f0a1a6d 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/IntegerLiteralNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/IntegerLiteralNode.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.IntegerDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.IntegerDatatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import java.util.Arrays; @@ -11,15 +11,15 @@ import java.util.List; * Created by jan on 16.6.2016. */ public class IntegerLiteralNode extends ASTNode { - private IntegerDataContainer value; + private IntegerDatatype value; public IntegerLiteralNode(Token token) { super(token); - value = new IntegerDataContainer(Integer.parseInt(token.getText())); + value = new IntegerDatatype(Integer.parseInt(token.getText())); } @Override - public DataContainer evaluate() { + public Datatype evaluate() { return value; } diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/MultiplicationNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/MultiplicationNode.java index 783bffd..a1e55d6 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/MultiplicationNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/MultiplicationNode.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.ExceptionManager; import com.jantuomi.tunkki.exception.TunkkiError; @@ -18,11 +18,11 @@ public class MultiplicationNode extends BinaryOperatorNode { } @Override - public DataContainer evaluate() throws TunkkiError { - DataContainer operand1 = lhs.evaluate(); - DataContainer operand2 = rhs.evaluate(); + public Datatype evaluate() throws TunkkiError { + Datatype operand1 = lhs.evaluate(); + Datatype operand2 = rhs.evaluate(); - DataContainer result = operand1.multiply(operand2); + Datatype result = operand1.multiply(operand2); if (result != null) { return result; } else { diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/NegationNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/NegationNode.java index a458ff3..7006975 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/NegationNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/NegationNode.java @@ -1,8 +1,8 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.BooleanDataContainer; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.IntegerDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.BooleanDatatype; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.IntegerDatatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.ExceptionManager; import com.jantuomi.tunkki.exception.TunkkiError; @@ -16,15 +16,15 @@ public class NegationNode extends UnaryOperatorNode { } @Override - public DataContainer evaluate() throws TunkkiError { - DataContainer d = getOperand().evaluate(); + public Datatype evaluate() throws TunkkiError { + Datatype d = getOperand().evaluate(); - if (d instanceof BooleanDataContainer) { - return new BooleanDataContainer(!((BooleanDataContainer) d).getData()); + if (d instanceof BooleanDatatype) { + return new BooleanDatatype(!((BooleanDatatype) d).getData()); } - else if (d instanceof IntegerDataContainer) { - return new BooleanDataContainer( - ((IntegerDataContainer) d).getData() != 0 + else if (d instanceof IntegerDatatype) { + return new BooleanDatatype( + ((IntegerDatatype) d).getData() != 0 ); } ExceptionManager.raise(TunkkiError.ExceptionType.TypeError, source.getLine(), "not", d.toString()); diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/ParameterListNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/ParameterListNode.java index 42e95ea..fbc0992 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/ParameterListNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/ParameterListNode.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import java.util.ArrayList; @@ -26,7 +26,7 @@ public class ParameterListNode extends ASTNode { } @Override - public DataContainer evaluate() { + public Datatype evaluate() { // TODO use State to evaluate function return null; } diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/StringLiteralNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/StringLiteralNode.java index ffa008a..0976d93 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/StringLiteralNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/StringLiteralNode.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.StringDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.StringDatatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import java.util.Arrays; @@ -12,8 +12,8 @@ import java.util.List; */ public class StringLiteralNode extends ASTNode { @Override - public DataContainer evaluate() { - return new StringDataContainer(source.getText()); + public Datatype evaluate() { + return new StringDatatype(source.getText()); } public StringLiteralNode(Token source) { diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/SubtractionNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/SubtractionNode.java index 90b06fc..56fd833 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/SubtractionNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/SubtractionNode.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.ExceptionManager; import com.jantuomi.tunkki.exception.TunkkiError; @@ -17,11 +17,11 @@ public class SubtractionNode extends BinaryOperatorNode { } @Override - public DataContainer evaluate() throws TunkkiError { - DataContainer operand1 = lhs.evaluate(); - DataContainer operand2 = rhs.evaluate(); + public Datatype evaluate() throws TunkkiError { + Datatype operand1 = lhs.evaluate(); + Datatype operand2 = rhs.evaluate(); - DataContainer result = operand1.subtract(operand2); + Datatype result = operand1.subtract(operand2); if (result != null) { return result; } else { 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 dc3a6e4..fde44c7 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/SymbolNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/SymbolNode.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.runtime.State; import com.jantuomi.tunkki.core.tokenizer.token.Token; import com.jantuomi.tunkki.exception.ExceptionManager; @@ -41,16 +41,16 @@ public class SymbolNode extends ASTNode { } @Override - public DataContainer evaluate() throws TunkkiError { - List<DataContainer> paramValues = new ArrayList<>(); + public Datatype evaluate() throws TunkkiError { + List<Datatype> paramValues = new ArrayList<>(); for (ASTNode param : parameters) { - DataContainer value = param.evaluate(); + Datatype value = param.evaluate(); if (value != null) { paramValues.add(value); } } - DataContainer returnValue; + Datatype returnValue; try { returnValue = State.getInstance().getSymbolValue(name, paramValues); } @@ -64,7 +64,7 @@ public class SymbolNode extends ASTNode { return returnValue; } else { ExceptionManager.raise(TunkkiError.ExceptionType.UndeclaredSymbolError, getLine(), name, - StringUtils.join(paramValues.stream().map(DataContainer::toString).collect(Collectors.toList()), ",")); + StringUtils.join(paramValues.stream().map(Datatype::toString).collect(Collectors.toList()), ",")); return null; } } diff --git a/src/main/com/jantuomi/tunkki/core/parser/ast/VariableDeclareNode.java b/src/main/com/jantuomi/tunkki/core/parser/ast/VariableDeclareNode.java index 9e2677f..07aa8e2 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/ast/VariableDeclareNode.java +++ b/src/main/com/jantuomi/tunkki/core/parser/ast/VariableDeclareNode.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.parser.ast; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.StringDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.StringDatatype; import com.jantuomi.tunkki.core.runtime.State; import com.jantuomi.tunkki.core.tokenizer.token.Token; @@ -20,9 +20,9 @@ public class VariableDeclareNode extends ASTNode { } @Override - public DataContainer evaluate() { + public Datatype evaluate() { State.getInstance().addSymbolToScope(variable.getName()); - return new StringDataContainer(variable.getName()); + return new StringDatatype(variable.getName()); } @Override diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/BooleanDataContainer.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/BooleanDatatype.java index d1154e8..9d8fc69 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/datatype/BooleanDataContainer.java +++ b/src/main/com/jantuomi/tunkki/core/parser/datatype/BooleanDatatype.java @@ -5,10 +5,10 @@ import com.jantuomi.tunkki.exception.TunkkiError; /** * Created by jan on 16.6.2016. */ -public class BooleanDataContainer extends DataContainer<Boolean> { +public class BooleanDatatype extends Datatype<Boolean> { - public BooleanDataContainer(boolean value) { + public BooleanDatatype(boolean value) { setData(value); } @@ -23,22 +23,22 @@ public class BooleanDataContainer extends DataContainer<Boolean> { } @Override - public DataContainer<Boolean> add(DataContainer<Boolean> other) throws TunkkiError { + public Datatype<Boolean> add(Datatype<Boolean> other) throws TunkkiError { return null; } @Override - public DataContainer<Boolean> subtract(DataContainer<Boolean> other) throws TunkkiError { + public Datatype<Boolean> subtract(Datatype<Boolean> other) throws TunkkiError { return null; } @Override - public DataContainer<Boolean> multiply(DataContainer<Boolean> other) throws TunkkiError { + public Datatype<Boolean> multiply(Datatype<Boolean> other) throws TunkkiError { return null; } @Override - public DataContainer<Boolean> divide(DataContainer<Boolean> other) throws TunkkiError { + public Datatype<Boolean> divide(Datatype<Boolean> other) throws TunkkiError { return null; } } diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/DataContainer.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/Datatype.java index 344d6c9..a8756cf 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/datatype/DataContainer.java +++ b/src/main/com/jantuomi/tunkki/core/parser/datatype/Datatype.java @@ -2,14 +2,13 @@ package com.jantuomi.tunkki.core.parser.datatype; import com.jantuomi.tunkki.exception.TunkkiError; -import javax.xml.crypto.Data; import java.util.List; import java.util.stream.Collectors; /** * Created by jan on 11.6.2016. */ -abstract public class DataContainer<T> { +abstract public class Datatype<T> { public enum Type { List, @@ -35,14 +34,14 @@ abstract public class DataContainer<T> { @Override abstract public String toString(); - abstract public DataContainer<T> add(DataContainer<T> other) throws TunkkiError; - public abstract DataContainer<T> subtract(DataContainer<T> other) throws TunkkiError; - public abstract DataContainer<T> multiply(DataContainer<T> other) throws TunkkiError; - public abstract DataContainer<T> divide(DataContainer<T> other) throws TunkkiError; + abstract public Datatype<T> add(Datatype<T> other) throws TunkkiError; + public abstract Datatype<T> subtract(Datatype<T> other) throws TunkkiError; + public abstract Datatype<T> multiply(Datatype<T> other) throws TunkkiError; + public abstract Datatype<T> divide(Datatype<T> other) throws TunkkiError; - public static String toString(List<DataContainer> variables) { + public static String toString(List<Datatype> variables) { String result = "["; - List<String> strings = variables.stream().map(DataContainer::toString).collect(Collectors.toList()); + List<String> strings = variables.stream().map(Datatype::toString).collect(Collectors.toList()); result += String.join(", ", strings); result += "]"; return result; diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/DoubleDataContainer.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/DoubleDataContainer.java deleted file mode 100644 index 7bb3708..0000000 --- a/src/main/com/jantuomi/tunkki/core/parser/datatype/DoubleDataContainer.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.jantuomi.tunkki.core.parser.datatype; - -import com.jantuomi.tunkki.exception.TunkkiError; - -/** - * Created by jan on 22.6.2016. - */ -public class DoubleDataContainer extends DataContainer<Double> { - public DoubleDataContainer(double value) { - setData(value); - } - - @Override - public Type getType() { - return Type.Double; - } - - @Override - public String toString() { - return getData().toString(); - } - - @Override - public DataContainer add(DataContainer other) throws TunkkiError { - switch (other.getType()) { - case Double: - return new DoubleDataContainer( - getData() + ((DoubleDataContainer) other).getData() - ); - case Integer: - return new DoubleDataContainer( - getData() + ((IntegerDataContainer) other).getData() - ); - default: - return null; - } - } - - @Override - public DataContainer subtract(DataContainer other) throws TunkkiError { - switch (other.getType()) { - case Double: - return new DoubleDataContainer( - getData() - ((DoubleDataContainer) other).getData() - ); - case Integer: - return new DoubleDataContainer( - getData() - ((IntegerDataContainer) other).getData() - ); - default: - return null; - } - } - - @Override - public DataContainer multiply(DataContainer other) throws TunkkiError { - switch (other.getType()) { - case Double: - return new DoubleDataContainer( - getData() * ((DoubleDataContainer) other).getData() - ); - case Integer: - return new DoubleDataContainer( - getData() * ((IntegerDataContainer) other).getData() - ); - default: - return null; - } - } - - @Override - public DataContainer divide(DataContainer other) throws TunkkiError { - switch (other.getType()) { - case Double: - return new DoubleDataContainer( - getData() / ((DoubleDataContainer) other).getData() - ); - case Integer: - return new DoubleDataContainer( - getData() / ((IntegerDataContainer) other).getData() - ); - default: - return null; - } - } -} diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/DoubleDatatype.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/DoubleDatatype.java new file mode 100644 index 0000000..38ec4ec --- /dev/null +++ b/src/main/com/jantuomi/tunkki/core/parser/datatype/DoubleDatatype.java @@ -0,0 +1,86 @@ +package com.jantuomi.tunkki.core.parser.datatype; + +import com.jantuomi.tunkki.exception.TunkkiError; + +/** + * Created by jan on 22.6.2016. + */ +public class DoubleDatatype extends Datatype<Double> { + public DoubleDatatype(double value) { + setData(value); + } + + @Override + public Type getType() { + return Type.Double; + } + + @Override + public String toString() { + return getData().toString(); + } + + @Override + public Datatype add(Datatype other) throws TunkkiError { + switch (other.getType()) { + case Double: + return new DoubleDatatype( + getData() + ((DoubleDatatype) other).getData() + ); + case Integer: + return new DoubleDatatype( + getData() + ((IntegerDatatype) other).getData() + ); + default: + return null; + } + } + + @Override + public Datatype subtract(Datatype other) throws TunkkiError { + switch (other.getType()) { + case Double: + return new DoubleDatatype( + getData() - ((DoubleDatatype) other).getData() + ); + case Integer: + return new DoubleDatatype( + getData() - ((IntegerDatatype) other).getData() + ); + default: + return null; + } + } + + @Override + public Datatype multiply(Datatype other) throws TunkkiError { + switch (other.getType()) { + case Double: + return new DoubleDatatype( + getData() * ((DoubleDatatype) other).getData() + ); + case Integer: + return new DoubleDatatype( + getData() * ((IntegerDatatype) other).getData() + ); + default: + return null; + } + } + + @Override + public Datatype divide(Datatype other) throws TunkkiError { + switch (other.getType()) { + case Double: + return new DoubleDatatype( + getData() / ((DoubleDatatype) other).getData() + ); + case Integer: + return new DoubleDatatype( + getData() / ((IntegerDatatype) other).getData() + ); + default: + return null; + } + } +} diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/IntegerDataContainer.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/IntegerDataContainer.java deleted file mode 100644 index a76c30a..0000000 --- a/src/main/com/jantuomi/tunkki/core/parser/datatype/IntegerDataContainer.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.jantuomi.tunkki.core.parser.datatype; - -import com.jantuomi.tunkki.exception.TunkkiError; - -/** - * Created by jan on 16.6.2016. - */ -public class IntegerDataContainer extends DataContainer<Integer> { - - public IntegerDataContainer(int value) { - setData(value); - } - - @Override - public Type getType() { - return Type.Integer; - } - - @Override - public String toString() { - return Integer.toString(getData()); - } - - @Override - public DataContainer add(DataContainer other) { - switch (other.getType()) { - case Integer: - return new IntegerDataContainer( - this.getData() + ((IntegerDataContainer) other).getData() - ); - case Double: - return new DoubleDataContainer( - (double) getData() + ((DoubleDataContainer) other).getData() - ); - default: - return null; - - } - } - - @Override - public DataContainer subtract(DataContainer other) { - switch (other.getType()) { - case Integer: - return new IntegerDataContainer( - this.getData() - ((IntegerDataContainer) other).getData() - ); - case Double: - return new DoubleDataContainer( - (double) getData() - ((DoubleDataContainer) other).getData() - ); - default: - return null; - - } - } - - @Override - public DataContainer multiply(DataContainer other) throws TunkkiError { - switch (other.getType()) { - case Integer: - return new IntegerDataContainer( - this.getData() * ((IntegerDataContainer) other).getData() - ); - case Double: - return new DoubleDataContainer( - (double) getData() * ((DoubleDataContainer) other).getData() - ); - default: - return null; - - } - } - - @Override - public DataContainer divide(DataContainer other) throws TunkkiError { - switch (other.getType()) { - case Integer: - return new IntegerDataContainer( - this.getData() / ((IntegerDataContainer) other).getData() - ); - case Double: - return new DoubleDataContainer( - (double) getData() / ((DoubleDataContainer) other).getData() - ); - default: - return null; - - } - } -} diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/IntegerDatatype.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/IntegerDatatype.java new file mode 100644 index 0000000..8d91e3a --- /dev/null +++ b/src/main/com/jantuomi/tunkki/core/parser/datatype/IntegerDatatype.java @@ -0,0 +1,91 @@ +package com.jantuomi.tunkki.core.parser.datatype; + +import com.jantuomi.tunkki.exception.TunkkiError; + +/** + * Created by jan on 16.6.2016. + */ +public class IntegerDatatype extends Datatype<Integer> { + + public IntegerDatatype(int value) { + setData(value); + } + + @Override + public Type getType() { + return Type.Integer; + } + + @Override + public String toString() { + return Integer.toString(getData()); + } + + @Override + public Datatype add(Datatype other) { + switch (other.getType()) { + case Integer: + return new IntegerDatatype( + this.getData() + ((IntegerDatatype) other).getData() + ); + case Double: + return new DoubleDatatype( + (double) getData() + ((DoubleDatatype) other).getData() + ); + default: + return null; + + } + } + + @Override + public Datatype subtract(Datatype other) { + switch (other.getType()) { + case Integer: + return new IntegerDatatype( + this.getData() - ((IntegerDatatype) other).getData() + ); + case Double: + return new DoubleDatatype( + (double) getData() - ((DoubleDatatype) other).getData() + ); + default: + return null; + + } + } + + @Override + public Datatype multiply(Datatype other) throws TunkkiError { + switch (other.getType()) { + case Integer: + return new IntegerDatatype( + this.getData() * ((IntegerDatatype) other).getData() + ); + case Double: + return new DoubleDatatype( + (double) getData() * ((DoubleDatatype) other).getData() + ); + default: + return null; + + } + } + + @Override + public Datatype divide(Datatype other) throws TunkkiError { + switch (other.getType()) { + case Integer: + return new IntegerDatatype( + this.getData() / ((IntegerDatatype) other).getData() + ); + case Double: + return new DoubleDatatype( + (double) getData() / ((DoubleDatatype) other).getData() + ); + default: + return null; + + } + } +} diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/ListDataContainer.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/ListDataContainer.java deleted file mode 100644 index 1557350..0000000 --- a/src/main/com/jantuomi/tunkki/core/parser/datatype/ListDataContainer.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.jantuomi.tunkki.core.parser.datatype; - -import com.jantuomi.tunkki.exception.TunkkiError; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by jan on 27.7.2016. - */ -public class ListDataContainer extends DataContainer<List<DataContainer>> { - - public ListDataContainer(List<DataContainer> elements) { - setData(elements); - } - - @Override - public Type getType() { - return Type.List; - } - - @Override - public String toString() { - return DataContainer.toString(getData()); - } - - @Override - public DataContainer add(DataContainer other) throws TunkkiError { - switch (other.getType()) { - case List: - List<DataContainer> newList = new ArrayList<>(); - newList.addAll(getData()); - newList.addAll(((ListDataContainer) other).getData()); - return new ListDataContainer(newList); - } - return null; - } - - @Override - public DataContainer subtract(DataContainer other) throws TunkkiError { - return null; - } - - @Override - public DataContainer multiply(DataContainer other) throws TunkkiError { - return null; - } - - @Override - public DataContainer divide(DataContainer other) throws TunkkiError { - return null; - } -} diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/ListDatatype.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/ListDatatype.java new file mode 100644 index 0000000..2ff9b4a --- /dev/null +++ b/src/main/com/jantuomi/tunkki/core/parser/datatype/ListDatatype.java @@ -0,0 +1,53 @@ +package com.jantuomi.tunkki.core.parser.datatype; + +import com.jantuomi.tunkki.exception.TunkkiError; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by jan on 27.7.2016. + */ +public class ListDatatype extends Datatype<List<Datatype>> { + + public ListDatatype(List<Datatype> elements) { + setData(elements); + } + + @Override + public Type getType() { + return Type.List; + } + + @Override + public String toString() { + return Datatype.toString(getData()); + } + + @Override + public Datatype add(Datatype other) throws TunkkiError { + switch (other.getType()) { + case List: + List<Datatype> newList = new ArrayList<>(); + newList.addAll(getData()); + newList.addAll(((ListDatatype) other).getData()); + return new ListDatatype(newList); + } + return null; + } + + @Override + public Datatype subtract(Datatype other) throws TunkkiError { + return null; + } + + @Override + public Datatype multiply(Datatype other) throws TunkkiError { + return null; + } + + @Override + public Datatype divide(Datatype other) throws TunkkiError { + return null; + } +} diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/StringDataContainer.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/StringDatatype.java index caba77c..8a744a4 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/datatype/StringDataContainer.java +++ b/src/main/com/jantuomi/tunkki/core/parser/datatype/StringDatatype.java @@ -5,10 +5,10 @@ import com.jantuomi.tunkki.exception.TunkkiError; /** * Created by jan on 16.6.2016. */ -public class StringDataContainer extends DataContainer<String> { +public class StringDatatype extends Datatype<String> { - public StringDataContainer(String text) { + public StringDatatype(String text) { setData(text); } @@ -23,24 +23,24 @@ public class StringDataContainer extends DataContainer<String> { } @Override - public DataContainer<String> add(DataContainer<String> other) { - return new StringDataContainer( + public Datatype<String> add(Datatype<String> other) { + return new StringDatatype( getData() + other.getData() ); } @Override - public DataContainer<String> subtract(DataContainer<String> other) throws TunkkiError { + public Datatype<String> subtract(Datatype<String> other) throws TunkkiError { return null; } @Override - public DataContainer<String> multiply(DataContainer<String> other) throws TunkkiError { + public Datatype<String> multiply(Datatype<String> other) throws TunkkiError { return null; } @Override - public DataContainer<String> divide(DataContainer<String> other) throws TunkkiError { + public Datatype<String> divide(Datatype<String> other) throws TunkkiError { return null; } } diff --git a/src/main/com/jantuomi/tunkki/core/parser/datatype/VoidDataContainer.java b/src/main/com/jantuomi/tunkki/core/parser/datatype/VoidDatatype.java index 1924a55..4a25c64 100644 --- a/src/main/com/jantuomi/tunkki/core/parser/datatype/VoidDataContainer.java +++ b/src/main/com/jantuomi/tunkki/core/parser/datatype/VoidDatatype.java @@ -5,7 +5,7 @@ import com.jantuomi.tunkki.exception.TunkkiError; /** * Created by jan on 17.6.2016. */ -public class VoidDataContainer extends DataContainer<Integer> { +public class VoidDatatype extends Datatype<Integer> { @Override public Type getType() { @@ -18,22 +18,22 @@ public class VoidDataContainer extends DataContainer<Integer> { } @Override - public DataContainer<Integer> add(DataContainer<Integer> other) { + public Datatype<Integer> add(Datatype<Integer> other) { return null; } @Override - public DataContainer<Integer> subtract(DataContainer<Integer> other) { + public Datatype<Integer> subtract(Datatype<Integer> other) { return null; } @Override - public DataContainer<Integer> multiply(DataContainer<Integer> other) throws TunkkiError { + public Datatype<Integer> multiply(Datatype<Integer> other) throws TunkkiError { return null; } @Override - public DataContainer<Integer> divide(DataContainer<Integer> other) throws TunkkiError { + public Datatype<Integer> divide(Datatype<Integer> other) throws TunkkiError { return null; } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/Function.java b/src/main/com/jantuomi/tunkki/core/runtime/Function.java index d9178ae..7108fdc 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/Function.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/Function.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.runtime; import com.jantuomi.tunkki.core.parser.ast.BlockBodyNode; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.exception.TunkkiError; import java.util.List; @@ -30,7 +30,7 @@ public class Function { this.body = body; } - public DataContainer evaluate(List<DataContainer> params) throws TunkkiError { + public Datatype evaluate(List<Datatype> params) throws TunkkiError { State.getInstance().createScope(); if (params.size() != argumentNames.size()) { @@ -42,7 +42,7 @@ public class Function { State.getInstance().setSymbolValueToScope(argumentNames.get(i), params.get(i)); } - DataContainer returnValue = body.evaluate(); + Datatype returnValue = body.evaluate(); State.getInstance().popScope(); diff --git a/src/main/com/jantuomi/tunkki/core/runtime/Interpreter.java b/src/main/com/jantuomi/tunkki/core/runtime/Interpreter.java index 5d09862..5674dab 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/Interpreter.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/Interpreter.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.runtime; import com.jantuomi.tunkki.core.parser.ast.ASTNode; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.exception.TunkkiError; import java.util.List; @@ -22,7 +22,7 @@ public class Interpreter { public static String execute(List<ASTNode> sequence) throws TunkkiError { String output = ""; for (ASTNode node : sequence) { - DataContainer data = node.evaluate(); + Datatype data = node.evaluate(); if (data != null) { output = data.toString(); diff --git a/src/main/com/jantuomi/tunkki/core/runtime/Scope.java b/src/main/com/jantuomi/tunkki/core/runtime/Scope.java index 88e9057..2f7e3a8 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/Scope.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/Scope.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.runtime; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.exception.TunkkiError; import java.util.HashMap; @@ -13,20 +13,20 @@ import java.util.Map; public class Scope { private Scope parent = null; - private Map<String, DataContainer> variables = new HashMap<>(); + private Map<String, Datatype> variables = new HashMap<>(); private Map<String, Function> functions = new HashMap<>(); public void addVariable(String symbol) { variables.put(symbol, null); } - public void setVariableValue(String symbol, DataContainer value) { + public void setVariableValue(String symbol, Datatype value) { variables.replace(symbol, value); } - public DataContainer resolveSymbol(String symbol, List<DataContainer> params) throws TunkkiError { + public Datatype resolveSymbol(String symbol, List<Datatype> params) throws TunkkiError { if (functions.containsKey(symbol)) { - DataContainer r = functions.get(symbol).evaluate(params); + Datatype r = functions.get(symbol).evaluate(params); return r; } if (variables.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 67631bc..a7e8e99 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/State.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/State.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.runtime; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.runtime.builtins.BuiltinManager; import com.jantuomi.tunkki.exception.TunkkiError; @@ -32,16 +32,16 @@ public class State { } - private DataContainer resolveSymbol(String symbol) throws TunkkiError { + private Datatype resolveSymbol(String symbol) throws TunkkiError { return scopes.peek().resolveSymbol(symbol, Arrays.asList()); } - public DataContainer getSymbolValue(String symbol) throws TunkkiError { - DataContainer d = resolveSymbol(symbol); + public Datatype getSymbolValue(String symbol) throws TunkkiError { + Datatype d = resolveSymbol(symbol); return d; } - public DataContainer getSymbolValue(String symbol, List<DataContainer> parameters) throws TunkkiError { + public Datatype getSymbolValue(String symbol, List<Datatype> parameters) throws TunkkiError { return scopes.peek().resolveSymbol(symbol, parameters); } @@ -64,7 +64,7 @@ public class State { scopes.peek().addFunction(symbol, func); } - public void setSymbolValueToScope(String symbol, DataContainer value) { + public void setSymbolValueToScope(String symbol, Datatype value) { scopes.peek().setVariableValue(symbol, value); } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/AsIntBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/AsIntBuiltinFunction.java index f6b19a1..2c18e11 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/AsIntBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/AsIntBuiltinFunction.java @@ -1,9 +1,9 @@ package com.jantuomi.tunkki.core.runtime.builtins; -import com.jantuomi.tunkki.core.parser.datatype.BooleanDataContainer; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.IntegerDataContainer; -import com.jantuomi.tunkki.core.parser.datatype.StringDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.BooleanDatatype; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.IntegerDatatype; +import com.jantuomi.tunkki.core.parser.datatype.StringDatatype; import com.jantuomi.tunkki.exception.TunkkiError; import java.util.Arrays; @@ -25,26 +25,26 @@ public class AsIntBuiltinFunction extends BuiltinFunction { } @Override - public DataContainer evaluate(List<DataContainer> params) throws TunkkiError { + public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 1) { return null; } - DataContainer param = params.get(0); + Datatype param = params.get(0); int i = 0; - if (param instanceof StringDataContainer) { + if (param instanceof StringDatatype) { try { - i = Integer.parseInt(((StringDataContainer) param).getData()); + i = Integer.parseInt(((StringDatatype) param).getData()); } catch (NumberFormatException ex) { return null; } } - else if (param instanceof IntegerDataContainer) { - i = ((IntegerDataContainer) param).getData(); + else if (param instanceof IntegerDatatype) { + i = ((IntegerDatatype) param).getData(); } - else if (param instanceof BooleanDataContainer) { - i = ((BooleanDataContainer) param).getData() ? 1 : 0; + else if (param instanceof BooleanDatatype) { + i = ((BooleanDatatype) param).getData() ? 1 : 0; } - return new IntegerDataContainer(i); + return new IntegerDatatype(i); } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinFunction.java index af72ae0..af02f5f 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/BuiltinFunction.java @@ -1,6 +1,6 @@ package com.jantuomi.tunkki.core.runtime.builtins; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; import com.jantuomi.tunkki.core.runtime.Function; import com.jantuomi.tunkki.exception.TunkkiError; @@ -16,7 +16,7 @@ abstract public class BuiltinFunction extends Function{ } @Override - abstract public DataContainer evaluate(List<DataContainer> params) throws TunkkiError; + 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/ConcatBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/ConcatBuiltinFunction.java index c967df4..8e3ca68 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/ConcatBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/ConcatBuiltinFunction.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.runtime.builtins; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.StringDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.StringDatatype; import com.jantuomi.tunkki.exception.TunkkiError; import java.util.Arrays; @@ -23,13 +23,13 @@ public class ConcatBuiltinFunction extends BuiltinFunction { } @Override - public DataContainer evaluate(List<DataContainer> params) throws TunkkiError { + public Datatype evaluate(List<Datatype> params) throws TunkkiError { StringBuilder sb = new StringBuilder(); - for (DataContainer d : params) { + for (Datatype d : params) { sb.append(d.getData()); } - return new StringDataContainer( + return new StringDatatype( sb.toString() ); } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/ContainsBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/ContainsBuiltinFunction.java index 4c531f7..2be4780 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/ContainsBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/ContainsBuiltinFunction.java @@ -1,8 +1,8 @@ package com.jantuomi.tunkki.core.runtime.builtins; -import com.jantuomi.tunkki.core.parser.datatype.BooleanDataContainer; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.ListDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.BooleanDatatype; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.ListDatatype; import com.jantuomi.tunkki.exception.TunkkiError; import java.util.Arrays; @@ -17,24 +17,24 @@ public class ContainsBuiltinFunction extends BuiltinFunction { } @Override - public DataContainer evaluate(List<DataContainer> params) throws TunkkiError { + public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 2) { - throw new TunkkiError(TunkkiError.ExceptionType.FunctionArgumentError, -1, getName(), DataContainer.toString(params)); + throw new TunkkiError(TunkkiError.ExceptionType.FunctionArgumentError, -1, getName(), Datatype.toString(params)); } - if (params.get(0).getType() != DataContainer.Type.List) { - throw new TunkkiError(TunkkiError.ExceptionType.FunctionArgumentError, -1, getName(), DataContainer.toString(params)); + if (params.get(0).getType() != Datatype.Type.List) { + throw new TunkkiError(TunkkiError.ExceptionType.FunctionArgumentError, -1, getName(), Datatype.toString(params)); } - ListDataContainer list = (ListDataContainer) params.get(0); - DataContainer comp = params.get(1); + ListDatatype list = (ListDatatype) params.get(0); + Datatype comp = params.get(1); - for (DataContainer elem : list.getData()) { + for (Datatype elem : list.getData()) { if (elem.equals(comp)) { - return new BooleanDataContainer(true); + return new BooleanDatatype(true); } } - return new BooleanDataContainer(false); + return new BooleanDatatype(false); } @Override diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/GetBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/GetBuiltinFunction.java index 59698bc..117ada2 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/GetBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/GetBuiltinFunction.java @@ -1,8 +1,8 @@ package com.jantuomi.tunkki.core.runtime.builtins; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.IntegerDataContainer; -import com.jantuomi.tunkki.core.parser.datatype.ListDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.IntegerDatatype; +import com.jantuomi.tunkki.core.parser.datatype.ListDatatype; import com.jantuomi.tunkki.exception.TunkkiError; import java.util.Arrays; @@ -17,21 +17,21 @@ public class GetBuiltinFunction extends BuiltinFunction { } @Override - public DataContainer evaluate(List<DataContainer> params) throws TunkkiError { + public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() != 2) { throw new TunkkiError(TunkkiError.ExceptionType.FunctionArgumentError, -1, getName(), params.toString()); } - if (params.get(0).getType() != DataContainer.Type.List) { - throw new TunkkiError(TunkkiError.ExceptionType.FunctionArgumentError, -1, getName(), DataContainer.toString(params)); + if (params.get(0).getType() != Datatype.Type.List) { + throw new TunkkiError(TunkkiError.ExceptionType.FunctionArgumentError, -1, getName(), Datatype.toString(params)); } - if (params.get(1).getType() != DataContainer.Type.Integer) { - throw new TunkkiError(TunkkiError.ExceptionType.FunctionArgumentError, -1, getName(), DataContainer.toString(params)); + if (params.get(1).getType() != Datatype.Type.Integer) { + throw new TunkkiError(TunkkiError.ExceptionType.FunctionArgumentError, -1, getName(), Datatype.toString(params)); } - ListDataContainer list = (ListDataContainer) params.get(0); - IntegerDataContainer index = (IntegerDataContainer) params.get(1); + ListDatatype list = (ListDatatype) params.get(0); + IntegerDatatype index = (IntegerDatatype) params.get(1); try { return list.getData().get(index.getData()); diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/IncludeBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/IncludeBuiltinFunction.java index 5f63996..e6288ed 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/IncludeBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/IncludeBuiltinFunction.java @@ -3,9 +3,9 @@ package com.jantuomi.tunkki.core.runtime.builtins; import com.jantuomi.tunkki.Main; import com.jantuomi.tunkki.core.CommandLineArgumentContainer; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.StringDataContainer; -import com.jantuomi.tunkki.core.parser.datatype.VoidDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.StringDatatype; +import com.jantuomi.tunkki.core.parser.datatype.VoidDatatype; import com.jantuomi.tunkki.exception.ExceptionManager; import com.jantuomi.tunkki.exception.TunkkiError; @@ -24,10 +24,10 @@ public class IncludeBuiltinFunction extends BuiltinFunction { } @Override - public DataContainer evaluate(List<DataContainer> params) throws TunkkiError { + public Datatype evaluate(List<Datatype> params) throws TunkkiError { String filename; - if (params.size() == 1 && params.get(0).getType() == DataContainer.Type.String) { - filename = ((StringDataContainer) params.get(0)).getData(); + if (params.size() == 1 && params.get(0).getType() == Datatype.Type.String) { + filename = ((StringDatatype) params.get(0)).getData(); } else { ExceptionManager.raise(TunkkiError.ExceptionType.GeneralError, -1, "Include argument must be a valid file name string."); return null; @@ -48,7 +48,7 @@ public class IncludeBuiltinFunction extends BuiltinFunction { } Main.run(contents); - return new VoidDataContainer(); + return new VoidDatatype(); } @Override diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/InputBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/InputBuiltinFunction.java index 13a0f53..3c10566 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/InputBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/InputBuiltinFunction.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.runtime.builtins; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.StringDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.StringDatatype; import com.jantuomi.tunkki.exception.TunkkiError; import java.util.Arrays; @@ -24,13 +24,13 @@ public class InputBuiltinFunction extends BuiltinFunction { } @Override - public DataContainer evaluate(List<DataContainer> params) throws TunkkiError { + public Datatype evaluate(List<Datatype> params) throws TunkkiError { if (params.size() > 0) { - DataContainer param = params.get(0); + Datatype param = params.get(0); System.out.print(param.getData().toString()); } Scanner in = new Scanner(System.in); String userInput = in.nextLine(); - return new StringDataContainer(userInput); + return new StringDatatype(userInput); } } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/ListBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/ListBuiltinFunction.java index e09f809..a524d60 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/ListBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/ListBuiltinFunction.java @@ -1,10 +1,9 @@ package com.jantuomi.tunkki.core.runtime.builtins; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.ListDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.ListDatatype; import com.jantuomi.tunkki.exception.TunkkiError; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -17,8 +16,8 @@ public class ListBuiltinFunction extends BuiltinFunction { } @Override - public DataContainer evaluate(List<DataContainer> params) throws TunkkiError { - ListDataContainer data = new ListDataContainer(params); + public Datatype evaluate(List<Datatype> params) throws TunkkiError { + ListDatatype data = new ListDatatype(params); return data; } diff --git a/src/main/com/jantuomi/tunkki/core/runtime/builtins/OutputBuiltinFunction.java b/src/main/com/jantuomi/tunkki/core/runtime/builtins/OutputBuiltinFunction.java index 5816ce7..ea86d48 100644 --- a/src/main/com/jantuomi/tunkki/core/runtime/builtins/OutputBuiltinFunction.java +++ b/src/main/com/jantuomi/tunkki/core/runtime/builtins/OutputBuiltinFunction.java @@ -1,7 +1,7 @@ package com.jantuomi.tunkki.core.runtime.builtins; -import com.jantuomi.tunkki.core.parser.datatype.DataContainer; -import com.jantuomi.tunkki.core.parser.datatype.VoidDataContainer; +import com.jantuomi.tunkki.core.parser.datatype.Datatype; +import com.jantuomi.tunkki.core.parser.datatype.VoidDatatype; import com.jantuomi.tunkki.exception.TunkkiError; import java.util.Arrays; @@ -23,9 +23,9 @@ public class OutputBuiltinFunction extends BuiltinFunction { } @Override - public DataContainer evaluate(List<DataContainer> params) throws TunkkiError { - DataContainer param = params.get(0); + public Datatype evaluate(List<Datatype> params) throws TunkkiError { + Datatype param = params.get(0); System.out.println(param.getData().toString()); - return new VoidDataContainer(); + return new VoidDatatype(); } } |
