From 8f84c00978dc05007873a9fe1de6a18511dc3cf8 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 28 Jun 2016 21:09:43 +0300 Subject: Restructure project for use with maven --- main/core/parser/ast/ASTNode.java | 40 --------------- main/core/parser/ast/AdditionNode.java | 39 -------------- main/core/parser/ast/AssignmentNode.java | 34 ------------- main/core/parser/ast/BinaryOperatorNode.java | 17 ------- main/core/parser/ast/BlockBodyNode.java | 26 ---------- main/core/parser/ast/BooleanLiteralNode.java | 30 ----------- main/core/parser/ast/BranchNode.java | 42 --------------- main/core/parser/ast/DivisionNode.java | 39 -------------- main/core/parser/ast/DoubleLiteralNode.java | 30 ----------- main/core/parser/ast/EmptyNode.java | 27 ---------- main/core/parser/ast/FunctionDefineNode.java | 73 --------------------------- main/core/parser/ast/IntegerLiteralNode.java | 30 ----------- main/core/parser/ast/MultiplicationNode.java | 39 -------------- main/core/parser/ast/NegationNode.java | 34 ------------- main/core/parser/ast/ParameterListNode.java | 38 -------------- main/core/parser/ast/StringLiteralNode.java | 27 ---------- main/core/parser/ast/SubtractionNode.java | 38 -------------- main/core/parser/ast/SymbolNode.java | 70 ------------------------- main/core/parser/ast/UnaryOperatorNode.java | 31 ------------ main/core/parser/ast/VarargOperatorNode.java | 26 ---------- main/core/parser/ast/VariableDeclareNode.java | 32 ------------ 21 files changed, 762 deletions(-) delete mode 100644 main/core/parser/ast/ASTNode.java delete mode 100644 main/core/parser/ast/AdditionNode.java delete mode 100644 main/core/parser/ast/AssignmentNode.java delete mode 100644 main/core/parser/ast/BinaryOperatorNode.java delete mode 100644 main/core/parser/ast/BlockBodyNode.java delete mode 100644 main/core/parser/ast/BooleanLiteralNode.java delete mode 100644 main/core/parser/ast/BranchNode.java delete mode 100644 main/core/parser/ast/DivisionNode.java delete mode 100644 main/core/parser/ast/DoubleLiteralNode.java delete mode 100644 main/core/parser/ast/EmptyNode.java delete mode 100644 main/core/parser/ast/FunctionDefineNode.java delete mode 100644 main/core/parser/ast/IntegerLiteralNode.java delete mode 100644 main/core/parser/ast/MultiplicationNode.java delete mode 100644 main/core/parser/ast/NegationNode.java delete mode 100644 main/core/parser/ast/ParameterListNode.java delete mode 100644 main/core/parser/ast/StringLiteralNode.java delete mode 100644 main/core/parser/ast/SubtractionNode.java delete mode 100644 main/core/parser/ast/SymbolNode.java delete mode 100644 main/core/parser/ast/UnaryOperatorNode.java delete mode 100644 main/core/parser/ast/VarargOperatorNode.java delete mode 100644 main/core/parser/ast/VariableDeclareNode.java (limited to 'main/core/parser/ast') diff --git a/main/core/parser/ast/ASTNode.java b/main/core/parser/ast/ASTNode.java deleted file mode 100644 index 311314f..0000000 --- a/main/core/parser/ast/ASTNode.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.InterpreterException; - -import java.util.List; - -/** - * Created by jan on 11.6.2016. - */ -abstract public class ASTNode { - - public abstract DataContainer evaluate() throws InterpreterException; - - protected Token source; - - public ASTNode(Token token) { - this.source = token; - } - - public Token.Type tokenType() { - return source.getTokenType(); - } - - abstract List getChildren(); - - public void print(int indent) { - for (int i = 0; i < indent; i++) { - System.out.print("\t"); - } - - System.out.println(source.toString()); - for (ASTNode node : getChildren()) { - if (node != null) { - node.print(indent + 1); - } - } - } -} diff --git a/main/core/parser/ast/AdditionNode.java b/main/core/parser/ast/AdditionNode.java deleted file mode 100644 index 00db230..0000000 --- a/main/core/parser/ast/AdditionNode.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.ExceptionManager; -import com.jantuomi.interpreter.main.exception.InterpreterException; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 16.6.2016. - */ -public class AdditionNode extends BinaryOperatorNode { - - public AdditionNode(Token token, ASTNode lhs, ASTNode rhs) { - super(token, lhs, rhs); - } - - @Override - public DataContainer evaluate() throws InterpreterException { - DataContainer operand1 = lhs.evaluate(); - DataContainer operand2 = rhs.evaluate(); - - DataContainer result = operand1.add(operand2); - if (result != null) { - return result; - } else { - ExceptionManager.raise(InterpreterException.ExceptionType.TypeError, source.getLine(), - operand1.getType().toString(), operand2.getType().toString()); - return null; - } - - } - @Override - List getChildren() { - return Arrays.asList(lhs, rhs); - } -} diff --git a/main/core/parser/ast/AssignmentNode.java b/main/core/parser/ast/AssignmentNode.java deleted file mode 100644 index f2e7b8d..0000000 --- a/main/core/parser/ast/AssignmentNode.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.runtime.State; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.InterpreterException; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 21.6.2016. - */ -public class AssignmentNode extends BinaryOperatorNode { - public AssignmentNode(Token token, SymbolNode lhs, ASTNode rhs) { - super(token, lhs, rhs); - } - - @Override - public DataContainer evaluate() throws InterpreterException { - SymbolNode symbol = (SymbolNode) lhs; - DataContainer rValue = rhs.evaluate(); - State.getInstance().setSymbolValueToScope( - symbol.getName(), - rValue - ); - return rValue; - } - - @Override - List getChildren() { - return Arrays.asList(lhs, rhs); - } -} diff --git a/main/core/parser/ast/BinaryOperatorNode.java b/main/core/parser/ast/BinaryOperatorNode.java deleted file mode 100644 index 9ec21a4..0000000 --- a/main/core/parser/ast/BinaryOperatorNode.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -/** - * Created by jan on 16.6.2016. - */ -abstract public class BinaryOperatorNode extends ASTNode { - protected ASTNode lhs; - protected ASTNode rhs; - - public BinaryOperatorNode(Token token, ASTNode lhs, ASTNode rhs) { - super(token); - this.lhs = lhs; - this.rhs = rhs; - } -} diff --git a/main/core/parser/ast/BlockBodyNode.java b/main/core/parser/ast/BlockBodyNode.java deleted file mode 100644 index 671f847..0000000 --- a/main/core/parser/ast/BlockBodyNode.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.VoidDataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.InterpreterException; - -/** - * Created by jan on 17.6.2016. - */ -public class BlockBodyNode extends VarargOperatorNode { - public BlockBodyNode(Token token) { - super(token); - } - - @Override - public DataContainer evaluate() throws InterpreterException { - DataContainer returnValue = new VoidDataContainer(); - - for (ASTNode node : args) { - returnValue = node.evaluate(); - } - - return returnValue; - } -} diff --git a/main/core/parser/ast/BooleanLiteralNode.java b/main/core/parser/ast/BooleanLiteralNode.java deleted file mode 100644 index 0d9c505..0000000 --- a/main/core/parser/ast/BooleanLiteralNode.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.BooleanDataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 16.6.2016. - */ -public class BooleanLiteralNode extends ASTNode { - private BooleanDataContainer value; - - public BooleanLiteralNode(Token token) { - super(token); - value = new BooleanDataContainer(Boolean.parseBoolean(token.getText())); - } - - @Override - public DataContainer evaluate() { - return value; - } - - @Override - List getChildren() { - return Arrays.asList(); - } -} diff --git a/main/core/parser/ast/BranchNode.java b/main/core/parser/ast/BranchNode.java deleted file mode 100644 index d6fb4cf..0000000 --- a/main/core/parser/ast/BranchNode.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.BooleanDataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.InterpreterException; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 17.6.2016. - */ -public class BranchNode extends ASTNode { - - private ASTNode expression; - private BlockBodyNode branch; - - public BranchNode(Token token, ASTNode expression, BlockBodyNode branch) { - super(token); - this.expression = expression; - this.branch = branch; - } - - @Override - public DataContainer evaluate() throws InterpreterException { - DataContainer ev = expression.evaluate(); - boolean returnValue = false; - if (ev instanceof BooleanDataContainer) { - returnValue = ((BooleanDataContainer) ev).getData(); - if (returnValue) { - branch.evaluate(); - } - } - return new BooleanDataContainer(returnValue); - } - - @Override - List getChildren() { - return Arrays.asList(expression, branch); - } -} diff --git a/main/core/parser/ast/DivisionNode.java b/main/core/parser/ast/DivisionNode.java deleted file mode 100644 index 5bebf7b..0000000 --- a/main/core/parser/ast/DivisionNode.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.ExceptionManager; -import com.jantuomi.interpreter.main.exception.InterpreterException; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 16.6.2016. - */ -public class DivisionNode extends BinaryOperatorNode { - - public DivisionNode(Token token, ASTNode lhs, ASTNode rhs) { - super(token, lhs, rhs); - } - - @Override - public DataContainer evaluate() throws InterpreterException { - DataContainer operand1 = lhs.evaluate(); - DataContainer operand2 = rhs.evaluate(); - - DataContainer result = operand1.divide(operand2); - if (result != null) { - return result; - } else { - ExceptionManager.raise(InterpreterException.ExceptionType.TypeError, source.getLine(), - operand1.getType().toString(), operand2.getType().toString()); - return null; - } - - } - @Override - List getChildren() { - return Arrays.asList(lhs, rhs); - } -} diff --git a/main/core/parser/ast/DoubleLiteralNode.java b/main/core/parser/ast/DoubleLiteralNode.java deleted file mode 100644 index a90c4af..0000000 --- a/main/core/parser/ast/DoubleLiteralNode.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.DoubleDataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 16.6.2016. - */ -public class DoubleLiteralNode extends ASTNode { - private DoubleDataContainer value; - - public DoubleLiteralNode(Token token) { - super(token); - value = new DoubleDataContainer(Double.parseDouble(token.getText())); - } - - @Override - public DataContainer evaluate() { - return value; - } - - @Override - List getChildren() { - return Arrays.asList(); - } -} diff --git a/main/core/parser/ast/EmptyNode.java b/main/core/parser/ast/EmptyNode.java deleted file mode 100644 index 44bfcc9..0000000 --- a/main/core/parser/ast/EmptyNode.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.VoidDataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 17.6.2016. - */ -public class EmptyNode extends ASTNode { - public EmptyNode(Token source) { - super(source); - } - - @Override - public DataContainer evaluate() { - return new VoidDataContainer(); - } - - @Override - List getChildren() { - return Arrays.asList(); - } -} diff --git a/main/core/parser/ast/FunctionDefineNode.java b/main/core/parser/ast/FunctionDefineNode.java deleted file mode 100644 index 39a775a..0000000 --- a/main/core/parser/ast/FunctionDefineNode.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.StringDataContainer; -import com.jantuomi.interpreter.main.core.runtime.Function; -import com.jantuomi.interpreter.main.core.runtime.State; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.ArrayList; -import java.util.List; - -/** - * Created by jan on 17.6.2016. - */ -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) { - super(token); - } - - @Override - public DataContainer evaluate() { - List argumentNames = new ArrayList<>(); - for (ASTNode arg : args) { - SymbolNode argSym = (SymbolNode) arg; - argumentNames.add(argSym.getName()); - } - Function function = new Function(argumentNames, (BlockBodyNode) body); - function.setName(name); - State.getInstance().addFunctionToScope(name, function); - - return new StringDataContainer("function " + name); - } - - @Override - public void print(int indent) { - - for (int i = 0; i < indent; i++) { - System.out.print("\t"); - } - - System.out.println(String.format("Function %s", name)); - - for (int i = 0; i < indent + 1; i++) { - System.out.print("\t"); - } - - System.out.println(String.format("Arguments: ")); - - for (ASTNode node : args) { - node.print(indent + 2); - } - - for (int i = 0; i < indent + 1; i++) { - System.out.print("\t"); - } - - System.out.println(String.format("Body statements: ")); - body.print(indent + 2); - } -} diff --git a/main/core/parser/ast/IntegerLiteralNode.java b/main/core/parser/ast/IntegerLiteralNode.java deleted file mode 100644 index 68b57d7..0000000 --- a/main/core/parser/ast/IntegerLiteralNode.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.IntegerDataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 16.6.2016. - */ -public class IntegerLiteralNode extends ASTNode { - private IntegerDataContainer value; - - public IntegerLiteralNode(Token token) { - super(token); - value = new IntegerDataContainer(Integer.parseInt(token.getText())); - } - - @Override - public DataContainer evaluate() { - return value; - } - - @Override - List getChildren() { - return Arrays.asList(); - } -} diff --git a/main/core/parser/ast/MultiplicationNode.java b/main/core/parser/ast/MultiplicationNode.java deleted file mode 100644 index 5d86cf3..0000000 --- a/main/core/parser/ast/MultiplicationNode.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.ExceptionManager; -import com.jantuomi.interpreter.main.exception.InterpreterException; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 16.6.2016. - */ -public class MultiplicationNode extends BinaryOperatorNode { - - public MultiplicationNode(Token token, ASTNode lhs, ASTNode rhs) { - super(token, lhs, rhs); - } - - @Override - public DataContainer evaluate() throws InterpreterException { - DataContainer operand1 = lhs.evaluate(); - DataContainer operand2 = rhs.evaluate(); - - DataContainer result = operand1.multiply(operand2); - if (result != null) { - return result; - } else { - ExceptionManager.raise(InterpreterException.ExceptionType.TypeError, source.getLine(), - operand1.getType().toString(), operand2.getType().toString()); - return null; - } - - } - @Override - List getChildren() { - return Arrays.asList(lhs, rhs); - } -} diff --git a/main/core/parser/ast/NegationNode.java b/main/core/parser/ast/NegationNode.java deleted file mode 100644 index 1d381cb..0000000 --- a/main/core/parser/ast/NegationNode.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.BooleanDataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.IntegerDataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.ExceptionManager; -import com.jantuomi.interpreter.main.exception.InterpreterException; - -/** - * Created by jan on 21.6.2016. - */ -public class NegationNode extends UnaryOperatorNode { - public NegationNode(Token token, ASTNode operand) { - super(token, operand); - } - - @Override - public DataContainer evaluate() throws InterpreterException { - DataContainer d = getOperand().evaluate(); - - if (d instanceof BooleanDataContainer) { - return new BooleanDataContainer(!((BooleanDataContainer) d).getData()); - } - else if (d instanceof IntegerDataContainer) { - return new BooleanDataContainer( - ((IntegerDataContainer) d).getData() != 0 - ); - } - ExceptionManager.raise(InterpreterException.ExceptionType.TypeError, source.getLine(), "not", d.toString()); - return null; - - } -} diff --git a/main/core/parser/ast/ParameterListNode.java b/main/core/parser/ast/ParameterListNode.java deleted file mode 100644 index 50f919a..0000000 --- a/main/core/parser/ast/ParameterListNode.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.ArrayList; -import java.util.List; - -/** - * Created by jan on 19.6.2016. - */ -public class ParameterListNode extends ASTNode { - - private List parameters = new ArrayList<>(); - - public void addParameter(ASTNode param) { - parameters.add(param); - } - - public List getParameters() { - return parameters; - } - - public ParameterListNode(Token token) { - super(token); - } - - @Override - public DataContainer evaluate() { - // TODO use State to evaluate function - return null; - } - - @Override - List getChildren() { - return parameters; - } -} diff --git a/main/core/parser/ast/StringLiteralNode.java b/main/core/parser/ast/StringLiteralNode.java deleted file mode 100644 index 1ad5e2b..0000000 --- a/main/core/parser/ast/StringLiteralNode.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.StringDataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 21.6.2016. - */ -public class StringLiteralNode extends ASTNode { - @Override - public DataContainer evaluate() { - return new StringDataContainer(source.getText()); - } - - public StringLiteralNode(Token source) { - super(source); - } - - @Override - List getChildren() { - return Arrays.asList(); - } -} diff --git a/main/core/parser/ast/SubtractionNode.java b/main/core/parser/ast/SubtractionNode.java deleted file mode 100644 index 6b05073..0000000 --- a/main/core/parser/ast/SubtractionNode.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.ExceptionManager; -import com.jantuomi.interpreter.main.exception.InterpreterException; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 16.6.2016. - */ -public class SubtractionNode extends BinaryOperatorNode { - public SubtractionNode(Token token, ASTNode lhs, ASTNode rhs) { - super(token, lhs, rhs); - } - - @Override - public DataContainer evaluate() throws InterpreterException { - DataContainer operand1 = lhs.evaluate(); - DataContainer operand2 = rhs.evaluate(); - - DataContainer result = operand1.subtract(operand2); - if (result != null) { - return result; - } else { - ExceptionManager.raise(InterpreterException.ExceptionType.TypeError, source.getLine(), - operand1.getType().toString(), operand2.getType().toString()); - return null; - } - - } - @Override - List getChildren() { - return Arrays.asList(lhs, rhs); - } -} diff --git a/main/core/parser/ast/SymbolNode.java b/main/core/parser/ast/SymbolNode.java deleted file mode 100644 index 5a4346a..0000000 --- a/main/core/parser/ast/SymbolNode.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.runtime.State; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; -import com.jantuomi.interpreter.main.exception.ExceptionManager; -import com.jantuomi.interpreter.main.exception.InterpreterException; -import com.sun.deploy.util.StringUtils; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Created by jan on 17.6.2016. - */ -public class SymbolNode extends ASTNode { - - public ParameterListNode getParameterListNode() { - return parameterListNode; - } - - public void setParameterListNode(ParameterListNode parameterListNode) { - this.parameterListNode = parameterListNode; - } - - private ParameterListNode parameterListNode; - - public void setName(String name) { - this.name = name; - } - - public String getName() { - return name; - } - - private String name; - - public SymbolNode(Token token) { - super(token); - } - - @Override - public DataContainer evaluate() throws InterpreterException { - List paramValues = new ArrayList<>(); - if (parameterListNode != null) { - for (ASTNode param : parameterListNode.getChildren()) { - paramValues.add(param.evaluate()); - } - } - DataContainer returnValue = State.getInstance().getSymbolValue(name, paramValues); - if (returnValue != null) { - return returnValue; - } else { - ExceptionManager.raise(InterpreterException.ExceptionType.UndeclaredSymbolError, source.getLine(), name, - StringUtils.join(paramValues.stream().map(dataContainer -> dataContainer.toString()).collect(Collectors.toList()), ",")); - return null; - } - } - - @Override - List getChildren() { - if (parameterListNode == null) { - return Arrays.asList(); - } else { - return Arrays.asList(parameterListNode); - } - } -} diff --git a/main/core/parser/ast/UnaryOperatorNode.java b/main/core/parser/ast/UnaryOperatorNode.java deleted file mode 100644 index 283f07d..0000000 --- a/main/core/parser/ast/UnaryOperatorNode.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 21.6.2016. - */ -abstract public class UnaryOperatorNode extends ASTNode { - public UnaryOperatorNode(Token token, ASTNode operand) { - super(token); - this.operand = operand; - } - - public ASTNode getOperand() { - return operand; - } - - public void setOperand(ASTNode operand) { - this.operand = operand; - } - - private ASTNode operand; - - @Override - List getChildren() { - return Arrays.asList(operand); - } -} diff --git a/main/core/parser/ast/VarargOperatorNode.java b/main/core/parser/ast/VarargOperatorNode.java deleted file mode 100644 index 96a7320..0000000 --- a/main/core/parser/ast/VarargOperatorNode.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.List; - -/** - * Created by jan on 17.6.2016. - */ -public abstract class VarargOperatorNode extends ASTNode { - - protected List args; - - public VarargOperatorNode(Token token) { - super(token); - } - - @Override - public List getChildren() { - return args; - } - - public void setArgs(List args) { - this.args = args; - } -} diff --git a/main/core/parser/ast/VariableDeclareNode.java b/main/core/parser/ast/VariableDeclareNode.java deleted file mode 100644 index 185edda..0000000 --- a/main/core/parser/ast/VariableDeclareNode.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.jantuomi.interpreter.main.core.parser.ast; - -import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer; -import com.jantuomi.interpreter.main.core.parser.datatype.StringDataContainer; -import com.jantuomi.interpreter.main.core.runtime.State; -import com.jantuomi.interpreter.main.core.tokenizer.token.Token; - -import java.util.Arrays; -import java.util.List; - -/** - * Created by jan on 20.6.2016. - */ -public class VariableDeclareNode extends ASTNode { - private SymbolNode variable; - - public VariableDeclareNode(Token source, SymbolNode variable) { - super(source); - this.variable = variable; - } - - @Override - public DataContainer evaluate() { - State.getInstance().addSymbolToScope(variable.getName()); - return new StringDataContainer(variable.getName()); - } - - @Override - List getChildren() { - return Arrays.asList(); - } -} -- cgit v1.3