From d2a88f60d0f2974d1524fb97fe33d09f09bd02e3 Mon Sep 17 00:00:00 2001
From: Jan Gruteser <jan.gruteser@hhu.de>
Date: Fri, 20 Dec 2024 09:12:23 +0100
Subject: [PATCH] use only one Start in BAstCreator

---
 src/main/java/de/tla2bAst/BAstCreator.java          | 12 +++---------
 src/main/java/de/tla2bAst/ExpressionTranslator.java | 10 ++--------
 2 files changed, 5 insertions(+), 17 deletions(-)

diff --git a/src/main/java/de/tla2bAst/BAstCreator.java b/src/main/java/de/tla2bAst/BAstCreator.java
index 50ac77d..4cedf8b 100644
--- a/src/main/java/de/tla2bAst/BAstCreator.java
+++ b/src/main/java/de/tla2bAst/BAstCreator.java
@@ -43,15 +43,13 @@ public class BAstCreator extends BuiltInOPs
 
 	private final Definitions bDefinitions = new Definitions();
 
-	private Start start;
+	private final Start start;
 	private final Map<Node, TLAType> types = new HashMap<>();
 	private final Set<PositionedNode> sourcePosition = new HashSet<>();
 	private final NodeFileNumbers nodeFileNumbers = new NodeFileNumbers();
 	private final List<String> filesOrderedById = new ArrayList<>();
 	private List<String> toplevelUnchangedVariableNames = new ArrayList<>();
 
-	public Start expressionStart;
-
 	/**
 	 * Creates a B AST node for a TLA expression
 	 */
@@ -64,13 +62,9 @@ public class BAstCreator extends BuiltInOPs
 
 		ExprNode expr = moduleNode.getOpDefs()[moduleNode.getOpDefs().length - 1].getBody();
 		if (expressionIsAPredicate(expr)) {
-			APredicateParseUnit predicateParseUnit = new APredicateParseUnit();
-			predicateParseUnit.setPredicate(visitExprNodePredicate(expr));
-			expressionStart = new Start(predicateParseUnit, new EOF());
+			start = new Start(new APredicateParseUnit(visitExprNodePredicate(expr)), new EOF());
 		} else {
-			AExpressionParseUnit expressionParseUnit = new AExpressionParseUnit();
-			expressionParseUnit.setExpression(visitExprNodeExpression(expr));
-			expressionStart = new Start(expressionParseUnit, new EOF());
+			start = new Start(new AExpressionParseUnit(visitExprNodeExpression(expr)), new EOF());
 		}
 	}
 
diff --git a/src/main/java/de/tla2bAst/ExpressionTranslator.java b/src/main/java/de/tla2bAst/ExpressionTranslator.java
index f22e254..d16ad39 100644
--- a/src/main/java/de/tla2bAst/ExpressionTranslator.java
+++ b/src/main/java/de/tla2bAst/ExpressionTranslator.java
@@ -134,10 +134,7 @@ public class ExpressionTranslator implements SyntaxTreeConstants {
 			throw new ExpressionTranslationException(message);
 		}
 		SymbolRenamer.run(moduleNode, specAnalyser);
-		BAstCreator bASTCreator = new BAstCreator(moduleNode, specAnalyser);
-
-		this.expressionStart = bASTCreator.expressionStart;
-		return this.expressionStart;
+		return this.expressionStart = new BAstCreator(moduleNode, specAnalyser).getStartNode();
 	}
 
 	public Start translateWithoutModel() {
@@ -151,10 +148,7 @@ public class ExpressionTranslator implements SyntaxTreeConstants {
 			throw new ExpressionTranslationException(message);
 		}
 		SymbolRenamer.run(moduleNode, specAnalyser);
-		BAstCreator bASTCreator = new BAstCreator(moduleNode, specAnalyser);
-
-		this.expressionStart = bASTCreator.expressionStart;
-		return this.expressionStart;
+		return this.expressionStart = new BAstCreator(moduleNode, specAnalyser).getStartNode();
 	}
 
 	@Deprecated
-- 
GitLab