aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2016-06-28 21:09:43 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2016-07-26 19:47:12 +0300
commit8f84c00978dc05007873a9fe1de6a18511dc3cf8 (patch)
tree39fead540e22addee40b95b68db08cbea620745b
parent48dcd488054024d98fe1e659a4029630130d1d35 (diff)
Restructure project for use with maven
-rw-r--r--META-INF/MANIFEST.MF3
-rw-r--r--main/core/tokenizer/token/types/AssignmentToken.java55
-rw-r--r--main/core/tokenizer/token/types/BooleanLiteralToken.java32
-rw-r--r--main/core/tokenizer/token/types/ClosedParenToken.java31
-rw-r--r--main/core/tokenizer/token/types/CommentToken.java32
-rw-r--r--main/core/tokenizer/token/types/DoubleLiteralToken.java32
-rw-r--r--main/core/tokenizer/token/types/EndFunctionDefineToken.java31
-rw-r--r--main/core/tokenizer/token/types/IntegerLiteralToken.java32
-rw-r--r--main/core/tokenizer/token/types/NegationToken.java37
-rw-r--r--main/core/tokenizer/token/types/StringLiteralToken.java33
-rw-r--r--main/core/tokenizer/token/types/SymbolToken.java53
-rw-r--r--main/core/tokenizer/token/types/VariableDeclareToken.java42
-rw-r--r--main/utils/Counter.java42
-rw-r--r--pom.xml84
-rw-r--r--src/main/com/jantuomi/borker/Main.java (renamed from main/Main.java)24
-rw-r--r--src/main/com/jantuomi/borker/core/CommandLineArgumentContainer.java (renamed from main/core/CommandLineArgumentContainer.java)3
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ASTGenerator.java (renamed from main/core/parser/ASTGenerator.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/parser/Parser.java (renamed from main/core/parser/Parser.java)12
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/ASTNode.java (renamed from main/core/parser/ast/ASTNode.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/AdditionNode.java (renamed from main/core/parser/ast/AdditionNode.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/AssignmentNode.java (renamed from main/core/parser/ast/AssignmentNode.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/BinaryOperatorNode.java (renamed from main/core/parser/ast/BinaryOperatorNode.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/BlockBodyNode.java (renamed from main/core/parser/ast/BlockBodyNode.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/BooleanLiteralNode.java (renamed from main/core/parser/ast/BooleanLiteralNode.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/BranchNode.java (renamed from main/core/parser/ast/BranchNode.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/DivisionNode.java (renamed from main/core/parser/ast/DivisionNode.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/DoubleLiteralNode.java (renamed from main/core/parser/ast/DoubleLiteralNode.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/EmptyNode.java (renamed from main/core/parser/ast/EmptyNode.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/FunctionDefineNode.java (renamed from main/core/parser/ast/FunctionDefineNode.java)12
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/IntegerLiteralNode.java (renamed from main/core/parser/ast/IntegerLiteralNode.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/MultiplicationNode.java (renamed from main/core/parser/ast/MultiplicationNode.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/NegationNode.java (renamed from main/core/parser/ast/NegationNode.java)14
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/ParameterListNode.java (renamed from main/core/parser/ast/ParameterListNode.java)6
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/StringLiteralNode.java (renamed from main/core/parser/ast/StringLiteralNode.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/SubtractionNode.java (renamed from main/core/parser/ast/SubtractionNode.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/SymbolNode.java (renamed from main/core/parser/ast/SymbolNode.java)14
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/UnaryOperatorNode.java (renamed from main/core/parser/ast/UnaryOperatorNode.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/VarargOperatorNode.java (renamed from main/core/parser/ast/VarargOperatorNode.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/parser/ast/VariableDeclareNode.java (renamed from main/core/parser/ast/VariableDeclareNode.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/parser/datatype/BooleanDataContainer.java (renamed from main/core/parser/datatype/BooleanDataContainer.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/parser/datatype/DataContainer.java (renamed from main/core/parser/datatype/DataContainer.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/parser/datatype/DoubleDataContainer.java (renamed from main/core/parser/datatype/DoubleDataContainer.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/parser/datatype/IntegerDataContainer.java (renamed from main/core/parser/datatype/IntegerDataContainer.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/parser/datatype/StringDataContainer.java (renamed from main/core/parser/datatype/StringDataContainer.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/parser/datatype/VoidDataContainer.java (renamed from main/core/parser/datatype/VoidDataContainer.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/runtime/Function.java (renamed from main/core/runtime/Function.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/runtime/Interpreter.java (renamed from main/core/runtime/Interpreter.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/runtime/Scope.java (renamed from main/core/runtime/Scope.java)6
-rw-r--r--src/main/com/jantuomi/borker/core/runtime/State.java (renamed from main/core/runtime/State.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/runtime/builtins/AsIntBuiltinFunction.java (renamed from main/core/runtime/builtins/AsIntBuiltinFunction.java)14
-rw-r--r--src/main/com/jantuomi/borker/core/runtime/builtins/BuiltinManager.java (renamed from main/core/runtime/builtins/BuiltinManager.java)4
-rw-r--r--src/main/com/jantuomi/borker/core/runtime/builtins/ConcatBuiltinFunction.java (renamed from main/core/runtime/builtins/ConcatBuiltinFunction.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/runtime/builtins/InBuiltinFunction.java (renamed from main/core/runtime/builtins/InBuiltinFunction.java)10
-rw-r--r--src/main/com/jantuomi/borker/core/runtime/builtins/OutBuiltinFunction.java (renamed from main/core/runtime/builtins/OutBuiltinFunction.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/Tokenizer.java (renamed from main/core/tokenizer/Tokenizer.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/ArgumentInfo.java (renamed from main/core/tokenizer/token/ArgumentInfo.java)2
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/Token.java (renamed from main/core/tokenizer/token/Token.java)118
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/TokenFactory.java71
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/AdditionToken.java (renamed from main/core/tokenizer/token/types/AdditionToken.java)9
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/AssignmentToken.java36
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/BinaryOperatorToken.java (renamed from main/core/tokenizer/token/types/BinaryOperatorToken.java)13
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/BlockBodyToken.java (renamed from main/core/tokenizer/token/types/BlockBodyToken.java)15
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/BooleanLiteralToken.java18
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/BranchToken.java (renamed from main/core/tokenizer/token/types/BranchToken.java)19
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/ClosedParenToken.java18
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/CommentToken.java18
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/DivisionToken.java (renamed from main/core/tokenizer/token/types/DivisionToken.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/DoubleLiteralToken.java18
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/EndBlockToken.java17
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/FunctionDefineToken.java (renamed from main/core/tokenizer/token/types/FunctionDefineToken.java)15
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/IntegerLiteralToken.java18
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/MultiplicationToken.java (renamed from main/core/tokenizer/token/types/MultiplicationToken.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/NegationToken.java20
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/OpenParenToken.java (renamed from main/core/tokenizer/token/types/OpenParenToken.java)15
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/OptionalArgumentToken.java48
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/StringLiteralToken.java19
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/SubtractionToken.java (renamed from main/core/tokenizer/token/types/SubtractionToken.java)8
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/SymbolToken.java31
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/TerminalToken.java39
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/UnaryOperatorToken.java39
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/VarargOperatorToken.java (renamed from main/core/tokenizer/token/types/VarargOperatorToken.java)16
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/VariableDeclareToken.java25
-rw-r--r--src/main/com/jantuomi/borker/core/tokenizer/token/types/WhitespaceToken.java (renamed from main/core/tokenizer/token/types/WhitespaceToken.java)12
-rw-r--r--src/main/com/jantuomi/borker/exception/ExceptionManager.java (renamed from main/exception/ExceptionManager.java)2
-rw-r--r--src/main/com/jantuomi/borker/exception/InterpreterException.java (renamed from main/exception/InterpreterException.java)2
-rw-r--r--src/main/com/jantuomi/borker/utils/Utilities.java (renamed from main/utils/Utilities.java)2
-rw-r--r--src/test/com/jantuomi/borker/MainTest.java (renamed from test/MainTest.java)5
-rw-r--r--src/test/com/jantuomi/borker/core/CommandLineArgumentContainerTest.java (renamed from test/core/CommandLineArgumentContainerTest.java)8
-rw-r--r--src/test/com/jantuomi/borker/core/parser/ParserTest.java (renamed from test/core/parser/ParserTest.java)9
-rw-r--r--src/test/com/jantuomi/borker/core/tokenizer/TokenizerTest.java (renamed from test/core/tokenizer/TokenizerTest.java)9
-rw-r--r--src/test/com/jantuomi/borker/resources/funcdef.bork (renamed from test/resources/funcdef.bork)0
-rw-r--r--src/test/com/jantuomi/borker/resources/program.bork (renamed from test/resources/program.bork)0
-rw-r--r--src/test/com/jantuomi/borker/resources/test.file (renamed from test/resources/test.file)0
93 files changed, 820 insertions, 790 deletions
diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..e83d0f1
--- /dev/null
+++ b/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: com.jantuomi.borker.Main
+
diff --git a/main/core/tokenizer/token/types/AssignmentToken.java b/main/core/tokenizer/token/types/AssignmentToken.java
deleted file mode 100644
index 57f404c..0000000
--- a/main/core/tokenizer/token/types/AssignmentToken.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.AssignmentNode;
-import com.jantuomi.interpreter.main.core.parser.ast.SymbolNode;
-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 20.6.2016.
- */
-public class AssignmentToken extends Token {
-
- private Token lhs;
- private Token rhs;
-
- public AssignmentToken() {
- super(Type.AssignmentToken, "set");
- }
-
- // TODO this and the node
-
- @Override
- public ASTNode generateNode() throws InterpreterException {
- ASTNode lhsNode = lhs.generateNode();
-
- if (!(lhsNode instanceof SymbolNode)) {
- ExceptionManager.raise(InterpreterException.ExceptionType.SyntaxError, getLine(), "non-symbol " + toString());
- return null;
- }
-
- AssignmentNode node = new AssignmentNode(this,
- (SymbolNode) lhsNode,
- rhs.generateNode()
- );
-
- return node;
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- this.lhs = args.get(0);
- this.rhs = args.get(1);
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList(lhs, rhs);
- }
-}
diff --git a/main/core/tokenizer/token/types/BooleanLiteralToken.java b/main/core/tokenizer/token/types/BooleanLiteralToken.java
deleted file mode 100644
index 6e28b82..0000000
--- a/main/core/tokenizer/token/types/BooleanLiteralToken.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.BooleanLiteralNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created by jan on 15.6.2016.
- */
-public class BooleanLiteralToken extends Token{
- public BooleanLiteralToken(String text) {
- super(Type.BooleanLiteralToken, text);
- }
-
- @Override
- public ASTNode generateNode() {
- return new BooleanLiteralNode(this);
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList();
- }
-}
diff --git a/main/core/tokenizer/token/types/ClosedParenToken.java b/main/core/tokenizer/token/types/ClosedParenToken.java
deleted file mode 100644
index 17e5c67..0000000
--- a/main/core/tokenizer/token/types/ClosedParenToken.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created by jan on 19.6.2016.
- */
-public class ClosedParenToken extends Token {
- public ClosedParenToken() {
- super(Type.ClosedParenToken);
- }
-
- @Override
- public ASTNode generateNode() {
- return null;
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList();
- }
-}
diff --git a/main/core/tokenizer/token/types/CommentToken.java b/main/core/tokenizer/token/types/CommentToken.java
deleted file mode 100644
index 45ca995..0000000
--- a/main/core/tokenizer/token/types/CommentToken.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.EmptyNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created by jan on 19.6.2016.
- */
-public class CommentToken extends Token {
- public CommentToken(String text, String rawText) {
- super(Type.CommentToken, text, rawText);
- }
-
- @Override
- public ASTNode generateNode() {
- return new EmptyNode(this);
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList();
- }
-}
diff --git a/main/core/tokenizer/token/types/DoubleLiteralToken.java b/main/core/tokenizer/token/types/DoubleLiteralToken.java
deleted file mode 100644
index 1a379eb..0000000
--- a/main/core/tokenizer/token/types/DoubleLiteralToken.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.DoubleLiteralNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created by jan on 15.6.2016.
- */
-public class DoubleLiteralToken extends Token{
- public DoubleLiteralToken(String text, String rawText) {
- super(Type.DoubleLiteralToken, text, rawText);
- }
-
- @Override
- public ASTNode generateNode() {
- return new DoubleLiteralNode(this);
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList();
- }
-}
diff --git a/main/core/tokenizer/token/types/EndFunctionDefineToken.java b/main/core/tokenizer/token/types/EndFunctionDefineToken.java
deleted file mode 100644
index 14b21f8..0000000
--- a/main/core/tokenizer/token/types/EndFunctionDefineToken.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-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 EndFunctionDefineToken extends Token {
- public EndFunctionDefineToken() {
- super(Type.EndBlockToken, "end");
- }
-
- @Override
- public ASTNode generateNode() {
- return null;
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList();
- }
-}
diff --git a/main/core/tokenizer/token/types/IntegerLiteralToken.java b/main/core/tokenizer/token/types/IntegerLiteralToken.java
deleted file mode 100644
index cdb4fde..0000000
--- a/main/core/tokenizer/token/types/IntegerLiteralToken.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.IntegerLiteralNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created by jan on 15.6.2016.
- */
-public class IntegerLiteralToken extends Token{
- public IntegerLiteralToken(String text) {
- super(Type.IntegerLiteralToken, text);
- }
-
- @Override
- public ASTNode generateNode() {
- return new IntegerLiteralNode(this);
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList();
- }
-}
diff --git a/main/core/tokenizer/token/types/NegationToken.java b/main/core/tokenizer/token/types/NegationToken.java
deleted file mode 100644
index 5658f10..0000000
--- a/main/core/tokenizer/token/types/NegationToken.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.NegationNode;
-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 NegationToken extends Token {
-
- private Token operand;
-
- public NegationToken() {
- super(Type.NegationToken, "not");
- }
-
- @Override
- public ASTNode generateNode() throws InterpreterException {
- return new NegationNode(this, operand.generateNode());
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- operand = args.get(0);
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList(operand);
- }
-}
diff --git a/main/core/tokenizer/token/types/StringLiteralToken.java b/main/core/tokenizer/token/types/StringLiteralToken.java
deleted file mode 100644
index 8d6cb8a..0000000
--- a/main/core/tokenizer/token/types/StringLiteralToken.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.StringLiteralNode;
-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 StringLiteralToken extends Token {
- public StringLiteralToken(String text, String rawText) {
- super(Type.StringLiteralToken, text, rawText);
- }
-
- @Override
- public ASTNode generateNode() throws InterpreterException {
- return new StringLiteralNode(this);
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList();
- }
-}
diff --git a/main/core/tokenizer/token/types/SymbolToken.java b/main/core/tokenizer/token/types/SymbolToken.java
deleted file mode 100644
index d750921..0000000
--- a/main/core/tokenizer/token/types/SymbolToken.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.ParameterListNode;
-import com.jantuomi.interpreter.main.core.parser.ast.SymbolNode;
-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 16.6.2016.
- */
-public class SymbolToken extends Token {
-
- public void setCallArgumentList(OpenParenToken callArgumentList) {
- this.callArgumentList = callArgumentList;
- }
-
- private OpenParenToken callArgumentList = null;
-
- public SymbolToken(String name) {
- super(Type.SymbolToken, name);
- }
-
- @Override
- public ASTNode generateNode() throws InterpreterException {
- SymbolNode node = new SymbolNode(this);
- node.setName(this.getText());
- if (callArgumentList != null) {
- node.setParameterListNode((ParameterListNode) callArgumentList.generateNode());
- }
- return node;
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- if (args.size() > 0) {
- setCallArgumentList((OpenParenToken) args.get(0));
- }
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- if (callArgumentList == null) {
- return Arrays.asList();
- } else {
- return Arrays.asList(callArgumentList);
- }
- }
-}
diff --git a/main/core/tokenizer/token/types/VariableDeclareToken.java b/main/core/tokenizer/token/types/VariableDeclareToken.java
deleted file mode 100644
index 1ec0826..0000000
--- a/main/core/tokenizer/token/types/VariableDeclareToken.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
-
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.SymbolNode;
-import com.jantuomi.interpreter.main.core.parser.ast.VariableDeclareNode;
-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 20.6.2016.
- */
-public class VariableDeclareToken extends Token {
-
- private SymbolToken variable;
-
- public VariableDeclareToken() {
- super(Type.DeclarationToken, "decl");
- }
-
- @Override
- public ASTNode generateNode() throws InterpreterException {
- VariableDeclareNode node = new VariableDeclareNode(this,
- (SymbolNode) variable.generateNode());
- return node;
- }
-
- @Override
- public Token setArguments(List<Token> args) {
- if (args.size() > 0) {
- this.variable = (SymbolToken) args.get(0);
- }
- return this;
- }
-
- @Override
- public List<Token> getChildren() {
- return Arrays.asList(variable);
- }
-}
diff --git a/main/utils/Counter.java b/main/utils/Counter.java
deleted file mode 100644
index 9783adf..0000000
--- a/main/utils/Counter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.jantuomi.interpreter.main.utils;
-
-/**
- * Created by jan on 13.6.2016.
- */
-public class Counter {
- private int value = 0;
-
- public int getRecursionDepth() {
- return recursionDepth;
- }
-
- private int recursionDepth = 0;
-
- public int advance() {
- return ++value;
- }
-
- public int deeper() {
- return ++recursionDepth;
- }
-
- public int shallower() {
- return --recursionDepth;
- }
-
- public int getValue() {
- return value;
- }
-
- public void assign(Counter other) {
- value = other.value;
- recursionDepth = other.recursionDepth;
- }
-
- public Counter clone() {
- Counter c = new Counter();
- c.value = value;
- c.recursionDepth = recursionDepth;
- return c;
- }
-}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..600e0e4
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,84 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.jantuomi.borker</groupId>
+ <artifactId>borker</artifactId>
+ <version>0.1</version>
+
+ <url>http://maven.apache.org</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <build>
+ <directory>${project.basedir}/target</directory>
+ <outputDirectory>${project.build.directory}/classes</outputDirectory>
+ <finalName>${project.artifactId}-${project.version}</finalName>
+ <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
+ <sourceDirectory>${project.basedir}/src/main</sourceDirectory>
+ <!--
+ <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
+ -->
+ <testSourceDirectory>${project.basedir}/src/test</testSourceDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/src/main/resources</directory>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <directory>${project.basedir}/src/test/resources</directory>
+ </testResource>
+ </testResources>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.1</version>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>com.jantuomi.borker.Main</mainClass>
+ </manifest>
+ </archive>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.0</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/args4j/args4j -->
+ <dependency>
+ <groupId>args4j</groupId>
+ <artifactId>args4j</artifactId>
+ <version>2.33</version>
+ </dependency>
+
+ <!-- https://mvnrepository.com/artifact/junit/junit -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ </dependency>
+
+ </dependencies>
+</project> \ No newline at end of file
diff --git a/main/Main.java b/src/main/com/jantuomi/borker/Main.java
index 77c2f51..d7445a8 100644
--- a/main/Main.java
+++ b/src/main/com/jantuomi/borker/Main.java
@@ -1,13 +1,13 @@
-package com.jantuomi.interpreter.main;
+package com.jantuomi.borker;
-import com.jantuomi.interpreter.main.core.CommandLineArgumentContainer;
-import com.jantuomi.interpreter.main.core.parser.ASTGenerator;
-import com.jantuomi.interpreter.main.core.parser.Parser;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.runtime.Interpreter;
-import com.jantuomi.interpreter.main.core.tokenizer.Tokenizer;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.CommandLineArgumentContainer;
+import com.jantuomi.borker.core.parser.ASTGenerator;
+import com.jantuomi.borker.core.parser.Parser;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.runtime.Interpreter;
+import com.jantuomi.borker.core.tokenizer.Tokenizer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.InterpreterException;
import org.kohsuke.args4j.CmdLineException;
import org.kohsuke.args4j.CmdLineParser;
@@ -20,7 +20,7 @@ public class Main {
public static void main(String[] args) throws Exception {
boolean parseSuccess = parseArguments(args);
if (!parseSuccess) {
- throw new Exception("Argument files could not be parsed successfully.");
+ return;
}
if (CommandLineArgumentContainer.getInstance().isInteractive()) {
@@ -73,7 +73,11 @@ public class Main {
CommandLineArgumentContainer container = CommandLineArgumentContainer.getInstance();
CmdLineParser parser = new CmdLineParser(container);
+
try {
+ if (args.length == 0) {
+ throw new CmdLineException("Please provide an argument.");
+ }
parser.parseArgument(args);
} catch (CmdLineException e) {
System.err.println(e.getMessage());
diff --git a/main/core/CommandLineArgumentContainer.java b/src/main/com/jantuomi/borker/core/CommandLineArgumentContainer.java
index 2bcb160..b89c88e 100644
--- a/main/core/CommandLineArgumentContainer.java
+++ b/src/main/com/jantuomi/borker/core/CommandLineArgumentContainer.java
@@ -1,4 +1,5 @@
-package com.jantuomi.interpreter.main.core;
+package com.jantuomi.borker.core;
+
import org.kohsuke.args4j.Option;
diff --git a/main/core/parser/ASTGenerator.java b/src/main/com/jantuomi/borker/core/parser/ASTGenerator.java
index 3d19a8c..4086929 100644
--- a/main/core/parser/ASTGenerator.java
+++ b/src/main/com/jantuomi/borker/core/parser/ASTGenerator.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.parser;
+package com.jantuomi.borker.core.parser;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.ArrayList;
import java.util.List;
diff --git a/main/core/parser/Parser.java b/src/main/com/jantuomi/borker/core/parser/Parser.java
index f6e1208..99f81e9 100644
--- a/main/core/parser/Parser.java
+++ b/src/main/com/jantuomi/borker/core/parser/Parser.java
@@ -1,10 +1,10 @@
-package com.jantuomi.interpreter.main.core.parser;
+package com.jantuomi.borker.core.parser;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.ArgumentInfo;
-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.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.tokenizer.token.ArgumentInfo;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.ArrayList;
import java.util.List;
diff --git a/main/core/parser/ast/ASTNode.java b/src/main/com/jantuomi/borker/core/parser/ast/ASTNode.java
index 311314f..3967edb 100644
--- a/main/core/parser/ast/ASTNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/ASTNode.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.List;
diff --git a/main/core/parser/ast/AdditionNode.java b/src/main/com/jantuomi/borker/core/parser/ast/AdditionNode.java
index 00db230..ba99a54 100644
--- a/main/core/parser/ast/AdditionNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/AdditionNode.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/AssignmentNode.java b/src/main/com/jantuomi/borker/core/parser/ast/AssignmentNode.java
index f2e7b8d..94013c2 100644
--- a/main/core/parser/ast/AssignmentNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/AssignmentNode.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.runtime.State;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/BinaryOperatorNode.java b/src/main/com/jantuomi/borker/core/parser/ast/BinaryOperatorNode.java
index 9ec21a4..a8f473f 100644
--- a/main/core/parser/ast/BinaryOperatorNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/BinaryOperatorNode.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.core.parser.ast;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
+import com.jantuomi.borker.core.tokenizer.token.Token;
/**
* Created by jan on 16.6.2016.
diff --git a/main/core/parser/ast/BlockBodyNode.java b/src/main/com/jantuomi/borker/core/parser/ast/BlockBodyNode.java
index 671f847..dd0582c 100644
--- a/main/core/parser/ast/BlockBodyNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/BlockBodyNode.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.VoidDataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 17.6.2016.
diff --git a/main/core/parser/ast/BooleanLiteralNode.java b/src/main/com/jantuomi/borker/core/parser/ast/BooleanLiteralNode.java
index 0d9c505..b5818a9 100644
--- a/main/core/parser/ast/BooleanLiteralNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/BooleanLiteralNode.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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.borker.core.parser.datatype.BooleanDataContainer;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/BranchNode.java b/src/main/com/jantuomi/borker/core/parser/ast/BranchNode.java
index d6fb4cf..12f304c 100644
--- a/main/core/parser/ast/BranchNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/BranchNode.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.BooleanDataContainer;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/DivisionNode.java b/src/main/com/jantuomi/borker/core/parser/ast/DivisionNode.java
index 5bebf7b..04af834 100644
--- a/main/core/parser/ast/DivisionNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/DivisionNode.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/DoubleLiteralNode.java b/src/main/com/jantuomi/borker/core/parser/ast/DoubleLiteralNode.java
index a90c4af..084218b 100644
--- a/main/core/parser/ast/DoubleLiteralNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/DoubleLiteralNode.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.DoubleDataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/EmptyNode.java b/src/main/com/jantuomi/borker/core/parser/ast/EmptyNode.java
index 44bfcc9..cd97f44 100644
--- a/main/core/parser/ast/EmptyNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/EmptyNode.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.VoidDataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/FunctionDefineNode.java b/src/main/com/jantuomi/borker/core/parser/ast/FunctionDefineNode.java
index 39a775a..2365511 100644
--- a/main/core/parser/ast/FunctionDefineNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/FunctionDefineNode.java
@@ -1,10 +1,10 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.StringDataContainer;
+import com.jantuomi.borker.core.runtime.Function;
+import com.jantuomi.borker.core.runtime.State;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.ArrayList;
import java.util.List;
diff --git a/main/core/parser/ast/IntegerLiteralNode.java b/src/main/com/jantuomi/borker/core/parser/ast/IntegerLiteralNode.java
index 68b57d7..573d491 100644
--- a/main/core/parser/ast/IntegerLiteralNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/IntegerLiteralNode.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.IntegerDataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/MultiplicationNode.java b/src/main/com/jantuomi/borker/core/parser/ast/MultiplicationNode.java
index 5d86cf3..53bf8ee 100644
--- a/main/core/parser/ast/MultiplicationNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/MultiplicationNode.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/NegationNode.java b/src/main/com/jantuomi/borker/core/parser/ast/NegationNode.java
index 1d381cb..2617198 100644
--- a/main/core/parser/ast/NegationNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/NegationNode.java
@@ -1,11 +1,11 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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;
+import com.jantuomi.borker.core.parser.datatype.BooleanDataContainer;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.IntegerDataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 21.6.2016.
diff --git a/main/core/parser/ast/ParameterListNode.java b/src/main/com/jantuomi/borker/core/parser/ast/ParameterListNode.java
index 50f919a..2d76694 100644
--- a/main/core/parser/ast/ParameterListNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/ParameterListNode.java
@@ -1,7 +1,7 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.core.parser.ast;
-import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.ArrayList;
import java.util.List;
diff --git a/main/core/parser/ast/StringLiteralNode.java b/src/main/com/jantuomi/borker/core/parser/ast/StringLiteralNode.java
index 1ad5e2b..214316a 100644
--- a/main/core/parser/ast/StringLiteralNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/StringLiteralNode.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.StringDataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/SubtractionNode.java b/src/main/com/jantuomi/borker/core/parser/ast/SubtractionNode.java
index 6b05073..6f0b3fb 100644
--- a/main/core/parser/ast/SubtractionNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/SubtractionNode.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/SymbolNode.java b/src/main/com/jantuomi/borker/core/parser/ast/SymbolNode.java
index 5a4346a..f473989 100644
--- a/main/core/parser/ast/SymbolNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/SymbolNode.java
@@ -1,11 +1,11 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.runtime.State;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
+import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/main/core/parser/ast/UnaryOperatorNode.java b/src/main/com/jantuomi/borker/core/parser/ast/UnaryOperatorNode.java
index 283f07d..2636bfe 100644
--- a/main/core/parser/ast/UnaryOperatorNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/UnaryOperatorNode.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.core.parser.ast;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/ast/VarargOperatorNode.java b/src/main/com/jantuomi/borker/core/parser/ast/VarargOperatorNode.java
index 96a7320..007bdf6 100644
--- a/main/core/parser/ast/VarargOperatorNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/VarargOperatorNode.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.core.parser.ast;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.List;
diff --git a/main/core/parser/ast/VariableDeclareNode.java b/src/main/com/jantuomi/borker/core/parser/ast/VariableDeclareNode.java
index 185edda..e37b17f 100644
--- a/main/core/parser/ast/VariableDeclareNode.java
+++ b/src/main/com/jantuomi/borker/core/parser/ast/VariableDeclareNode.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.parser.ast;
+package com.jantuomi.borker.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 com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.StringDataContainer;
+import com.jantuomi.borker.core.runtime.State;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/parser/datatype/BooleanDataContainer.java b/src/main/com/jantuomi/borker/core/parser/datatype/BooleanDataContainer.java
index e21ed96..14f4a80 100644
--- a/main/core/parser/datatype/BooleanDataContainer.java
+++ b/src/main/com/jantuomi/borker/core/parser/datatype/BooleanDataContainer.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.parser.datatype;
+package com.jantuomi.borker.core.parser.datatype;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 16.6.2016.
diff --git a/main/core/parser/datatype/DataContainer.java b/src/main/com/jantuomi/borker/core/parser/datatype/DataContainer.java
index 5f46640..cdb202d 100644
--- a/main/core/parser/datatype/DataContainer.java
+++ b/src/main/com/jantuomi/borker/core/parser/datatype/DataContainer.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.parser.datatype;
+package com.jantuomi.borker.core.parser.datatype;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 11.6.2016.
diff --git a/main/core/parser/datatype/DoubleDataContainer.java b/src/main/com/jantuomi/borker/core/parser/datatype/DoubleDataContainer.java
index 9564ff9..e7fea19 100644
--- a/main/core/parser/datatype/DoubleDataContainer.java
+++ b/src/main/com/jantuomi/borker/core/parser/datatype/DoubleDataContainer.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.parser.datatype;
+package com.jantuomi.borker.core.parser.datatype;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 22.6.2016.
diff --git a/main/core/parser/datatype/IntegerDataContainer.java b/src/main/com/jantuomi/borker/core/parser/datatype/IntegerDataContainer.java
index 4f71e2b..a0e42f6 100644
--- a/main/core/parser/datatype/IntegerDataContainer.java
+++ b/src/main/com/jantuomi/borker/core/parser/datatype/IntegerDataContainer.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.parser.datatype;
+package com.jantuomi.borker.core.parser.datatype;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 16.6.2016.
diff --git a/main/core/parser/datatype/StringDataContainer.java b/src/main/com/jantuomi/borker/core/parser/datatype/StringDataContainer.java
index 68f41d9..6984642 100644
--- a/main/core/parser/datatype/StringDataContainer.java
+++ b/src/main/com/jantuomi/borker/core/parser/datatype/StringDataContainer.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.parser.datatype;
+package com.jantuomi.borker.core.parser.datatype;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 16.6.2016.
diff --git a/main/core/parser/datatype/VoidDataContainer.java b/src/main/com/jantuomi/borker/core/parser/datatype/VoidDataContainer.java
index 098de8d..4b7be6c 100644
--- a/main/core/parser/datatype/VoidDataContainer.java
+++ b/src/main/com/jantuomi/borker/core/parser/datatype/VoidDataContainer.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.parser.datatype;
+package com.jantuomi.borker.core.parser.datatype;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 17.6.2016.
diff --git a/main/core/runtime/Function.java b/src/main/com/jantuomi/borker/core/runtime/Function.java
index 6989a68..714dcea 100644
--- a/main/core/runtime/Function.java
+++ b/src/main/com/jantuomi/borker/core/runtime/Function.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.runtime;
+package com.jantuomi.borker.core.runtime;
-import com.jantuomi.interpreter.main.core.parser.ast.BlockBodyNode;
-import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.BlockBodyNode;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.List;
diff --git a/main/core/runtime/Interpreter.java b/src/main/com/jantuomi/borker/core/runtime/Interpreter.java
index 6877ac3..2a7bbbf 100644
--- a/main/core/runtime/Interpreter.java
+++ b/src/main/com/jantuomi/borker/core/runtime/Interpreter.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.runtime;
+package com.jantuomi.borker.core.runtime;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.List;
diff --git a/main/core/runtime/Scope.java b/src/main/com/jantuomi/borker/core/runtime/Scope.java
index 0bf8907..90c1578 100644
--- a/main/core/runtime/Scope.java
+++ b/src/main/com/jantuomi/borker/core/runtime/Scope.java
@@ -1,7 +1,7 @@
-package com.jantuomi.interpreter.main.core.runtime;
+package com.jantuomi.borker.core.runtime;
-import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.HashMap;
import java.util.List;
diff --git a/main/core/runtime/State.java b/src/main/com/jantuomi/borker/core/runtime/State.java
index 8563a77..1ad09e7 100644
--- a/main/core/runtime/State.java
+++ b/src/main/com/jantuomi/borker/core/runtime/State.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.runtime;
+package com.jantuomi.borker.core.runtime;
-import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
-import com.jantuomi.interpreter.main.core.runtime.builtins.BuiltinManager;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.runtime.builtins.BuiltinManager;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/runtime/builtins/AsIntBuiltinFunction.java b/src/main/com/jantuomi/borker/core/runtime/builtins/AsIntBuiltinFunction.java
index 210e1e4..e1f2a93 100644
--- a/main/core/runtime/builtins/AsIntBuiltinFunction.java
+++ b/src/main/com/jantuomi/borker/core/runtime/builtins/AsIntBuiltinFunction.java
@@ -1,11 +1,11 @@
-package com.jantuomi.interpreter.main.core.runtime.builtins;
+package com.jantuomi.borker.core.runtime.builtins;
-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.parser.datatype.StringDataContainer;
-import com.jantuomi.interpreter.main.core.runtime.Function;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.datatype.BooleanDataContainer;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.IntegerDataContainer;
+import com.jantuomi.borker.core.parser.datatype.StringDataContainer;
+import com.jantuomi.borker.core.runtime.Function;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/runtime/builtins/BuiltinManager.java b/src/main/com/jantuomi/borker/core/runtime/builtins/BuiltinManager.java
index c6c9e26..18f49a9 100644
--- a/main/core/runtime/builtins/BuiltinManager.java
+++ b/src/main/com/jantuomi/borker/core/runtime/builtins/BuiltinManager.java
@@ -1,6 +1,6 @@
-package com.jantuomi.interpreter.main.core.runtime.builtins;
+package com.jantuomi.borker.core.runtime.builtins;
-import com.jantuomi.interpreter.main.core.runtime.Function;
+import com.jantuomi.borker.core.runtime.Function;
import java.util.ArrayList;
import java.util.List;
diff --git a/main/core/runtime/builtins/ConcatBuiltinFunction.java b/src/main/com/jantuomi/borker/core/runtime/builtins/ConcatBuiltinFunction.java
index 5f87a38..293b918 100644
--- a/main/core/runtime/builtins/ConcatBuiltinFunction.java
+++ b/src/main/com/jantuomi/borker/core/runtime/builtins/ConcatBuiltinFunction.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.runtime.builtins;
+package com.jantuomi.borker.core.runtime.builtins;
-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.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.StringDataContainer;
+import com.jantuomi.borker.core.runtime.Function;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/runtime/builtins/InBuiltinFunction.java b/src/main/com/jantuomi/borker/core/runtime/builtins/InBuiltinFunction.java
index 32d6b72..8d9184f 100644
--- a/main/core/runtime/builtins/InBuiltinFunction.java
+++ b/src/main/com/jantuomi/borker/core/runtime/builtins/InBuiltinFunction.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.runtime.builtins;
+package com.jantuomi.borker.core.runtime.builtins;
-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.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.parser.datatype.StringDataContainer;
+import com.jantuomi.borker.core.runtime.Function;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/runtime/builtins/OutBuiltinFunction.java b/src/main/com/jantuomi/borker/core/runtime/builtins/OutBuiltinFunction.java
index 0611a83..4e977c8 100644
--- a/main/core/runtime/builtins/OutBuiltinFunction.java
+++ b/src/main/com/jantuomi/borker/core/runtime/builtins/OutBuiltinFunction.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.runtime.builtins;
+package com.jantuomi.borker.core.runtime.builtins;
-import com.jantuomi.interpreter.main.core.parser.datatype.DataContainer;
-import com.jantuomi.interpreter.main.core.runtime.Function;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.datatype.DataContainer;
+import com.jantuomi.borker.core.runtime.Function;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
diff --git a/main/core/tokenizer/Tokenizer.java b/src/main/com/jantuomi/borker/core/tokenizer/Tokenizer.java
index 9ff1e4c..d7d8870 100644
--- a/main/core/tokenizer/Tokenizer.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/Tokenizer.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.tokenizer;
+package com.jantuomi.borker.core.tokenizer;
-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.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
diff --git a/main/core/tokenizer/token/ArgumentInfo.java b/src/main/com/jantuomi/borker/core/tokenizer/token/ArgumentInfo.java
index b062a04..967b341 100644
--- a/main/core/tokenizer/token/ArgumentInfo.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/ArgumentInfo.java
@@ -1,4 +1,4 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token;
+package com.jantuomi.borker.core.tokenizer.token;
/**
* Created by jan on 15.6.2016.
diff --git a/main/core/tokenizer/token/Token.java b/src/main/com/jantuomi/borker/core/tokenizer/token/Token.java
index d4058cb..b43755d 100644
--- a/main/core/tokenizer/token/Token.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/Token.java
@@ -1,9 +1,8 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token;
+package com.jantuomi.borker.core.tokenizer.token;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.types.*;
-import com.jantuomi.interpreter.main.exception.ExceptionManager;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
@@ -153,110 +152,25 @@ abstract public class Token {
Matcher matcher = pattern.matcher(string);
if (matcher.find()) {
- String text = matcher.group(1);
+ String lexeme = matcher.group(1);
String rawText = matcher.group(0);
- switch (type) {
- case WhitespaceToken:
- return new WhitespaceToken();
- case CommentToken:
- return new CommentToken(text, rawText);
-
- // TODO placeholder whitespace instead of newline
- case NewlineToken:
- return new WhitespaceToken();
-
- case IntegerLiteralToken:
- return new IntegerLiteralToken(text);
- case StringLiteralToken:
- return new StringLiteralToken(text, rawText);
- case BooleanLiteralToken:
- return new BooleanLiteralToken(text);
- case DoubleLiteralToken:
- return new DoubleLiteralToken(text, rawText);
- case AdditionToken:
- return new AdditionToken();
- case SubtractionToken:
- return new SubtractionToken();
- case MultiplicationToken:
- return new MultiplicationToken();
- case DivisionToken:
- return new DivisionToken();
- case FunctionDefineToken:
- return new FunctionDefineToken();
- case EndBlockToken:
- return new EndFunctionDefineToken();
- case FunctionBodyToken:
- return new BlockBodyToken("as");
- case BranchBodyToken:
- return new BlockBodyToken("then");
- case DeclarationToken:
- return new VariableDeclareToken();
- case AssignmentToken:
- return new AssignmentToken();
- case SymbolToken:
- return new SymbolToken(text);
- case OpenParenToken:
- return new OpenParenToken();
- case ClosedParenToken:
- return new ClosedParenToken();
- case BranchToken:
- return new BranchToken();
- case NegationToken:
- return new NegationToken();
- default:
- ExceptionManager.raise(InterpreterException.ExceptionType.IllegalTokenError, line,
- type.toString()
- );
+ Token token = TokenFactory.create(type, lexeme, rawText);
+ if (token != null) {
+ token.setLine(line);
+ }
+ else {
+ ExceptionManager.raise(InterpreterException.ExceptionType.IllegalTokenError, line,
+ type.toString()
+ );
}
- }
+ return token;
+ }
return null;
}
- public ArgumentInfo getArgumentInfo() {
- switch (getTokenType()) {
-
- case FunctionDefineToken:
- ArgumentInfo fdai = new ArgumentInfo();
- fdai.setVariable(true);
- fdai.setTerminator(Type.FunctionBodyToken);
- return fdai;
- case BranchBodyToken:
- case FunctionBodyToken:
- ArgumentInfo fbai = new ArgumentInfo();
- fbai.setVariable(true);
- fbai.setTerminator(Type.EndBlockToken);
- return fbai;
- case OpenParenToken:
- ArgumentInfo opai = new ArgumentInfo();
- opai.setVariable(true);
- opai.setTerminator(Type.ClosedParenToken);
- return opai;
- case SymbolToken:
- ArgumentInfo sai = new ArgumentInfo();
- sai.setOptionalArgument(Type.OpenParenToken);
- return sai;
- case AdditionToken:
- case SubtractionToken:
- case DivisionToken:
- case MultiplicationToken:
- case AssignmentToken:
- case LessThanToken:
- case GreaterThanToken:
- case LessOrEqualThanToken:
- case GreaterOrEqualThanToken:
- case EqualsToken:
- case NotEqualsToken:
- case BranchToken:
- return new ArgumentInfo(2);
- case DeclarationToken:
- case NegationToken:
- return new ArgumentInfo(1);
- default:
- return new ArgumentInfo(0);
- }
- }
+ abstract public ArgumentInfo getArgumentInfo();
@Override
public int hashCode() {
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/TokenFactory.java b/src/main/com/jantuomi/borker/core/tokenizer/token/TokenFactory.java
new file mode 100644
index 0000000..5fa9473
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/TokenFactory.java
@@ -0,0 +1,71 @@
+package com.jantuomi.borker.core.tokenizer.token;
+
+import com.jantuomi.borker.core.tokenizer.token.types.*;
+
+/**
+ * Created by jan on 28.6.2016.
+ */
+public class TokenFactory {
+ private static TokenFactory instance = new TokenFactory();
+
+ public static TokenFactory getInstance() {
+ return instance;
+ }
+
+ private TokenFactory() {
+ }
+
+ public static Token create(Token.Type type, String text, String rawText) {
+ switch (type) {
+ case WhitespaceToken:
+ return new WhitespaceToken();
+ case CommentToken:
+ return new CommentToken(text, rawText);
+
+ // TODO placeholder whitespace instead of newline
+ case NewlineToken:
+ return new WhitespaceToken();
+
+ case IntegerLiteralToken:
+ return new IntegerLiteralToken(text);
+ case StringLiteralToken:
+ return new StringLiteralToken(text, rawText);
+ case BooleanLiteralToken:
+ return new BooleanLiteralToken(text);
+ case DoubleLiteralToken:
+ return new DoubleLiteralToken(text, rawText);
+ case AdditionToken:
+ return new AdditionToken();
+ case SubtractionToken:
+ return new SubtractionToken();
+ case MultiplicationToken:
+ return new MultiplicationToken();
+ case DivisionToken:
+ return new DivisionToken();
+ case FunctionDefineToken:
+ return new FunctionDefineToken();
+ case EndBlockToken:
+ return new EndBlockToken();
+ case FunctionBodyToken:
+ return new BlockBodyToken("as");
+ case BranchBodyToken:
+ return new BlockBodyToken("then");
+ case DeclarationToken:
+ return new VariableDeclareToken();
+ case AssignmentToken:
+ return new AssignmentToken();
+ case SymbolToken:
+ return new SymbolToken(text);
+ case OpenParenToken:
+ return new OpenParenToken();
+ case ClosedParenToken:
+ return new ClosedParenToken();
+ case BranchToken:
+ return new BranchToken();
+ case NegationToken:
+ return new NegationToken();
+ default:
+ return null;
+ }
+ }
+}
diff --git a/main/core/tokenizer/token/types/AdditionToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/AdditionToken.java
index 4623d73..ee49846 100644
--- a/main/core/tokenizer/token/types/AdditionToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/AdditionToken.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.AdditionNode;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.AdditionNode;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 15.6.2016.
@@ -18,6 +18,5 @@ public class AdditionToken extends BinaryOperatorToken {
lhs.generateNode(),
rhs.generateNode()
);
-
}
}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/AssignmentToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/AssignmentToken.java
new file mode 100644
index 0000000..8d8903e
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/AssignmentToken.java
@@ -0,0 +1,36 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.AssignmentNode;
+import com.jantuomi.borker.core.parser.ast.SymbolNode;
+import com.jantuomi.borker.exception.ExceptionManager;
+import com.jantuomi.borker.exception.InterpreterException;
+
+/**
+ * Created by jan on 20.6.2016.
+ */
+public class AssignmentToken extends BinaryOperatorToken {
+
+ public AssignmentToken() {
+ super(Type.AssignmentToken, "set");
+ }
+
+ // TODO this and the node
+
+ @Override
+ public ASTNode generateNode() throws InterpreterException {
+ ASTNode lhsNode = lhs.generateNode();
+
+ if (!(lhsNode instanceof SymbolNode)) {
+ ExceptionManager.raise(InterpreterException.ExceptionType.SyntaxError, getLine(), "non-symbol " + toString());
+ return null;
+ }
+
+ AssignmentNode node = new AssignmentNode(this,
+ (SymbolNode) lhsNode,
+ rhs.generateNode()
+ );
+
+ return node;
+ }
+}
diff --git a/main/core/tokenizer/token/types/BinaryOperatorToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/BinaryOperatorToken.java
index 3998bb9..207820a 100644
--- a/main/core/tokenizer/token/types/BinaryOperatorToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/BinaryOperatorToken.java
@@ -1,6 +1,7 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
+import com.jantuomi.borker.core.tokenizer.token.ArgumentInfo;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.Arrays;
import java.util.List;
@@ -16,6 +17,10 @@ abstract public class BinaryOperatorToken extends Token {
super(type);
}
+ public BinaryOperatorToken(Type type, String text) {
+ super(type, text);
+ }
+
@Override
public Token setArguments(List<Token> args) {
lhs = args.get(0);
@@ -26,6 +31,10 @@ abstract public class BinaryOperatorToken extends Token {
@Override
public List<Token> getChildren() {
return Arrays.asList(lhs, rhs);
+ }
+ @Override
+ public ArgumentInfo getArgumentInfo() {
+ return new ArgumentInfo(2);
}
}
diff --git a/main/core/tokenizer/token/types/BlockBodyToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/BlockBodyToken.java
index 444ea1f..c6a251d 100644
--- a/main/core/tokenizer/token/types/BlockBodyToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/BlockBodyToken.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.BlockBodyNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.BlockBodyNode;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.ArrayList;
import java.util.List;
@@ -27,4 +27,9 @@ public class BlockBodyToken extends VarargOperatorToken {
node.setArgs(statements);
return node;
}
+
+ @Override
+ public Type getTerminatorTokenType() {
+ return Type.EndBlockToken;
+ }
}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/BooleanLiteralToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/BooleanLiteralToken.java
new file mode 100644
index 0000000..4e8510c
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/BooleanLiteralToken.java
@@ -0,0 +1,18 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.BooleanLiteralNode;
+
+/**
+ * Created by jan on 15.6.2016.
+ */
+public class BooleanLiteralToken extends TerminalToken{
+ public BooleanLiteralToken(String text) {
+ super(Type.BooleanLiteralToken, text);
+ }
+
+ @Override
+ public ASTNode generateNode() {
+ return new BooleanLiteralNode(this);
+ }
+}
diff --git a/main/core/tokenizer/token/types/BranchToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/BranchToken.java
index 84aeabb..dd74c50 100644
--- a/main/core/tokenizer/token/types/BranchToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/BranchToken.java
@@ -1,10 +1,10 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.BlockBodyNode;
-import com.jantuomi.interpreter.main.core.parser.ast.BranchNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.BlockBodyNode;
+import com.jantuomi.borker.core.parser.ast.BranchNode;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.Arrays;
import java.util.List;
@@ -12,7 +12,7 @@ import java.util.List;
/**
* Created by jan on 21.6.2016.
*/
-public class BranchToken extends Token {
+public class BranchToken extends VarargOperatorToken {
private Token expression;
private BlockBodyToken branch;
@@ -40,4 +40,9 @@ public class BranchToken extends Token {
public List<Token> getChildren() {
return Arrays.asList(expression, branch);
}
+
+ @Override
+ public Type getTerminatorTokenType() {
+ return Type.BranchBodyToken;
+ }
}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/ClosedParenToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/ClosedParenToken.java
new file mode 100644
index 0000000..3071aaf
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/ClosedParenToken.java
@@ -0,0 +1,18 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+
+/**
+ * Created by jan on 19.6.2016.
+ */
+public class ClosedParenToken extends TerminalToken {
+ public ClosedParenToken() {
+ super(Type.ClosedParenToken);
+ }
+
+ @Override
+ public ASTNode generateNode() {
+ return null;
+ }
+
+}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/CommentToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/CommentToken.java
new file mode 100644
index 0000000..4908116
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/CommentToken.java
@@ -0,0 +1,18 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.EmptyNode;
+
+/**
+ * Created by jan on 19.6.2016.
+ */
+public class CommentToken extends TerminalToken {
+ public CommentToken(String text, String rawText) {
+ super(Type.CommentToken, text, rawText);
+ }
+
+ @Override
+ public ASTNode generateNode() {
+ return new EmptyNode(this);
+ }
+}
diff --git a/main/core/tokenizer/token/types/DivisionToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/DivisionToken.java
index 14f4d13..2b9892e 100644
--- a/main/core/tokenizer/token/types/DivisionToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/DivisionToken.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.DivisionNode;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.DivisionNode;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 15.6.2016.
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/DoubleLiteralToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/DoubleLiteralToken.java
new file mode 100644
index 0000000..71da848
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/DoubleLiteralToken.java
@@ -0,0 +1,18 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.DoubleLiteralNode;
+
+/**
+ * Created by jan on 15.6.2016.
+ */
+public class DoubleLiteralToken extends TerminalToken {
+ public DoubleLiteralToken(String text, String rawText) {
+ super(Type.DoubleLiteralToken, text, rawText);
+ }
+
+ @Override
+ public ASTNode generateNode() {
+ return new DoubleLiteralNode(this);
+ }
+}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/EndBlockToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/EndBlockToken.java
new file mode 100644
index 0000000..3a07432
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/EndBlockToken.java
@@ -0,0 +1,17 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+
+/**
+ * Created by jan on 16.6.2016.
+ */
+public class EndBlockToken extends TerminalToken {
+ public EndBlockToken() {
+ super(Type.EndBlockToken, "end");
+ }
+
+ @Override
+ public ASTNode generateNode() {
+ return null;
+ }
+}
diff --git a/main/core/tokenizer/token/types/FunctionDefineToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/FunctionDefineToken.java
index 7d715a9..dab0e3a 100644
--- a/main/core/tokenizer/token/types/FunctionDefineToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/FunctionDefineToken.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.BlockBodyNode;
-import com.jantuomi.interpreter.main.core.parser.ast.FunctionDefineNode;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.BlockBodyNode;
+import com.jantuomi.borker.core.parser.ast.FunctionDefineNode;
+import com.jantuomi.borker.exception.InterpreterException;
import java.util.ArrayList;
import java.util.List;
@@ -31,4 +31,9 @@ public class FunctionDefineToken extends VarargOperatorToken {
node.setBody(bodyNode);
return node;
}
+
+ @Override
+ public Type getTerminatorTokenType() {
+ return Type.FunctionBodyToken;
+ }
}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/IntegerLiteralToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/IntegerLiteralToken.java
new file mode 100644
index 0000000..1b18373
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/IntegerLiteralToken.java
@@ -0,0 +1,18 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.IntegerLiteralNode;
+
+/**
+ * Created by jan on 15.6.2016.
+ */
+public class IntegerLiteralToken extends TerminalToken {
+ public IntegerLiteralToken(String text) {
+ super(Type.IntegerLiteralToken, text);
+ }
+
+ @Override
+ public ASTNode generateNode() {
+ return new IntegerLiteralNode(this);
+ }
+}
diff --git a/main/core/tokenizer/token/types/MultiplicationToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/MultiplicationToken.java
index 521f01a..fc55e7a 100644
--- a/main/core/tokenizer/token/types/MultiplicationToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/MultiplicationToken.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.MultiplicationNode;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.MultiplicationNode;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 15.6.2016.
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/NegationToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/NegationToken.java
new file mode 100644
index 0000000..fbe0787
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/NegationToken.java
@@ -0,0 +1,20 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.NegationNode;
+import com.jantuomi.borker.exception.InterpreterException;
+
+/**
+ * Created by jan on 21.6.2016.
+ */
+public class NegationToken extends UnaryOperatorToken {
+
+ public NegationToken() {
+ super(Type.NegationToken, "not");
+ }
+
+ @Override
+ public ASTNode generateNode() throws InterpreterException {
+ return new NegationNode(this, operand.generateNode());
+ }
+}
diff --git a/main/core/tokenizer/token/types/OpenParenToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/OpenParenToken.java
index 80b507c..37a1df0 100644
--- a/main/core/tokenizer/token/types/OpenParenToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/OpenParenToken.java
@@ -1,9 +1,9 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.ParameterListNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.ParameterListNode;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 19.6.2016.
@@ -26,4 +26,9 @@ public class OpenParenToken extends VarargOperatorToken {
}
return node;
}
+
+ @Override
+ public Type getTerminatorTokenType() {
+ return Type.ClosedParenToken;
+ }
}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/OptionalArgumentToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/OptionalArgumentToken.java
new file mode 100644
index 0000000..8cf41af
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/OptionalArgumentToken.java
@@ -0,0 +1,48 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.tokenizer.token.ArgumentInfo;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Created by jan on 28.6.2016.
+ */
+public abstract class OptionalArgumentToken extends Token {
+ public OptionalArgumentToken(Type type, String text) {
+ super(type, text);
+ }
+
+ protected Token optionalArgument;
+
+ public void setOptionalArgument(OpenParenToken optionalArgument) {
+ this.optionalArgument = optionalArgument;
+ }
+
+ abstract public Token.Type getOptionalArgumentType();
+
+ @Override
+ public ArgumentInfo getArgumentInfo() {
+ ArgumentInfo ai = new ArgumentInfo();
+ ai.setOptionalArgument(getOptionalArgumentType());
+ return ai;
+ }
+
+ @Override
+ public Token setArguments(List<Token> args) {
+ if (args.size() > 0) {
+ setOptionalArgument((OpenParenToken) args.get(0));
+ }
+ return this;
+ }
+
+ @Override
+ public List<Token> getChildren() {
+ if (optionalArgument == null) {
+ return Arrays.asList();
+ } else {
+ return Arrays.asList(optionalArgument);
+ }
+ }
+}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/StringLiteralToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/StringLiteralToken.java
new file mode 100644
index 0000000..7370444
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/StringLiteralToken.java
@@ -0,0 +1,19 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.StringLiteralNode;
+import com.jantuomi.borker.exception.InterpreterException;
+
+/**
+ * Created by jan on 21.6.2016.
+ */
+public class StringLiteralToken extends TerminalToken {
+ public StringLiteralToken(String text, String rawText) {
+ super(Type.StringLiteralToken, text, rawText);
+ }
+
+ @Override
+ public ASTNode generateNode() throws InterpreterException {
+ return new StringLiteralNode(this);
+ }
+}
diff --git a/main/core/tokenizer/token/types/SubtractionToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/SubtractionToken.java
index 9f7ff10..9e9d2cb 100644
--- a/main/core/tokenizer/token/types/SubtractionToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/SubtractionToken.java
@@ -1,8 +1,8 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.parser.ast.SubtractionNode;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.SubtractionNode;
+import com.jantuomi.borker.exception.InterpreterException;
/**
* Created by jan on 16.6.2016.
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/SymbolToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/SymbolToken.java
new file mode 100644
index 0000000..76dbad2
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/SymbolToken.java
@@ -0,0 +1,31 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.ParameterListNode;
+import com.jantuomi.borker.core.parser.ast.SymbolNode;
+import com.jantuomi.borker.exception.InterpreterException;
+
+/**
+ * Created by jan on 16.6.2016.
+ */
+public class SymbolToken extends OptionalArgumentToken {
+
+ public SymbolToken(String name) {
+ super(Type.SymbolToken, name);
+ }
+
+ @Override
+ public ASTNode generateNode() throws InterpreterException {
+ SymbolNode node = new SymbolNode(this);
+ node.setName(this.getText());
+ if (optionalArgument != null) {
+ node.setParameterListNode((ParameterListNode) optionalArgument.generateNode());
+ }
+ return node;
+ }
+
+ @Override
+ public Type getOptionalArgumentType() {
+ return Type.OpenParenToken;
+ }
+}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/TerminalToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/TerminalToken.java
new file mode 100644
index 0000000..fb943fe
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/TerminalToken.java
@@ -0,0 +1,39 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.tokenizer.token.ArgumentInfo;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Created by jan on 28.6.2016.
+ */
+abstract public class TerminalToken extends Token {
+ public TerminalToken(Type type, String text, String rawText) {
+ super(type, text, rawText);
+ }
+
+ public TerminalToken(Type type, String text) {
+ super(type, text);
+ }
+
+ public TerminalToken(Type type) {
+ super(type);
+ }
+
+ @Override
+ public Token setArguments(List<Token> args) {
+ return this;
+ }
+
+ @Override
+ public List<Token> getChildren() {
+ return Arrays.asList();
+ }
+
+ @Override
+ public ArgumentInfo getArgumentInfo() {
+ return new ArgumentInfo(0);
+ }
+}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/UnaryOperatorToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/UnaryOperatorToken.java
new file mode 100644
index 0000000..7c13ad0
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/UnaryOperatorToken.java
@@ -0,0 +1,39 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.tokenizer.token.ArgumentInfo;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Created by jan on 28.6.2016.
+ */
+abstract public class UnaryOperatorToken extends Token {
+ public UnaryOperatorToken(Type type, String text) {
+ super(type, text);
+ }
+
+ public UnaryOperatorToken(Type type) {
+ super(type);
+ }
+
+ protected Token operand;
+
+
+ @Override
+ public ArgumentInfo getArgumentInfo() {
+ return new ArgumentInfo(1);
+ }
+
+ @Override
+ public Token setArguments(List<Token> args) {
+ operand = args.get(0);
+ return this;
+ }
+
+ @Override
+ public List<Token> getChildren() {
+ return Arrays.asList(operand);
+ }
+}
diff --git a/main/core/tokenizer/token/types/VarargOperatorToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/VarargOperatorToken.java
index f8901ee..fe82a43 100644
--- a/main/core/tokenizer/token/types/VarargOperatorToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/VarargOperatorToken.java
@@ -1,6 +1,7 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
+import com.jantuomi.borker.core.tokenizer.token.ArgumentInfo;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.List;
@@ -30,4 +31,15 @@ abstract public class VarargOperatorToken extends Token {
return args;
}
+ abstract public Token.Type getTerminatorTokenType();
+
+ @Override
+ public ArgumentInfo getArgumentInfo() {
+ ArgumentInfo ai = new ArgumentInfo();
+ ai.setVariable(true);
+ ai.setTerminator(getTerminatorTokenType());
+ return ai;
+
+ }
+
}
diff --git a/src/main/com/jantuomi/borker/core/tokenizer/token/types/VariableDeclareToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/VariableDeclareToken.java
new file mode 100644
index 0000000..c999452
--- /dev/null
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/VariableDeclareToken.java
@@ -0,0 +1,25 @@
+package com.jantuomi.borker.core.tokenizer.token.types;
+
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.parser.ast.SymbolNode;
+import com.jantuomi.borker.core.parser.ast.VariableDeclareNode;
+import com.jantuomi.borker.exception.InterpreterException;
+
+/**
+ * Created by jan on 20.6.2016.
+ */
+public class VariableDeclareToken extends UnaryOperatorToken {
+
+
+ public VariableDeclareToken() {
+ super(Type.DeclarationToken, "decl");
+ }
+
+ @Override
+ public ASTNode generateNode() throws InterpreterException {
+ SymbolToken st = (SymbolToken) operand;
+ VariableDeclareNode node = new VariableDeclareNode(this,
+ (SymbolNode) st.generateNode());
+ return node;
+ }
+}
diff --git a/main/core/tokenizer/token/types/WhitespaceToken.java b/src/main/com/jantuomi/borker/core/tokenizer/token/types/WhitespaceToken.java
index fb4949c..7b15e01 100644
--- a/main/core/tokenizer/token/types/WhitespaceToken.java
+++ b/src/main/com/jantuomi/borker/core/tokenizer/token/types/WhitespaceToken.java
@@ -1,7 +1,8 @@
-package com.jantuomi.interpreter.main.core.tokenizer.token.types;
+package com.jantuomi.borker.core.tokenizer.token.types;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
+import com.jantuomi.borker.core.parser.ast.ASTNode;
+import com.jantuomi.borker.core.tokenizer.token.ArgumentInfo;
+import com.jantuomi.borker.core.tokenizer.token.Token;
import java.util.Arrays;
import java.util.List;
@@ -28,4 +29,9 @@ public class WhitespaceToken extends Token {
public List<Token> getChildren() {
return Arrays.asList();
}
+
+ @Override
+ public ArgumentInfo getArgumentInfo() {
+ return new ArgumentInfo(0);
+ }
}
diff --git a/main/exception/ExceptionManager.java b/src/main/com/jantuomi/borker/exception/ExceptionManager.java
index 7eabe14..b9b302b 100644
--- a/main/exception/ExceptionManager.java
+++ b/src/main/com/jantuomi/borker/exception/ExceptionManager.java
@@ -1,4 +1,4 @@
-package com.jantuomi.interpreter.main.exception;
+package com.jantuomi.borker.exception;
/**
* Created by jan on 10.6.2016.
diff --git a/main/exception/InterpreterException.java b/src/main/com/jantuomi/borker/exception/InterpreterException.java
index 50fa2f0..153da0a 100644
--- a/main/exception/InterpreterException.java
+++ b/src/main/com/jantuomi/borker/exception/InterpreterException.java
@@ -1,4 +1,4 @@
-package com.jantuomi.interpreter.main.exception;
+package com.jantuomi.borker.exception;
import java.util.HashMap;
diff --git a/main/utils/Utilities.java b/src/main/com/jantuomi/borker/utils/Utilities.java
index 396248f..60e221d 100644
--- a/main/utils/Utilities.java
+++ b/src/main/com/jantuomi/borker/utils/Utilities.java
@@ -1,4 +1,4 @@
-package com.jantuomi.interpreter.main.utils;
+package com.jantuomi.borker.utils;
import java.nio.file.Path;
import java.nio.file.Paths;
diff --git a/test/MainTest.java b/src/test/com/jantuomi/borker/MainTest.java
index f90e367..e0342a4 100644
--- a/test/MainTest.java
+++ b/src/test/com/jantuomi/borker/MainTest.java
@@ -1,7 +1,6 @@
-package com.jantuomi.interpreter.test;
+package com.jantuomi.borker;
-import com.jantuomi.interpreter.main.Main;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.exception.InterpreterException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/core/CommandLineArgumentContainerTest.java b/src/test/com/jantuomi/borker/core/CommandLineArgumentContainerTest.java
index f6a6ead..0bc4c04 100644
--- a/test/core/CommandLineArgumentContainerTest.java
+++ b/src/test/com/jantuomi/borker/core/CommandLineArgumentContainerTest.java
@@ -1,7 +1,6 @@
-package com.jantuomi.interpreter.test.core;
+package com.jantuomi.borker.core;
-import com.jantuomi.interpreter.main.core.CommandLineArgumentContainer;
-import com.jantuomi.interpreter.main.utils.Utilities;
+import com.jantuomi.borker.utils.Utilities;
import org.junit.Test;
import java.io.File;
@@ -15,9 +14,8 @@ public class CommandLineArgumentContainerTest {
@Test
public void getSourceFileContents() throws Exception {
CommandLineArgumentContainer c = CommandLineArgumentContainer.getInstance();
-
File basePath = new File(Utilities.getBasePath());
- c.setFile(new File(basePath, "src/com/jantuomi/interpreter/test/resources/test.file"));
+ c.setFile(new File(basePath, "src/test/com/jantuomi/borker/resources/test.file"));
String contents = c.getSourceFileContents();
System.out.println(contents);
assertTrue(contents.contains("###"));
diff --git a/test/core/parser/ParserTest.java b/src/test/com/jantuomi/borker/core/parser/ParserTest.java
index 9dc51e3..964be76 100644
--- a/test/core/parser/ParserTest.java
+++ b/src/test/com/jantuomi/borker/core/parser/ParserTest.java
@@ -1,9 +1,8 @@
-package com.jantuomi.interpreter.test.core.parser;
+package com.jantuomi.borker.core.parser;
-import com.jantuomi.interpreter.main.core.parser.Parser;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-import com.jantuomi.interpreter.main.core.tokenizer.token.types.AdditionToken;
-import com.jantuomi.interpreter.main.core.tokenizer.token.types.IntegerLiteralToken;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.core.tokenizer.token.types.AdditionToken;
+import com.jantuomi.borker.core.tokenizer.token.types.IntegerLiteralToken;
import org.junit.Test;
import java.util.Arrays;
diff --git a/test/core/tokenizer/TokenizerTest.java b/src/test/com/jantuomi/borker/core/tokenizer/TokenizerTest.java
index 4274a93..fdaa022 100644
--- a/test/core/tokenizer/TokenizerTest.java
+++ b/src/test/com/jantuomi/borker/core/tokenizer/TokenizerTest.java
@@ -1,9 +1,8 @@
-package com.jantuomi.interpreter.test.core.tokenizer;
+package com.jantuomi.borker.core.tokenizer;
-import com.jantuomi.interpreter.main.core.tokenizer.Tokenizer;
-import com.jantuomi.interpreter.main.core.tokenizer.token.Token;
-import com.jantuomi.interpreter.main.core.tokenizer.token.types.IntegerLiteralToken;
-import com.jantuomi.interpreter.main.exception.InterpreterException;
+import com.jantuomi.borker.core.tokenizer.token.Token;
+import com.jantuomi.borker.core.tokenizer.token.types.IntegerLiteralToken;
+import com.jantuomi.borker.exception.InterpreterException;
import org.junit.Test;
import java.util.List;
diff --git a/test/resources/funcdef.bork b/src/test/com/jantuomi/borker/resources/funcdef.bork
index 8412129..8412129 100644
--- a/test/resources/funcdef.bork
+++ b/src/test/com/jantuomi/borker/resources/funcdef.bork
diff --git a/test/resources/program.bork b/src/test/com/jantuomi/borker/resources/program.bork
index 7034625..7034625 100644
--- a/test/resources/program.bork
+++ b/src/test/com/jantuomi/borker/resources/program.bork
diff --git a/test/resources/test.file b/src/test/com/jantuomi/borker/resources/test.file
index 3b723c0..3b723c0 100644
--- a/test/resources/test.file
+++ b/src/test/com/jantuomi/borker/resources/test.file