From 59d15b87cb15402c1c6495a9ffbc6912c2a3798a Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Mon, 6 May 2024 23:34:33 +0200
Subject: [PATCH] Make parse method static now that VOParser has no state
 anymore

---
 src/main/java/de/prob/voparser/VOParser.java     | 14 +++++---------
 src/test/java/de/prob/voparser/VOParserTest.java | 15 +++++----------
 2 files changed, 10 insertions(+), 19 deletions(-)

diff --git a/src/main/java/de/prob/voparser/VOParser.java b/src/main/java/de/prob/voparser/VOParser.java
index 4dad9b9..7285067 100644
--- a/src/main/java/de/prob/voparser/VOParser.java
+++ b/src/main/java/de/prob/voparser/VOParser.java
@@ -10,21 +10,18 @@ import de.prob.voparser.node.Start;
 import de.prob.voparser.parser.Parser;
 import de.prob.voparser.parser.ParserException;
 
-public class VOParser {
-	public VOParser() {}
-
-	public Start parseFormula(String formula) {
-		return parseAST(formula);
+public final class VOParser {
+	private VOParser() {
+		throw new AssertionError("Utility class");
 	}
 
-	public Start parseAST(String formula) {
+	public static Start parse(String formula) {
 		StringReader reader = new StringReader(formula);
 		PushbackReader r = new PushbackReader(reader);
 		Lexer l = new Lexer(r);
 		Parser p = new Parser(l);
-		Start ast = null;
 		try {
-			ast = p.parse();
+			return p.parse();
 		} catch (ParserException e) {
 			throw new VOParseException("Parsing VO formula failed at: " + e.getToken().getText(), e);
 		} catch (IOException e) {
@@ -32,6 +29,5 @@ public class VOParser {
 		} catch (LexerException e) {
 			throw new VOParseException("Parsing VO formula failed: " + e.getMessage(), e);
 		}
-		return ast;
 	}
 }
diff --git a/src/test/java/de/prob/voparser/VOParserTest.java b/src/test/java/de/prob/voparser/VOParserTest.java
index 05b815c..7da394a 100644
--- a/src/test/java/de/prob/voparser/VOParserTest.java
+++ b/src/test/java/de/prob/voparser/VOParserTest.java
@@ -12,33 +12,28 @@ public class VOParserTest {
 
 	@Test
 	public void testAtomic() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC1");
+		VOParser.parse("MC1");
 	}
 
 	@Test
 	public void testAnd() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC1 & TR1");
+		VOParser.parse("MC1 & TR1");
 	}
 
 	@Test
 	public void testOr() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC1 or TR1");
+		VOParser.parse("MC1 or TR1");
 	}
 
 	@Test
 	public void testDot() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC.1");
+		VOParser.parse("MC.1");
 	}
 
 
 	@Test(expected = VOParseException.class)
 	public void testParseError() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC.1&");
+		VOParser.parse("MC.1&");
 	}
 
 }
-- 
GitLab