From c7dffcdcbbb3e6fda09cafb1f6756ec1211b38f9 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Fri, 25 Oct 2024 18:05:46 +0200 Subject: [PATCH] Update for simplified AST for record field identifiers --- src/main/java/de/tlc4b/analysis/MachineContext.java | 10 ---------- src/main/java/de/tlc4b/analysis/Typechecker.java | 9 +++------ src/main/java/de/tlc4b/btypes/StructType.java | 7 ++----- src/main/java/de/tlc4b/prettyprint/TLAPrinter.java | 4 ++-- 4 files changed, 7 insertions(+), 23 deletions(-) diff --git a/src/main/java/de/tlc4b/analysis/MachineContext.java b/src/main/java/de/tlc4b/analysis/MachineContext.java index 57e89bf..92de466 100644 --- a/src/main/java/de/tlc4b/analysis/MachineContext.java +++ b/src/main/java/de/tlc4b/analysis/MachineContext.java @@ -818,16 +818,6 @@ public class MachineContext extends DepthFirstAdapter { contextTable.remove(contextTable.size() - 1); } - @Override - public void caseARecEntry(ARecEntry node) { - node.getValue().apply(this); - } - - @Override - public void caseARecordFieldExpression(ARecordFieldExpression node) { - node.getRecord().apply(this); - } - public String getMachineName() { return machineName; } diff --git a/src/main/java/de/tlc4b/analysis/Typechecker.java b/src/main/java/de/tlc4b/analysis/Typechecker.java index 1f7c13e..b76c6da 100644 --- a/src/main/java/de/tlc4b/analysis/Typechecker.java +++ b/src/main/java/de/tlc4b/analysis/Typechecker.java @@ -2235,8 +2235,7 @@ public class Typechecker extends DepthFirstAdapter implements ITypechecker { setType(e.getValue(), new UntypedType()); e.getValue().apply(this); - AIdentifierExpression i = (AIdentifierExpression) e.getIdentifier(); - String name = Utils.getTIdentifierListAsString(i.getIdentifier()); + String name = e.getIdentifier().getText(); found.add(name, getType(e.getValue())); } BType expected = getType(node); @@ -2250,8 +2249,7 @@ public class Typechecker extends DepthFirstAdapter implements ITypechecker { @Override public void caseARecordFieldExpression(ARecordFieldExpression node) { StructType s = new StructType(); - AIdentifierExpression i = (AIdentifierExpression) node.getIdentifier(); - String fieldName = Utils.getTIdentifierListAsString(i.getIdentifier()); + String fieldName = node.getIdentifier().getText(); s.add(fieldName, new UntypedType()); setType(node.getRecord(), s); @@ -2277,8 +2275,7 @@ public class Typechecker extends DepthFirstAdapter implements ITypechecker { setType(e.getValue(), new SetType(new UntypedType())); e.getValue().apply(this); - AIdentifierExpression i = (AIdentifierExpression) e.getIdentifier(); - String name = Utils.getTIdentifierListAsString(i.getIdentifier()); + String name = e.getIdentifier().getText(); BType t = ((SetType) getType(e.getValue())).getSubtype(); s.add(name, t); } diff --git a/src/main/java/de/tlc4b/btypes/StructType.java b/src/main/java/de/tlc4b/btypes/StructType.java index 9ffc470..38c232b 100644 --- a/src/main/java/de/tlc4b/btypes/StructType.java +++ b/src/main/java/de/tlc4b/btypes/StructType.java @@ -7,14 +7,13 @@ import java.util.LinkedHashMap; import java.util.Map.Entry; import java.util.Set; -import de.be4.classicalb.core.parser.node.AIdentifierExpression; import de.be4.classicalb.core.parser.node.ARecEntry; import de.be4.classicalb.core.parser.node.AStructExpression; import de.be4.classicalb.core.parser.node.PExpression; import de.be4.classicalb.core.parser.node.PRecEntry; +import de.be4.classicalb.core.parser.node.TIdentifierLiteral; import de.tlc4b.analysis.Typechecker; import de.tlc4b.exceptions.UnificationException; -import de.tlc4b.util.UtilMethods; public class StructType extends AbstractHasFollowers { @@ -190,9 +189,7 @@ public class StructType extends AbstractHasFollowers { for (Entry<String, BType> entry : entrySet) { String name = entry.getKey(); BType type = entry.getValue(); - AIdentifierExpression id = UtilMethods.createAIdentifierExpression(name); - ARecEntry recEntry = new ARecEntry(id, - type.createASTNode(typechecker)); + ARecEntry recEntry = new ARecEntry(new TIdentifierLiteral(name), type.createASTNode(typechecker)); list.add(recEntry); } AStructExpression node = new AStructExpression(list); diff --git a/src/main/java/de/tlc4b/prettyprint/TLAPrinter.java b/src/main/java/de/tlc4b/prettyprint/TLAPrinter.java index f0e8325..7c6f951 100644 --- a/src/main/java/de/tlc4b/prettyprint/TLAPrinter.java +++ b/src/main/java/de/tlc4b/prettyprint/TLAPrinter.java @@ -2927,7 +2927,7 @@ public class TLAPrinter extends DepthFirstAdapter { @Override public void caseARecEntry(ARecEntry node) { - node.getIdentifier().apply(this); + moduleStringAppend(node.getIdentifier().getText()); if (typechecker.getType(node.parent()) instanceof StructType) { moduleStringAppend(" |-> "); } else { @@ -2942,7 +2942,7 @@ public class TLAPrinter extends DepthFirstAdapter { inARecordFieldExpression(node); node.getRecord().apply(this); moduleStringAppend("."); - node.getIdentifier().apply(this); + moduleStringAppend(node.getIdentifier().getText()); outARecordFieldExpression(node); } -- GitLab