From 6f191f281230e0fa8b750b72213a34bb1f5d636b Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Tue, 25 Apr 2023 16:50:56 +0200 Subject: [PATCH] Replace custom Ast2String with ASTProlog from B parser The AST form is only used for comparisons in tests, so the exact format doesn't matter. --- src/test/java/de/tla2b/util/Ast2String.java | 66 --------------------- src/test/java/de/tla2b/util/TestUtil.java | 27 ++++----- 2 files changed, 11 insertions(+), 82 deletions(-) delete mode 100644 src/test/java/de/tla2b/util/Ast2String.java diff --git a/src/test/java/de/tla2b/util/Ast2String.java b/src/test/java/de/tla2b/util/Ast2String.java deleted file mode 100644 index 1aa9582..0000000 --- a/src/test/java/de/tla2b/util/Ast2String.java +++ /dev/null @@ -1,66 +0,0 @@ -package de.tla2b.util; - -import de.be4.classicalb.core.parser.node.Node; -import de.be4.classicalb.core.parser.node.Start; -import de.be4.classicalb.core.parser.node.Token; - -public class Ast2String extends ExtendedDFAdapter { - private final StringBuilder builder = new StringBuilder(); - - @Override - public String toString() { - return builder.toString(); - } - - @Override - public void defaultIn(final Node node) { - super.defaultIn(node); - builder.append(node.getClass().getSimpleName()); - builder.append("("); - } - - @Override - public void defaultCase(final Node node) { - super.defaultCase(node); - if (node instanceof Token) { - builder.append(((Token) node).getText()); - } else { - builder.append(node.toString()); - } - - } - - @Override - public void defaultOut(final Node node) { - super.defaultOut(node); - builder.append(")"); - } - - @Override - public void beginList(final Node parent) { - builder.append('['); - } - - @Override - public void betweenListElements(final Node parent) { - builder.append(','); - } - - @Override - public void endList(final Node parent) { - builder.append(']'); - } - - @Override - public void betweenChildren(final Node parent) { - builder.append(','); - } - - @Override - public void caseStart(final Start node) { - inStart(node); - node.getPParseUnit().apply(this); - node.getEOF().apply(this); - outStart(node); - } -} diff --git a/src/test/java/de/tla2b/util/TestUtil.java b/src/test/java/de/tla2b/util/TestUtil.java index 66b8825..02f9755 100644 --- a/src/test/java/de/tla2b/util/TestUtil.java +++ b/src/test/java/de/tla2b/util/TestUtil.java @@ -1,19 +1,22 @@ package de.tla2b.util; -import static org.junit.Assert.*; - -import util.FileUtil; import de.be4.classicalb.core.parser.BParser; +import de.be4.classicalb.core.parser.analysis.prolog.ASTProlog; import de.be4.classicalb.core.parser.exceptions.BCompoundException; import de.be4.classicalb.core.parser.node.Node; import de.be4.classicalb.core.parser.node.Start; +import de.prob.prolog.output.PrologTermStringOutput; import de.tla2b.exceptions.FrontEndException; import de.tla2b.exceptions.TLA2BException; import de.tla2b.output.ASTPrettyPrinter; import de.tla2b.output.Renamer; import de.tla2bAst.Translator; + +import util.FileUtil; import util.ToolIO; +import static org.junit.Assert.assertEquals; + public class TestUtil { public static void loadTlaFile(String tlaFile) throws Exception { @@ -84,9 +87,9 @@ public class TestUtil { } public static String getTreeAsString(Node node) { - final Ast2String ast2String = new Ast2String(); - node.apply(ast2String); - return ast2String.toString(); + final PrologTermStringOutput pout = new PrologTermStringOutput(); + node.apply(new ASTProlog(pout, null)); + return pout.toString(); } public static void renamerTest(String tlaFile) throws Exception { @@ -129,21 +132,13 @@ public class TestUtil { public static String getAstStringofBMachineString(final String testMachine) throws BCompoundException { final BParser parser = new BParser("testcase"); final Start startNode = parser.parse(testMachine, false); - - final Ast2String ast2String = new Ast2String(); - startNode.apply(ast2String); - final String string = ast2String.toString(); - return string; + return getTreeAsString(startNode); } public static String getAstStringofBExpressionString(final String expr) throws BCompoundException { final BParser parser = new BParser("testcase"); final Start startNode = parser.parse("#FORMULA " + expr, false); - - final Ast2String ast2String = new Ast2String(); - startNode.apply(ast2String); - final String string = ast2String.toString(); - return string; + return getTreeAsString(startNode); } } -- GitLab