From 6633e58de9417766181051bf388233a9d3c94edc Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Fri, 25 Oct 2024 17:39:05 +0200
Subject: [PATCH] Update for simplified AST for record field identifiers

---
 src/main/java/de/tla2b/types/StructType.java |  3 +--
 src/main/java/de/tla2bAst/BAstCreator.java   | 23 +++++++++-----------
 2 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/src/main/java/de/tla2b/types/StructType.java b/src/main/java/de/tla2b/types/StructType.java
index f11cf84..833651e 100644
--- a/src/main/java/de/tla2b/types/StructType.java
+++ b/src/main/java/de/tla2b/types/StructType.java
@@ -3,7 +3,6 @@ package de.tla2b.types;
 import de.be4.classicalb.core.parser.node.*;
 import de.tla2b.exceptions.UnificationException;
 import de.tla2b.output.TypeVisitorInterface;
-import de.tla2bAst.BAstCreator;
 
 import java.util.*;
 import java.util.Map.Entry;
@@ -189,7 +188,7 @@ public class StructType extends AbstractHasFollowers {
 		List<PRecEntry> recList = new ArrayList<>();
 		for (Entry<String, TLAType> entry : types.entrySet()) {
 			ARecEntry rec = new ARecEntry();
-			rec.setIdentifier(BAstCreator.createIdentifierNode(entry.getKey()));
+			rec.setIdentifier(new TIdentifierLiteral(entry.getKey()));
 			if (extensible) {
 
 				AMultOrCartExpression cart = new AMultOrCartExpression();
diff --git a/src/main/java/de/tla2bAst/BAstCreator.java b/src/main/java/de/tla2bAst/BAstCreator.java
index 245110d..52fa504 100644
--- a/src/main/java/de/tla2bAst/BAstCreator.java
+++ b/src/main/java/de/tla2bAst/BAstCreator.java
@@ -676,7 +676,7 @@ public class BAstCreator extends BuiltInOPs
 			StringNode stringNode = (StringNode) list.poll();
 			// TODO rename field name
 			String fieldName = stringNode.getRep().toString();
-			select.setIdentifier(createIdentifierNode(fieldName));
+			select.setIdentifier(new TIdentifierLiteral(fieldName));
 			return evalAtNode(list, structType.getType(fieldName), select);
 		}
 	}
@@ -1531,9 +1531,8 @@ public class BAstCreator extends BuiltInOPs
 				if (struct.isExtensible()) {
 					for (int i = 0; i < struct.getFields().size(); i++) {
 						String fieldName = struct.getFields().get(i); // name
-						AIdentifierExpression field = createIdentifierNode(fieldName);
 						ARecEntry rec = new ARecEntry();
-						rec.setIdentifier(field);
+						rec.setIdentifier(new TIdentifierLiteral(fieldName));
 						AMultOrCartExpression cart = new AMultOrCartExpression();
 						cart.setLeft(new ABoolSetExpression());
 						if (pairTable.containsKey(fieldName)) {
@@ -1547,9 +1546,8 @@ public class BAstCreator extends BuiltInOPs
 				} else {
 					for (int i = 0; i < struct.getFields().size(); i++) {
 						String fieldName = struct.getFields().get(i);
-						AIdentifierExpression field = createIdentifierNode(fieldName);
 						ARecEntry rec = new ARecEntry();
-						rec.setIdentifier(field);
+						rec.setIdentifier(new TIdentifierLiteral(fieldName));
 						if (pairTable.containsKey(fieldName)) {
 							rec.setValue(pairTable.get(fieldName));
 						} else {
@@ -1576,7 +1574,7 @@ public class BAstCreator extends BuiltInOPs
 					for (int i = 0; i < struct.getFields().size(); i++) {
 						String fieldName = struct.getFields().get(i);
 						ARecEntry rec = new ARecEntry();
-						rec.setIdentifier(createIdentifierNode(fieldName));
+						rec.setIdentifier(new TIdentifierLiteral(fieldName));
 						if (pairTable.containsKey(fieldName)) {
 							ACoupleExpression couple = new ACoupleExpression(Arrays.asList(
 									new ABooleanTrueExpression(), pairTable.get(fieldName)));
@@ -1600,9 +1598,8 @@ public class BAstCreator extends BuiltInOPs
 					List<PRecEntry> recList = new ArrayList<>();
 					for (int i = 0; i < struct.getFields().size(); i++) {
 						String fieldName = struct.getFields().get(i);
-						AIdentifierExpression field = createIdentifierNode(fieldName);
 						ARecEntry rec = new ARecEntry();
-						rec.setIdentifier(field);
+						rec.setIdentifier(new TIdentifierLiteral(fieldName));
 						if (pairTable.containsKey(fieldName)) {
 							rec.setValue(pairTable.get(fieldName));
 						} else {
@@ -1622,7 +1619,7 @@ public class BAstCreator extends BuiltInOPs
 					ARecordFieldExpression rcdSelect = new ARecordFieldExpression();
 					rcdSelect.setRecord(visitExprOrOpArgNodeExpression(n.getArgs()[0]));
 					StringNode stringNode = (StringNode) n.getArgs()[1];
-					rcdSelect.setIdentifier(createIdentifierNode(stringNode.getRep().toString()));
+					rcdSelect.setIdentifier(new TIdentifierLiteral(stringNode.getRep().toString()));
 					AFunctionExpression funcCall = new AFunctionExpression();
 					funcCall.setIdentifier(rcdSelect);
 					funcCall.setParameters(Collections.singletonList(new ABooleanTrueExpression()));
@@ -1631,7 +1628,7 @@ public class BAstCreator extends BuiltInOPs
 					ARecordFieldExpression rcdSelect = new ARecordFieldExpression();
 					rcdSelect.setRecord(visitExprOrOpArgNodeExpression(n.getArgs()[0]));
 					StringNode stringNode = (StringNode) n.getArgs()[1];
-					rcdSelect.setIdentifier(createIdentifierNode(stringNode.getRep().toString()));
+					rcdSelect.setIdentifier(new TIdentifierLiteral(stringNode.getRep().toString()));
 					return rcdSelect;
 				}
 			}
@@ -1801,12 +1798,12 @@ public class BAstCreator extends BuiltInOPs
 			for (int i = 0; i < structType.getFields().size(); i++) {
 				ARecEntry entry = new ARecEntry();
 				String fieldName = structType.getFields().get(i);
-				entry.setIdentifier(createIdentifierNode(fieldName));
+				entry.setIdentifier(new TIdentifierLiteral(fieldName));
 
 				PExpression value;
 				ARecordFieldExpression select = new ARecordFieldExpression();
 				select.setRecord(prefix.clone());
-				select.setIdentifier(createIdentifierNode(fieldName));
+				select.setIdentifier(new TIdentifierLiteral(fieldName));
 				if (fieldName.equals(field)) {
 					value = evalExceptValue(select, seqList, structType.getType(fieldName), val);
 				} else {
@@ -2119,7 +2116,7 @@ public class BAstCreator extends BuiltInOPs
 				ARecordFieldExpression rcdSelect = new ARecordFieldExpression();
 				rcdSelect.setRecord(visitExprOrOpArgNodeExpression(n.getArgs()[0]));
 				StringNode stringNode = (StringNode) n.getArgs()[1];
-				rcdSelect.setIdentifier(createIdentifierNode(stringNode.getRep().toString()));
+				rcdSelect.setIdentifier(new TIdentifierLiteral(stringNode.getRep().toString()));
 				returnNode = new AEqualPredicate(rcdSelect, new ABooleanTrueExpression());
 				break;
 			}
-- 
GitLab