diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2016-06-28 21:09:43 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2016-07-26 19:47:12 +0300 |
| commit | 8f84c00978dc05007873a9fe1de6a18511dc3cf8 (patch) | |
| tree | 39fead540e22addee40b95b68db08cbea620745b | |
| parent | 48dcd488054024d98fe1e659a4029630130d1d35 (diff) | |
Restructure project for use with maven
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; - } -} @@ -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 |
