From e2986b3d650d9185ffc873dd044b4d143a140e02 Mon Sep 17 00:00:00 2001 From: nitrix Date: Fri, 6 Mar 2020 00:18:48 +0100 Subject: [PATCH] add the struct name to the struct field access expression node --- src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java | 5 +++-- .../Klang/nodes/expressions/StructFieldAccessExpression.java | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java b/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java index 04fcfc6..d566828 100644 --- a/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java +++ b/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java @@ -289,14 +289,15 @@ public class ContextAnalysis extends KlangBaseVisitor { } // Get the type of the result of this expression + String structName = variableDef.type.getName(); Type resultType; try { - resultType = Helper.drillType(this.structs, variableDef.type.getName(), path, 0); + resultType = Helper.drillType(this.structs, structName, path, 0); } catch (Exception e) { throw new RuntimeException(Helper.getErrorPrefix(line, col) + e.getMessage()); } - Node result = new StructFieldAccessExpression(varName, path); + Node result = new StructFieldAccessExpression(varName, structName, path); result.type = resultType; result.line = line; result.col = col; diff --git a/src/main/java/de/hsrm/compiler/Klang/nodes/expressions/StructFieldAccessExpression.java b/src/main/java/de/hsrm/compiler/Klang/nodes/expressions/StructFieldAccessExpression.java index 438a5ce..73b9ac8 100644 --- a/src/main/java/de/hsrm/compiler/Klang/nodes/expressions/StructFieldAccessExpression.java +++ b/src/main/java/de/hsrm/compiler/Klang/nodes/expressions/StructFieldAccessExpression.java @@ -4,10 +4,12 @@ import de.hsrm.compiler.Klang.visitors.Visitor; public class StructFieldAccessExpression extends Expression { public String varName; + public String structName; public String[] path; - public StructFieldAccessExpression(String varName, String[] path) { + public StructFieldAccessExpression(String varName, String structName, String[] path) { this.varName = varName; + this.structName = structName; this.path = path; }