From ae0d7ee632cc59f8104cfca565675d70eab76162 Mon Sep 17 00:00:00 2001 From: Mehmet Can <104527797+MehmetJohn@users.noreply.github.com> Date: Fri, 18 Apr 2025 13:08:26 +0300 Subject: [PATCH 1/8] shift Exp error message fix --- src/tile/AntlrToExpression.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tile/AntlrToExpression.java b/src/tile/AntlrToExpression.java index 5f84c1b..7d6741c 100644 --- a/src/tile/AntlrToExpression.java +++ b/src/tile/AntlrToExpression.java @@ -401,7 +401,7 @@ public Expression visitShiftExpression(ShiftExpressionContext ctx) { Expression left = visit(exprs.get(0)); Expression right = visit(exprs.get(1)); String operator = ctx.getChild(1).getText(); - return new ShiftExpression(left, operator, right, new TypeInfoBinopInt()); + return new ShiftExpression(left, operator, right, TypeResolver.resolveBinopShiftType(left.getType(), right.getType())); } else if (exprs.size() == 1) { return visit(exprs.get(0)); } From 3d99a2a0f458dd4ab4158282e306e5b551a8c823 Mon Sep 17 00:00:00 2001 From: Mehmet Can <104527797+MehmetJohn@users.noreply.github.com> Date: Sun, 20 Apr 2025 14:21:24 +0300 Subject: [PATCH 2/8] shift Exp error message fix --- examples/expression/shiftExpr.tile | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 examples/expression/shiftExpr.tile diff --git a/examples/expression/shiftExpr.tile b/examples/expression/shiftExpr.tile new file mode 100644 index 0000000..6014aaa --- /dev/null +++ b/examples/expression/shiftExpr.tile @@ -0,0 +1,3 @@ +x: int = 4; +y: int = 4 << 2; +z: int = 4 >> 1.2; \ No newline at end of file From af99be33d8ad3127bfa4866ae8d4a27734ed8638 Mon Sep 17 00:00:00 2001 From: Mehmet Can <104527797+MehmetJohn@users.noreply.github.com> Date: Sun, 20 Apr 2025 14:48:27 +0300 Subject: [PATCH 3/8] shift Exp error message fix --- examples/expression/shiftExpr.tile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/expression/shiftExpr.tile b/examples/expression/shiftExpr.tile index 6014aaa..e9a86ff 100644 --- a/examples/expression/shiftExpr.tile +++ b/examples/expression/shiftExpr.tile @@ -1,3 +1,5 @@ +func main(): void { x: int = 4; y: int = 4 << 2; -z: int = 4 >> 1.2; \ No newline at end of file +z: int = 4 >> 1.2; +} From f07655279b37a7e491b7c024a3505ec4aaf9df46 Mon Sep 17 00:00:00 2001 From: Mehmet Can <104527797+MehmetJohn@users.noreply.github.com> Date: Sun, 20 Apr 2025 14:49:36 +0300 Subject: [PATCH 4/8] Shift Exp test file modified --- examples/expression/shiftExpr.tile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/expression/shiftExpr.tile b/examples/expression/shiftExpr.tile index e9a86ff..da80457 100644 --- a/examples/expression/shiftExpr.tile +++ b/examples/expression/shiftExpr.tile @@ -1,5 +1,5 @@ func main(): void { -x: int = 4; -y: int = 4 << 2; -z: int = 4 >> 1.2; + x: int = 4; + y: int = 4 << 2; + z: int = 4 >> 1.2; } From 91dca20605aa4b45dfd4eab930b6950464bd9395 Mon Sep 17 00:00:00 2001 From: Mehmet Can <104527797+MehmetJohn@users.noreply.github.com> Date: Sun, 20 Apr 2025 19:33:32 +0300 Subject: [PATCH 5/8] Shift Exp test file modified --- examples/expression/shiftExpr.tile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/expression/shiftExpr.tile b/examples/expression/shiftExpr.tile index da80457..cd67e86 100644 --- a/examples/expression/shiftExpr.tile +++ b/examples/expression/shiftExpr.tile @@ -1,5 +1,5 @@ func main(): void { x: int = 4; y: int = 4 << 2; - z: int = 4 >> 1.2; + z: int = 4 >> 1; } From eccb16a6c52f05a20b5e761c3b9f40a58366bc89 Mon Sep 17 00:00:00 2001 From: Mehmet Can <104527797+MehmetJohn@users.noreply.github.com> Date: Sun, 27 Apr 2025 13:22:37 +0300 Subject: [PATCH 6/8] Shift Exp test file improved --- examples/expression/shiftExpr.tile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/expression/shiftExpr.tile b/examples/expression/shiftExpr.tile index cd67e86..3347020 100644 --- a/examples/expression/shiftExpr.tile +++ b/examples/expression/shiftExpr.tile @@ -1,5 +1,6 @@ -func main(): void { +func main(argc: int): void { x: int = 4; y: int = 4 << 2; - z: int = 4 >> 1; + z: int = 4 >> 1 + 2; + t: int = 4 << 2 * 2; } From c9a8d1a96306a3422ce130ad7b91b25649ae998b Mon Sep 17 00:00:00 2001 From: Mehmet Can <104527797+MehmetJohn@users.noreply.github.com> Date: Sun, 27 Apr 2025 18:02:02 +0300 Subject: [PATCH 7/8] fix #38 --- examples/expression/shiftExpr.tile | 66 +++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/examples/expression/shiftExpr.tile b/examples/expression/shiftExpr.tile index 3347020..c5ea627 100644 --- a/examples/expression/shiftExpr.tile +++ b/examples/expression/shiftExpr.tile @@ -1,6 +1,68 @@ + +func print(str: string): void { + + tasm { + + "load 0", + + "puts" } + +}func printchar(c: char): void { + + tasm { + + "load 0", + + "putc" } + +}func print_number(num: int): void { + + if (num == 0) { + + print("0\n"); + + return; + + } + + if (num < 0) { + + print("-"); + + num = -num; + + } + + buffer: char[] = char[10]; + + i: int = 0; + + while (num > 0) { + + buffer[i] = (num % 10) + (int)'0'; + + num = num / 10; + + i = i + 1; + + } + + for (j: int = i - 1; j >= 0; j--) { + + printchar(buffer[j]); + + } print("\n"); + +} + + func main(argc: int): void { x: int = 4; y: int = 4 << 2; - z: int = 4 >> 1 + 2; - t: int = 4 << 2 * 2; + z: int = 4.4 >> 1; + t: int = 4 << 2.2; + print_number(x); + print_number(y); + print_number(z); + print_number(t); } From a465448340ad76ae957adce58ca6001cfbdc2771 Mon Sep 17 00:00:00 2001 From: Mehmet Can <104527797+MehmetJohn@users.noreply.github.com> Date: Sun, 27 Apr 2025 18:03:43 +0300 Subject: [PATCH 8/8] fix #38 --- examples/expression/shiftExpr.tile | 66 +----------------------------- 1 file changed, 2 insertions(+), 64 deletions(-) diff --git a/examples/expression/shiftExpr.tile b/examples/expression/shiftExpr.tile index c5ea627..3347020 100644 --- a/examples/expression/shiftExpr.tile +++ b/examples/expression/shiftExpr.tile @@ -1,68 +1,6 @@ - -func print(str: string): void { - - tasm { - - "load 0", - - "puts" } - -}func printchar(c: char): void { - - tasm { - - "load 0", - - "putc" } - -}func print_number(num: int): void { - - if (num == 0) { - - print("0\n"); - - return; - - } - - if (num < 0) { - - print("-"); - - num = -num; - - } - - buffer: char[] = char[10]; - - i: int = 0; - - while (num > 0) { - - buffer[i] = (num % 10) + (int)'0'; - - num = num / 10; - - i = i + 1; - - } - - for (j: int = i - 1; j >= 0; j--) { - - printchar(buffer[j]); - - } print("\n"); - -} - - func main(argc: int): void { x: int = 4; y: int = 4 << 2; - z: int = 4.4 >> 1; - t: int = 4 << 2.2; - print_number(x); - print_number(y); - print_number(z); - print_number(t); + z: int = 4 >> 1 + 2; + t: int = 4 << 2 * 2; }