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