From 24a15cb6a4644967f5c8bfdb033b86821b4020bf Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Wed, 2 Feb 2022 14:39:59 +0100
Subject: [PATCH] Replace NodeIdAssignment with INodeIds in TlaTypePrinter

NodeIdAssignment was recently removed from the B parser.
---
 .../java/de/tla2b/output/TlaTypePrinter.java  | 38 +++++++++----------
 1 file changed, 17 insertions(+), 21 deletions(-)

diff --git a/src/main/java/de/tla2b/output/TlaTypePrinter.java b/src/main/java/de/tla2b/output/TlaTypePrinter.java
index ac60b6a..210c4ac 100644
--- a/src/main/java/de/tla2b/output/TlaTypePrinter.java
+++ b/src/main/java/de/tla2b/output/TlaTypePrinter.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Hashtable;
 
-import de.be4.classicalb.core.parser.analysis.prolog.NodeIdAssignment;
+import de.be4.classicalb.core.parser.analysis.prolog.INodeIds;
 import de.be4.classicalb.core.parser.analysis.prolog.PositionPrinter;
 import de.be4.classicalb.core.parser.node.Node;
 import de.hhu.stups.sablecc.patch.PositionedNode;
@@ -14,13 +14,13 @@ import de.tla2b.types.BoolType;
 import de.tla2b.types.EnumType;
 import de.tla2b.types.FunctionType;
 import de.tla2b.types.IntType;
-import de.tla2b.types.TLAType;
 import de.tla2b.types.ModelValueType;
 import de.tla2b.types.PairType;
 import de.tla2b.types.SetType;
 import de.tla2b.types.StringType;
 import de.tla2b.types.StructOrFunctionType;
 import de.tla2b.types.StructType;
+import de.tla2b.types.TLAType;
 import de.tla2b.types.TupleType;
 import de.tla2b.types.UntypedType;
 
@@ -28,19 +28,15 @@ public class TlaTypePrinter implements PositionPrinter, TypeVisitorInterface {
 	private IPrologTermOutput pout;
 
 	// to look up the identifier of each node
-	public final NodeIdAssignment nodeIds;
+	public final INodeIds nodeIds;
 
 	private final Hashtable<Node, TLAType> typeTable;
 
 	private HashSet<PositionedNode> positions;
 
-	// public TlaTypePrinter(final NodeIdAssignment nodeIds) {
-	// this.nodeIds = nodeIds;
-	// }
-
-	public TlaTypePrinter(NodeIdAssignment nodeIdAssignment,
+	public TlaTypePrinter(INodeIds nodeIds,
 			Hashtable<Node, TLAType> typeTable) {
-		this.nodeIds = nodeIdAssignment;
+		this.nodeIds = nodeIds;
 		this.typeTable = typeTable;
 	}
 
@@ -55,19 +51,19 @@ public class TlaTypePrinter implements PositionPrinter, TypeVisitorInterface {
 		}
 
 		final Integer id = nodeIds.lookup(node);
-		if (id == null) {
-			pout.printAtom("none");
+		if (positions != null && positions.contains(node)) {
+			PositionedNode pNode = (PositionedNode) node;
+			pout.openTerm("pos", true);
+			pout.printNumber(id == null ? -1 : id);
+			pout.printNumber(nodeIds.lookupFileNumber(node));
+			pout.printNumber(pNode.getStartPos().getLine());
+			pout.printNumber(pNode.getStartPos().getPos());
+			pout.printNumber(pNode.getEndPos().getLine());
+			pout.printNumber(pNode.getEndPos().getPos());
+			pout.closeTerm();
 		} else {
-			if (positions != null && positions.contains(node)) {
-				PositionedNode pNode = (PositionedNode) node;
-				pout.openTerm("pos", true);
-				pout.printNumber(id);
-				pout.printNumber(nodeIds.lookupFileNumber(node));
-				pout.printNumber(pNode.getStartPos().getLine());
-				pout.printNumber(pNode.getStartPos().getPos());
-				pout.printNumber(pNode.getEndPos().getLine());
-				pout.printNumber(pNode.getEndPos().getPos());
-				pout.closeTerm();
+			if (id == null) {
+				pout.printAtom("none");
 			} else {
 				pout.printNumber(id);
 			}
-- 
GitLab