From ebd4f7ca4e874883c419892ce1cdef88d9e0ca0f Mon Sep 17 00:00:00 2001 From: StefanZ3 Date: Thu, 20 Jun 2024 09:35:43 +0200 Subject: [PATCH] fix parameterList in ast --- src/main/java/astGenerator/ASTGenerator.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/astGenerator/ASTGenerator.java b/src/main/java/astGenerator/ASTGenerator.java index ab192db..b079acd 100644 --- a/src/main/java/astGenerator/ASTGenerator.java +++ b/src/main/java/astGenerator/ASTGenerator.java @@ -66,7 +66,10 @@ public class ASTGenerator extends DecafBaseVisitor { @Override public Node visitConstuctorDecl(DecafParser.ConstuctorDeclContext ctx) { String name = ctx.Identifier().getText(); - ParameterList parameterList = (ParameterList) visit(ctx.parameterList()); + ParameterList parameterList = new ParameterList(new ArrayList<>()); + if (ctx.parameterList() != null) { + parameterList = (ParameterList) visit(ctx.parameterList()); + } BlockStatement block = (BlockStatement) visitBlock(ctx.block()); return new MethodDecl("", null, name, parameterList, block); } @@ -76,8 +79,11 @@ public class ASTGenerator extends DecafBaseVisitor { String type; String name = ctx.Identifier().getText(); BlockStatement block = (BlockStatement) visitBlock(ctx.block()); - ParameterList parameterList = (ParameterList) visit(ctx.parameterList()); - if (ctx.Void() != null) { + ParameterList parameterList = new ParameterList(new ArrayList<>()); + if (ctx.parameterList() != null) { + parameterList = (ParameterList) visit(ctx.parameterList()); + } + if (ctx.Void() != null) { type = "void"; } else { type = ctx.type().getText();