diff --git a/src/main/java/de/prob/voparser/VOParser.java b/src/main/java/de/prob/voparser/VOParser.java index 4dad9b9d0c068086995d7b8f29698eecda093241..7285067b336a4346d0316e5f99b6de9b7a65bfd9 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 05b815cf1b4d0f4d89fa9efd669cf334b73b6de0..7da394aad928665c989a1e55f54ff8beb27595c6 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&"); } }