diff --git a/src/main/java/semantic/SemanticAnalyzer.java b/src/main/java/semantic/SemanticAnalyzer.java index 828f74e..c0be3cf 100644 --- a/src/main/java/semantic/SemanticAnalyzer.java +++ b/src/main/java/semantic/SemanticAnalyzer.java @@ -309,9 +309,18 @@ public class SemanticAnalyzer implements SemanticVisitor { @Override public TypeCheckResult analyze(IfElseNode toCheck) { var resultIf = toCheck.ifStatement.accept(this); + var validElseIf = true; + + if(toCheck.elseIfStatements.size() != 0) { + for(IfNode ifNode : toCheck.elseIfStatements) { + var resultIfFor = ifNode.accept(this); + validElseIf = validElseIf && resultIfFor.isValid(); + } + } + if(toCheck.elseStatement != null){ var resultElse = toCheck.elseStatement.accept(this); - return new TypeCheckResult(resultIf.isValid() && resultElse.isValid(), new BaseType(TypeEnum.VOID)); + return new TypeCheckResult(resultIf.isValid() && resultElse.isValid() && validElseIf, new BaseType(TypeEnum.VOID)); }