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