From bde0e154ee5d39974ceb90f8519bc385b5e1eca5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammed=20Yasinhan=20Ya=C5=9Far?= Date: Mon, 19 May 2025 21:27:22 +0300 Subject: [PATCH 1/2] new hsetof func used for user defined types' fields --- src/tile/ast/stmt/VariableAssignment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tile/ast/stmt/VariableAssignment.java b/src/tile/ast/stmt/VariableAssignment.java index 20969e6..f34c204 100644 --- a/src/tile/ast/stmt/VariableAssignment.java +++ b/src/tile/ast/stmt/VariableAssignment.java @@ -76,7 +76,7 @@ else if (typeInfo.var_type.equals("float") && typeInfo.expr_type.equals("int")) // FIXME: fix here hset created for arrays generatedCode += " push " + offset + "\n"; generatedCode += " push " + type_size + "\n"; - generatedCode += " hset\n"; + generatedCode += " hsetof\n"; } else if (typeInfo.info_array != null) { if (isGlobal) { generatedCode += " gload " + tasmIdx + "\n"; From 0ef048e94344ba10483a167e71fddc3bcc1abd3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Muhammed=20Yasinhan=20Ya=C5=9Far?= Date: Mon, 19 May 2025 22:58:03 +0300 Subject: [PATCH 2/2] cast expression fixed for objectAccessor --- src/tile/AntlrToExpression.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tile/AntlrToExpression.java b/src/tile/AntlrToExpression.java index e71c431..28531ef 100644 --- a/src/tile/AntlrToExpression.java +++ b/src/tile/AntlrToExpression.java @@ -188,6 +188,8 @@ public Expression visitCastExpression(CastExpressionContext ctx) { return visit(ctx.unaryExpression()); } else if (ctx.arrayIndexAccessor() != null) { return visit(ctx.arrayIndexAccessor()); + } else if (ctx.objectAccessor() != null) { + return visit(ctx.objectAccessor()); } } String cast_type = ctx.typeName().getText(); @@ -201,6 +203,8 @@ public Expression visitCastExpression(CastExpressionContext ctx) { expr = visit(ctx.unaryExpression()); } else if (ctx.arrayIndexAccessor() != null) { expr = visit(ctx.arrayIndexAccessor()); + } else if (ctx.objectAccessor() != null) { + expr = visit(ctx.objectAccessor()); } expr_type = expr.getType();