From d89c085ecc92e5c262f416d8299c1106def61fd9 Mon Sep 17 00:00:00 2001 From: nitrix Date: Thu, 5 Mar 2020 16:23:10 +0100 Subject: [PATCH] implement context analysis for destructor node --- .../hsrm/compiler/Klang/ContextAnalysis.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java b/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java index b9c9da8..d9e6207 100644 --- a/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java +++ b/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java @@ -819,4 +819,22 @@ public class ContextAnalysis extends KlangBaseVisitor { result.col = col; return result; } + + @Override + public Node visitDestructorCallExpression(KlangParser.DestructorCallExpressionContext ctx) { + String name = ctx.IDENT().getText(); + int line = ctx.start.getLine(); + int col = ctx.start.getCharPositionInLine(); + + VariableDeclaration var = this.vars.get(name); + if (var == null) { + String error = "Variable with name \"" + name + "\" not defined."; + throw new RuntimeException(Helper.getErrorPrefix(line, col) + error); + } + + Node result = new DestructorCall(name); + result.line = line; + result.col = col; + return result; + } } \ No newline at end of file