From 6dbc1fe4fb205bd4725a19055ea560507479369e Mon Sep 17 00:00:00 2001 From: nitrix Date: Mon, 11 Nov 2019 11:46:05 +0100 Subject: [PATCH] implement visitors for block and braced_block --- .../hsrm/compiler/Klang/ContextAnalysis.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java b/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java index fa7292e..ce4e407 100644 --- a/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java +++ b/src/main/java/de/hsrm/compiler/Klang/ContextAnalysis.java @@ -6,6 +6,29 @@ import de.hsrm.compiler.Klang.nodes.statements.*; import de.hsrm.compiler.Klang.types.Type; public class ContextAnalysis extends KlangBaseVisitor { + @Override + public Node visitBlock(KlangParser.BlockContext ctx) { + Statement[] statements = new Statement[ctx.statement().size()]; + + for (int i = 0; i < ctx.statement().size(); i++) { + Node currentStatement = this.visit(ctx.statement(i)); + statements[i] = (Statement) currentStatement; + } + + return new Block(statements); + } + + @Override + public Node visitBraced_block(KlangParser.Braced_blockContext ctx) { + Statement[] statements = new Statement[ctx.statement().size()]; + + for (int i = 0; i < ctx.statement().size(); i++) { + Node currentStatement = this.visit(ctx.statement(i)); + statements[i] = (Statement) currentStatement; + } + + return new Block(statements); + } @Override public Node visitPrint(KlangParser.PrintContext ctx) {