Skip to content
Snippets Groups Projects
Commit c7dffcdc authored by dgelessus's avatar dgelessus
Browse files

Update for simplified AST for record field identifiers

parent 3d7b3557
No related branches found
No related tags found
No related merge requests found
Pipeline #144783 passed
...@@ -818,16 +818,6 @@ public class MachineContext extends DepthFirstAdapter { ...@@ -818,16 +818,6 @@ public class MachineContext extends DepthFirstAdapter {
contextTable.remove(contextTable.size() - 1); 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() { public String getMachineName() {
return machineName; return machineName;
} }
......
...@@ -2235,8 +2235,7 @@ public class Typechecker extends DepthFirstAdapter implements ITypechecker { ...@@ -2235,8 +2235,7 @@ public class Typechecker extends DepthFirstAdapter implements ITypechecker {
setType(e.getValue(), new UntypedType()); setType(e.getValue(), new UntypedType());
e.getValue().apply(this); e.getValue().apply(this);
AIdentifierExpression i = (AIdentifierExpression) e.getIdentifier(); String name = e.getIdentifier().getText();
String name = Utils.getTIdentifierListAsString(i.getIdentifier());
found.add(name, getType(e.getValue())); found.add(name, getType(e.getValue()));
} }
BType expected = getType(node); BType expected = getType(node);
...@@ -2250,8 +2249,7 @@ public class Typechecker extends DepthFirstAdapter implements ITypechecker { ...@@ -2250,8 +2249,7 @@ public class Typechecker extends DepthFirstAdapter implements ITypechecker {
@Override @Override
public void caseARecordFieldExpression(ARecordFieldExpression node) { public void caseARecordFieldExpression(ARecordFieldExpression node) {
StructType s = new StructType(); StructType s = new StructType();
AIdentifierExpression i = (AIdentifierExpression) node.getIdentifier(); String fieldName = node.getIdentifier().getText();
String fieldName = Utils.getTIdentifierListAsString(i.getIdentifier());
s.add(fieldName, new UntypedType()); s.add(fieldName, new UntypedType());
setType(node.getRecord(), s); setType(node.getRecord(), s);
...@@ -2277,8 +2275,7 @@ public class Typechecker extends DepthFirstAdapter implements ITypechecker { ...@@ -2277,8 +2275,7 @@ public class Typechecker extends DepthFirstAdapter implements ITypechecker {
setType(e.getValue(), new SetType(new UntypedType())); setType(e.getValue(), new SetType(new UntypedType()));
e.getValue().apply(this); e.getValue().apply(this);
AIdentifierExpression i = (AIdentifierExpression) e.getIdentifier(); String name = e.getIdentifier().getText();
String name = Utils.getTIdentifierListAsString(i.getIdentifier());
BType t = ((SetType) getType(e.getValue())).getSubtype(); BType t = ((SetType) getType(e.getValue())).getSubtype();
s.add(name, t); s.add(name, t);
} }
......
...@@ -7,14 +7,13 @@ import java.util.LinkedHashMap; ...@@ -7,14 +7,13 @@ import java.util.LinkedHashMap;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set; 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.ARecEntry;
import de.be4.classicalb.core.parser.node.AStructExpression; import de.be4.classicalb.core.parser.node.AStructExpression;
import de.be4.classicalb.core.parser.node.PExpression; import de.be4.classicalb.core.parser.node.PExpression;
import de.be4.classicalb.core.parser.node.PRecEntry; import de.be4.classicalb.core.parser.node.PRecEntry;
import de.be4.classicalb.core.parser.node.TIdentifierLiteral;
import de.tlc4b.analysis.Typechecker; import de.tlc4b.analysis.Typechecker;
import de.tlc4b.exceptions.UnificationException; import de.tlc4b.exceptions.UnificationException;
import de.tlc4b.util.UtilMethods;
public class StructType extends AbstractHasFollowers { public class StructType extends AbstractHasFollowers {
...@@ -190,9 +189,7 @@ public class StructType extends AbstractHasFollowers { ...@@ -190,9 +189,7 @@ public class StructType extends AbstractHasFollowers {
for (Entry<String, BType> entry : entrySet) { for (Entry<String, BType> entry : entrySet) {
String name = entry.getKey(); String name = entry.getKey();
BType type = entry.getValue(); BType type = entry.getValue();
AIdentifierExpression id = UtilMethods.createAIdentifierExpression(name); ARecEntry recEntry = new ARecEntry(new TIdentifierLiteral(name), type.createASTNode(typechecker));
ARecEntry recEntry = new ARecEntry(id,
type.createASTNode(typechecker));
list.add(recEntry); list.add(recEntry);
} }
AStructExpression node = new AStructExpression(list); AStructExpression node = new AStructExpression(list);
......
...@@ -2927,7 +2927,7 @@ public class TLAPrinter extends DepthFirstAdapter { ...@@ -2927,7 +2927,7 @@ public class TLAPrinter extends DepthFirstAdapter {
@Override @Override
public void caseARecEntry(ARecEntry node) { public void caseARecEntry(ARecEntry node) {
node.getIdentifier().apply(this); moduleStringAppend(node.getIdentifier().getText());
if (typechecker.getType(node.parent()) instanceof StructType) { if (typechecker.getType(node.parent()) instanceof StructType) {
moduleStringAppend(" |-> "); moduleStringAppend(" |-> ");
} else { } else {
...@@ -2942,7 +2942,7 @@ public class TLAPrinter extends DepthFirstAdapter { ...@@ -2942,7 +2942,7 @@ public class TLAPrinter extends DepthFirstAdapter {
inARecordFieldExpression(node); inARecordFieldExpression(node);
node.getRecord().apply(this); node.getRecord().apply(this);
moduleStringAppend("."); moduleStringAppend(".");
node.getIdentifier().apply(this); moduleStringAppend(node.getIdentifier().getText());
outARecordFieldExpression(node); outARecordFieldExpression(node);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment