From 095f69f18d5f62f795a48b522395bcdc2387e193 Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Wed, 25 Jan 2023 11:33:56 +0100
Subject: [PATCH] Throw check exceptions immediately when an error is
 encountered

This is possible now that the exceptions are unchecked.
---
 src/main/java/de/prob/voparser/VOScopeChecker.java | 8 +-------
 src/main/java/de/prob/voparser/VOTypeChecker.java  | 8 +-------
 2 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/src/main/java/de/prob/voparser/VOScopeChecker.java b/src/main/java/de/prob/voparser/VOScopeChecker.java
index e6d97dc..7c370c5 100644
--- a/src/main/java/de/prob/voparser/VOScopeChecker.java
+++ b/src/main/java/de/prob/voparser/VOScopeChecker.java
@@ -9,24 +9,18 @@ public class VOScopeChecker extends DepthFirstAdapter {
 
 	private final VOParser voParser;
 
-	private boolean error;
-
 	public VOScopeChecker(VOParser voParser) {
 		this.voParser = voParser;
-		this.error = false;
 	}
 
 	public void scopeCheck(Start start) {
 		start.apply(this);
-		if(error) {
-			throw new VOScopeCheckException("Scope error in VO");
-		}
 	}
 
 	@Override
 	public void caseAIdentifierVo(AIdentifierVo node) {
 		if (!voParser.getTasks().containsKey(node.getIdentifierLiteral().getText())) {
-			error = true;
+			throw new VOScopeCheckException("Scope error in VO");
 		}
 	}
 
diff --git a/src/main/java/de/prob/voparser/VOTypeChecker.java b/src/main/java/de/prob/voparser/VOTypeChecker.java
index 177a5b7..ddba43f 100644
--- a/src/main/java/de/prob/voparser/VOTypeChecker.java
+++ b/src/main/java/de/prob/voparser/VOTypeChecker.java
@@ -14,21 +14,15 @@ public class VOTypeChecker extends DepthFirstAdapter {
 
 	private final VOParser voParser;
 
-	private boolean error;
-
 	private PersistentHashSet<AnimatorState> modifiedAnimatorState;
 
 	public VOTypeChecker(VOParser voParser) {
 		this.voParser = voParser;
-		this.error = false;
 		this.modifiedAnimatorState = PersistentHashSet.create(AnimatorState.STATE_SPACE, AnimatorState.TRACE);
 	}
 
 	public void typeCheck(Start start) {
 		start.apply(this);
-		if (error) {
-			throw new VOTypeCheckException("Type error in VO");
-		}
 	}
 
 	private PersistentHashSet<AnimatorState> visitVOExpression(Node node, PersistentHashSet<AnimatorState> animatorState) {
@@ -129,7 +123,7 @@ public class VOTypeChecker extends DepthFirstAdapter {
 				break;
 		}
 		if(!valid) {
-			error = true;
+			throw new VOTypeCheckException("Type error in VO");
 		}
 		return newAnimatorState;
 	}
-- 
GitLab