Skip to content
This repository has been archived by the owner on Jul 10, 2024. It is now read-only.

Commit

Permalink
Gruppe 8: SymbolTableBuilder Integration Tests (#63)
Browse files Browse the repository at this point in the history
Added new integration tests for additive expression, atomic expression,
compare expression, logical expression, multiplicative expression and
prefix expression
  • Loading branch information
TadaXD20 authored Jun 3, 2024
1 parent 096b4ab commit d57b2c8
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.auberer.compilerdesignlectureproject.lexer.TokenType;
import com.auberer.compilerdesignlectureproject.reader.CodeLoc;
import com.auberer.compilerdesignlectureproject.reader.Reader;
import com.auberer.compilerdesignlectureproject.sema.SymbolTableBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -74,4 +75,17 @@ void additiveExprIntegrationTest() {
assertEquals(ASTAtomicExprNode.AtomicType.INT_LIT, additiveExpr.operands().getLast().operands().getFirst().operand().getExprType());
assertEquals(2, additiveExpr.operands().getLast().operands().getFirst().operand().getIntLit());
}

@Test
@DisplayName("Integration test")
void integrationTestSymbolTableBuilder() {
String code = "1 + 2";
Reader reader = new Reader(code);
Lexer lexer = new Lexer(reader, false);
Parser parser = new Parser(lexer);
ASTAdditiveExprNode additiveExpr = parser.parseAdditiveExpression();
SymbolTableBuilder symbolTableBuilder = new SymbolTableBuilder();

symbolTableBuilder.visitAdditiveExpr(additiveExpr);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.auberer.compilerdesignlectureproject.lexer.TokenType;
import com.auberer.compilerdesignlectureproject.reader.CodeLoc;
import com.auberer.compilerdesignlectureproject.reader.Reader;
import com.auberer.compilerdesignlectureproject.sema.SymbolTableBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -60,4 +61,17 @@ void atomicExprIntegrationTest() {
assertEquals(ASTAtomicExprNode.AtomicType.STRING_LIT, atomicExpr.getExprType());
assertEquals("Roethig", atomicExpr.getStringLit());
}

@Test
@DisplayName("Integration test")
void integrationTestSymbolTableBuilder() {
String code = "\"Roethig\"";
Reader reader = new Reader(code);
Lexer lexer = new Lexer(reader, false);
Parser parser = new Parser(lexer);
ASTAtomicExprNode atomicExpr = parser.parseAtomicExpression();
SymbolTableBuilder symbolTableBuilder = new SymbolTableBuilder();

symbolTableBuilder.visitAtomicExpr(atomicExpr);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.auberer.compilerdesignlectureproject.lexer.TokenType;
import com.auberer.compilerdesignlectureproject.reader.CodeLoc;
import com.auberer.compilerdesignlectureproject.reader.Reader;
import com.auberer.compilerdesignlectureproject.sema.SymbolTableBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -74,4 +75,17 @@ void compareExprIntegrationTest() {
assertEquals(ASTAtomicExprNode.AtomicType.INT_LIT, compareExpr.operands().getLast().operands().getFirst().operands().getFirst().operand().getExprType());
assertEquals(3, compareExpr.operands().getLast().operands().getFirst().operands().getFirst().operand().getIntLit());
}

@Test
@DisplayName("Integration test")
void integrationTestSymbolTableBuilder() {
String code = "2 != 3";
Reader reader = new Reader(code);
Lexer lexer = new Lexer(reader, false);
Parser parser = new Parser(lexer);
ASTCompareExprNode compareExpr = parser.parseCompareExpression();
SymbolTableBuilder symbolTableBuilder = new SymbolTableBuilder();

symbolTableBuilder.visitCompareExpr(compareExpr);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.auberer.compilerdesignlectureproject.lexer.TokenType;
import com.auberer.compilerdesignlectureproject.reader.CodeLoc;
import com.auberer.compilerdesignlectureproject.reader.Reader;
import com.auberer.compilerdesignlectureproject.sema.SymbolTableBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -74,4 +75,17 @@ void logicalExprIntegrationTest() {
assertEquals(ASTAtomicExprNode.AtomicType.IDENTIFIER, logicalExpr.operands().getLast().operands().getFirst().operands().getFirst().operands().getFirst().operand().getExprType());
assertEquals("b", logicalExpr.operands().getLast().operands().getFirst().operands().getFirst().operands().getFirst().operand().getIdentifier());
}

@Test
@DisplayName("Integration test")
void integrationTestSymbolTableBuilder() {
String code = "a && b";
Reader reader = new Reader(code);
Lexer lexer = new Lexer(reader, false);
Parser parser = new Parser(lexer);
ASTLogicalExprNode logicalExpr = parser.parseLogicalExpression();
SymbolTableBuilder symbolTableBuilder = new SymbolTableBuilder();

symbolTableBuilder.visitLogicalExpr(logicalExpr);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.auberer.compilerdesignlectureproject.lexer.TokenType;
import com.auberer.compilerdesignlectureproject.reader.CodeLoc;
import com.auberer.compilerdesignlectureproject.reader.Reader;
import com.auberer.compilerdesignlectureproject.sema.SymbolTableBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -74,4 +75,17 @@ void multiplicativeExprIntegrationTest() {
assertEquals(ASTAtomicExprNode.AtomicType.INT_LIT, multiplicativeExpr.operands().getLast().operand().getExprType());
assertEquals(3, multiplicativeExpr.operands().getLast().operand().getIntLit());
}

@Test
@DisplayName("Integration test")
void integrationTestSymbolTableBuilder() {
String code = "2 * 3";
Reader reader = new Reader(code);
Lexer lexer = new Lexer(reader, false);
Parser parser = new Parser(lexer);
ASTMultiplicativeExprNode multiplicativeExpr = parser.parseMultiplicativeExpression();
SymbolTableBuilder symbolTableBuilder = new SymbolTableBuilder();

symbolTableBuilder.visitMultiplicativeExpr(multiplicativeExpr);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.auberer.compilerdesignlectureproject.lexer.TokenType;
import com.auberer.compilerdesignlectureproject.reader.CodeLoc;
import com.auberer.compilerdesignlectureproject.reader.Reader;
import com.auberer.compilerdesignlectureproject.sema.SymbolTableBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -71,4 +72,17 @@ void prefixExprIntegrationTest() {
assertEquals(ASTAtomicExprNode.AtomicType.INT_LIT, prefixExpr.operand().getExprType());
assertEquals(4, prefixExpr.operand().getIntLit());
}

@Test
@DisplayName("Integration test")
void integrationTestSymbolTableBuilder() {
String code = "-4";
Reader reader = new Reader(code);
Lexer lexer = new Lexer(reader, false);
Parser parser = new Parser(lexer);
ASTPrefixExprNode prefixExpr = parser.parsePrefixExpression();
SymbolTableBuilder symbolTableBuilder = new SymbolTableBuilder();

symbolTableBuilder.visitPrefixExpr(prefixExpr);
}
}

0 comments on commit d57b2c8

Please sign in to comment.