From 01c95f485b294db81f3c99a037e003929f0eb278 Mon Sep 17 00:00:00 2001 From: Elias Haugsbakk Date: Sun, 20 Sep 2026 23:54:32 +0200 Subject: fix code warnings --- .../kompilator/semanticAnalysis/Analyzer.java | 34 +++++----------------- 1 file changed, 8 insertions(+), 26 deletions(-) (limited to 'src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java') diff --git a/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java b/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java index 7d301ed..3c775d6 100644 --- a/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java +++ b/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java @@ -16,14 +16,14 @@ import no.eliashaugsbakk.kompilator.parsing.node.statement.Statement; public class Analyzer { private final AST ast; - private Map symbolTable = new HashMap<>(); + private final Map symbolTable = new HashMap<>(); public Analyzer(AST ast) { this.ast = ast; } public void analyze() throws SemanticException { - Program program = (Program) ast.getRoot(); + Program program = (Program) ast.root(); for (Statement stmt : program.statements) { analyzeStatement(stmt); @@ -31,14 +31,11 @@ public class Analyzer { } private void analyzeStatement(Statement stmt) throws SemanticException { - if (stmt instanceof ExpressionStatement exprStmt) { - typeOf(exprStmt.expression); - } else if (stmt instanceof Assignment assignment) { - analyzeAssignment(assignment); - } else if (stmt instanceof IdentifierDeclaration decl) { - analyzeIdentifierDeclaration(decl); - } else { - throw new SemanticException("Unrecognized statement"); + switch (stmt) { + case ExpressionStatement exprStmt -> typeOf(exprStmt.expression); + case Assignment assignment -> analyzeAssignment(assignment); + case IdentifierDeclaration decl -> analyzeIdentifierDeclaration(decl); + case null, default -> throw new SemanticException("Unrecognized statement"); } } @@ -102,21 +99,6 @@ public class Analyzer { symbol.initialized = true; } - /** - * Analyzes identifier usage (variable reference). - */ - private void analyzeIdentifier(Identifier identifier) throws SemanticException { - // Check if identifier is declared - if (!symbolTable.containsKey(identifier.name)) { - throw new SemanticException("Identifier does not exist: " + identifier.name); - } - - // Check if identifier is initialized - if (!symbolTable.get(identifier.name).initialized) { - throw new SemanticException("Identifier is not initialized: " + identifier.name); - } - } - /** * Analyzes function call. */ @@ -165,7 +147,7 @@ public class Analyzer { private Type typeOf(Expression expr) throws SemanticException { switch (expr) { case null -> throw new SemanticException("Expression cannot be null"); - case StringLiteral stringLiteral -> { + case StringLiteral _ -> { return new Type("string", false); } case Identifier id -> { -- cgit v1.2.3