summaryrefslogtreecommitdiff
path: root/src/test/java/no
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/no')
-rw-r--r--src/test/java/no/eliashaugsbakk/kompilator/IRGeneration/IRGeneratorTest.java9
-rw-r--r--src/test/java/no/eliashaugsbakk/kompilator/parsing/ParserTest.java27
-rw-r--r--src/test/java/no/eliashaugsbakk/kompilator/semanticAnalysis/AnalyzerTest.java12
-rw-r--r--src/test/java/no/eliashaugsbakk/kompilator/tokenization/LexerTest.java4
4 files changed, 27 insertions, 25 deletions
diff --git a/src/test/java/no/eliashaugsbakk/kompilator/IRGeneration/IRGeneratorTest.java b/src/test/java/no/eliashaugsbakk/kompilator/IRGeneration/IRGeneratorTest.java
index 844782f..87b219e 100644
--- a/src/test/java/no/eliashaugsbakk/kompilator/IRGeneration/IRGeneratorTest.java
+++ b/src/test/java/no/eliashaugsbakk/kompilator/IRGeneration/IRGeneratorTest.java
@@ -11,6 +11,7 @@ import no.eliashaugsbakk.kompilator.parsing.node.Program;
import no.eliashaugsbakk.kompilator.parsing.node.expression.FunctionCall;
import no.eliashaugsbakk.kompilator.parsing.node.expression.literal.StringLiteral;
import no.eliashaugsbakk.kompilator.parsing.node.statement.ExpressionStatement;
+import no.eliashaugsbakk.kompilator.tokenization.Position;
import org.junit.jupiter.api.Test;
class IRGeneratorTest {
@@ -27,7 +28,7 @@ class IRGeneratorTest {
@Test
void multiplePrintStatementsGenerateSequentialTempVars() {
- Program program = new Program();
+ Program program = new Program(null);
program.addStatement(buildStatement("skriv", "hello"));
program.addStatement(buildStatement("skriv", "world"));
@@ -45,13 +46,13 @@ class IRGeneratorTest {
}
private Program buildProgram(String functionName, String argument) {
- Program program = new Program();
+ Program program = new Program(null);
program.addStatement(buildStatement(functionName, argument));
return program;
}
private ExpressionStatement buildStatement(String functionName, String argument) {
- FunctionCall call = new FunctionCall(functionName, List.of(new StringLiteral(argument)));
- return new ExpressionStatement(call);
+ FunctionCall call = new FunctionCall(null, functionName, List.of(new StringLiteral(null, argument)));
+ return new ExpressionStatement(null, call);
}
}
diff --git a/src/test/java/no/eliashaugsbakk/kompilator/parsing/ParserTest.java b/src/test/java/no/eliashaugsbakk/kompilator/parsing/ParserTest.java
index 0de2b5f..e4d48ec 100644
--- a/src/test/java/no/eliashaugsbakk/kompilator/parsing/ParserTest.java
+++ b/src/test/java/no/eliashaugsbakk/kompilator/parsing/ParserTest.java
@@ -12,6 +12,7 @@ import no.eliashaugsbakk.kompilator.parsing.node.Program;
import no.eliashaugsbakk.kompilator.parsing.node.expression.FunctionCall;
import no.eliashaugsbakk.kompilator.parsing.node.expression.literal.StringLiteral;
import no.eliashaugsbakk.kompilator.parsing.node.statement.ExpressionStatement;
+import no.eliashaugsbakk.kompilator.tokenization.Position;
import no.eliashaugsbakk.kompilator.tokenization.Token;
import org.junit.jupiter.api.Test;
@@ -20,11 +21,11 @@ class ParserTest {
@Test
void validSyntaxBuildsCorrectTree() throws ParserException {
List<Token> tokens = List.of(
- new Token(KEYWORD, "skriv", 1, 0),
- new Token(LPAREN, "(", 1, 5),
- new Token(STRING_LITERAL, "Hello", 1, 6),
- new Token(RPAREN, ")", 1, 13),
- new Token(SEMICOLON, ";", 1, 14)
+ new Token(KEYWORD, "skriv", new Position(1, 0)),
+ new Token(LPAREN, "(", new Position(1, 5)),
+ new Token(STRING_LITERAL, "Hello", new Position(1, 6)),
+ new Token(RPAREN, ")", new Position(1, 13)),
+ new Token(SEMICOLON, ";", new Position(1, 14))
);
AST ast = new Parser(tokens).parse();
@@ -47,10 +48,10 @@ class ParserTest {
@Test
void missingSemicolonThrows() {
List<Token> tokens = List.of(
- new Token(KEYWORD, "print", 1, 0),
- new Token(LPAREN, "(", 1, 5),
- new Token(STRING_LITERAL, "Hello", 1, 6),
- new Token(RPAREN, ")", 1, 13)
+ new Token(KEYWORD, "print", new Position(1, 0)),
+ new Token(LPAREN, "(", new Position(1, 5)),
+ new Token(STRING_LITERAL, "Hello", new Position(1, 6)),
+ new Token(RPAREN, ")", new Position(1, 13))
);
assertThrows(ParserException.class, () -> new Parser(tokens).parse());
@@ -59,10 +60,10 @@ class ParserTest {
@Test
void missingParenthesisThrows() {
List<Token> tokens = List.of(
- new Token(KEYWORD, "print", 1, 0),
- new Token(STRING_LITERAL, "Hello", 1, 5),
- new Token(RPAREN, ")", 1, 12),
- new Token(SEMICOLON, ";", 1, 13)
+ new Token(KEYWORD, "print", new Position(1, 0)),
+ new Token(STRING_LITERAL, "Hello", new Position(1, 5)),
+ new Token(RPAREN, ")", new Position(1, 12)),
+ new Token(SEMICOLON, ";", new Position(1, 13))
);
assertThrows(ParserException.class, () -> new Parser(tokens).parse());
diff --git a/src/test/java/no/eliashaugsbakk/kompilator/semanticAnalysis/AnalyzerTest.java b/src/test/java/no/eliashaugsbakk/kompilator/semanticAnalysis/AnalyzerTest.java
index 13827e4..7d26017 100644
--- a/src/test/java/no/eliashaugsbakk/kompilator/semanticAnalysis/AnalyzerTest.java
+++ b/src/test/java/no/eliashaugsbakk/kompilator/semanticAnalysis/AnalyzerTest.java
@@ -31,17 +31,17 @@ class AnalyzerTest {
}
private AST buildAST(String functionName, String argument) {
- FunctionCall call = new FunctionCall(functionName, List.of(new StringLiteral(argument)));
- ExpressionStatement stmt = new ExpressionStatement(call);
- Program program = new Program();
+ FunctionCall call = new FunctionCall(null, functionName, List.of(new StringLiteral(null, argument)));
+ ExpressionStatement stmt = new ExpressionStatement(null, call);
+ Program program = new Program(null);
program.addStatement(stmt);
return new AST(program);
}
private AST buildASTNoArgs(String functionName) {
- FunctionCall call = new FunctionCall(functionName, List.of());
- ExpressionStatement stmt = new ExpressionStatement(call);
- Program program = new Program();
+ FunctionCall call = new FunctionCall(null, functionName, List.of());
+ ExpressionStatement stmt = new ExpressionStatement(null, call);
+ Program program = new Program(null);
program.addStatement(stmt);
return new AST(program);
}
diff --git a/src/test/java/no/eliashaugsbakk/kompilator/tokenization/LexerTest.java b/src/test/java/no/eliashaugsbakk/kompilator/tokenization/LexerTest.java
index 85241ef..5ec47d8 100644
--- a/src/test/java/no/eliashaugsbakk/kompilator/tokenization/LexerTest.java
+++ b/src/test/java/no/eliashaugsbakk/kompilator/tokenization/LexerTest.java
@@ -23,8 +23,8 @@ class LexerTest {
List<Token> tokens = lexer.tokenize();
assertSame(KEYWORD, tokens.getFirst().type());
- assertEquals(1, tokens.get(0).line());
- assertEquals(1, tokens.get(0).column());
+ assertEquals(1, tokens.get(0).position().line());
+ assertEquals(1, tokens.get(0).position().column());
assertSame(LPAREN, tokens.get(1).type());