aboutsummaryrefslogtreecommitdiffstats
path: root/test/core
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2016-06-16 20:21:25 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2016-07-26 19:47:02 +0300
commitd35a37a449d31e6f4b43b937abf7b0e1fc497828 (patch)
tree8d65ac1068dbf09de480e7cae0fb39ec21d330ec /test/core
parentf441022881945db08846e09a8f3bfee2f8cfa95d (diff)
Grammar now uses reverse polish notation
Diffstat (limited to 'test/core')
-rw-r--r--test/core/parser/ParserTest.java21
-rw-r--r--test/core/tokenizer/TokenizerTest.java63
2 files changed, 14 insertions, 70 deletions
diff --git a/test/core/parser/ParserTest.java b/test/core/parser/ParserTest.java
index 913896e..9dc51e3 100644
--- a/test/core/parser/ParserTest.java
+++ b/test/core/parser/ParserTest.java
@@ -1,8 +1,9 @@
package com.jantuomi.interpreter.test.core.parser;
import com.jantuomi.interpreter.main.core.parser.Parser;
-import com.jantuomi.interpreter.main.core.parser.ast.ASTNode;
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 org.junit.Test;
import java.util.Arrays;
@@ -14,21 +15,17 @@ import java.util.List;
public class ParserTest {
@Test
- public void parseAssignment() throws Exception {
+ public void testParseAddition() throws Exception {
List<Token> tokens = Arrays.asList(
- new Token(Token.Type.SymbolToken, "x"),
- new Token(Token.Type.AssignmentToken),
- new Token(Token.Type.SymbolToken, "y"),
- new Token(Token.Type.AdditionToken),
- new Token(Token.Type.SymbolToken, "x"),
- new Token(Token.Type.AdditionToken),
- new Token(Token.Type.IntegerLiteralToken, "1")
+ new IntegerLiteralToken("1"),
+ new IntegerLiteralToken("2"),
+ new AdditionToken()
);
Parser parser = Parser.getInstance();
- List<ASTNode> sequence = parser.parse(tokens);
- for (ASTNode e : sequence) {
- parser.printTree(e);
+ List<Token> sequence = parser.parse(tokens);
+ for (Token t : sequence) {
+ parser.printTree(t);
}
}
} \ No newline at end of file
diff --git a/test/core/tokenizer/TokenizerTest.java b/test/core/tokenizer/TokenizerTest.java
index 7b29020..4274a93 100644
--- a/test/core/tokenizer/TokenizerTest.java
+++ b/test/core/tokenizer/TokenizerTest.java
@@ -2,6 +2,8 @@ package com.jantuomi.interpreter.test.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 org.junit.Test;
import java.util.List;
@@ -14,67 +16,12 @@ import static org.junit.Assert.assertTrue;
public class TokenizerTest {
@Test
- public void testTokenizeCommentAndSymbol() {
- String testString = "\"string literal\"\n/*comment*/\n1 2\nsymbol_Test3";
+ public void testAddition() throws InterpreterException {
+ String testString = "1 2 +";
List<Token> list = Tokenizer.getInstance().tokenize(testString);
System.out.println(String.format("test string:\n%s", testString));
Tokenizer.printTokens(list);
- assertTrue(list.contains(new Token(Token.Type.CommentToken, "comment")));
- }
-
- @Test
- public void testTokenizeMultilineString() {
- String testString = "\"this is a\nmultiline\nstring\"";
- List<Token> list = Tokenizer.getInstance().tokenize(testString);
-
- System.out.println(String.format("test string:\n%s", testString));
- Tokenizer.printTokens(list);
- assertTrue(list.contains(new Token(Token.Type.StringLiteralToken, "this is a\nmultiline\nstring")));
- }
-
- @Test
- public void testTokenizeMath() {
- String testString = "x <- (1 + 2) / 3 * 4";
- List<Token> list = Tokenizer.getInstance().tokenize(testString);
-
- System.out.println(String.format("test string:\n%s", testString));
- Tokenizer.printTokens(list);
- for (Token t : list) {
- if (t.isSameType(new Token(Token.Type.AssignmentToken))) {
- return;
- }
- }
- assertTrue("No assignment token found!" == null);
- }
-
- @Test
- public void testTokenizeDeclAndAssign() {
- String testString = "decl x\nx <- 1 + 2";
- List<Token> list = Tokenizer.getInstance().tokenize(testString);
-
- System.out.println(String.format("test string:\n%s", testString));
- Tokenizer.printTokens(list);
- for (Token t : list) {
- if (t.isSameType(new Token(Token.Type.DeclarationToken))) {
- return;
- }
- }
- assertTrue("No declaration token found!" == null);
- }
-
- @Test
- public void testTokenizeFunction() {
- String testString = "func name(arg)\nx <- 1\nend";
- List<Token> list = Tokenizer.getInstance().tokenize(testString);
-
- System.out.println(String.format("test string:\n%s", testString));
- Tokenizer.printTokens(list);
- for (Token t : list) {
- if (t.isSameType(new Token(Token.Type.FunctionDefineToken))) {
- return;
- }
- }
- assertTrue("No function declaration token found!" == null);
+ assertTrue(list.contains(new IntegerLiteralToken("2")));
}
} \ No newline at end of file