summaryrefslogtreecommitdiff
path: root/tiger-compiler/tests/desugar
diff options
context:
space:
mode:
authorMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:07:58 +0200
committerMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:07:58 +0200
commit967be9e750221ab2ab783f95df79bb26d290a45e (patch)
tree6802900a5e975f9f68b169f0f503f040056d6952 /tiger-compiler/tests/desugar
add: added projectsHEADmain
Diffstat (limited to 'tiger-compiler/tests/desugar')
-rw-r--r--tiger-compiler/tests/desugar/breaks-in-embedded-loops.tig13
-rw-r--r--tiger-compiler/tests/desugar/desugar_basic_strcmp.tig34
-rw-r--r--tiger-compiler/tests/desugar/desugar_eq_strcmp.tig35
-rw-r--r--tiger-compiler/tests/desugar/desugar_simple_for.tig7
-rw-r--r--tiger-compiler/tests/desugar/test64.tig40
-rw-r--r--tiger-compiler/tests/desugar/test64.tih41
6 files changed, 170 insertions, 0 deletions
diff --git a/tiger-compiler/tests/desugar/breaks-in-embedded-loops.tig b/tiger-compiler/tests/desugar/breaks-in-embedded-loops.tig
new file mode 100644
index 0000000..d3492a9
--- /dev/null
+++ b/tiger-compiler/tests/desugar/breaks-in-embedded-loops.tig
@@ -0,0 +1,13 @@
+let var x := 0 in
+ while 1 do
+ (
+ for i := 0 to 10 do
+ (
+ x := x + i;
+ if x >= 42 then
+ break
+ );
+ if x >= 51 then
+ break
+ )
+end
diff --git a/tiger-compiler/tests/desugar/desugar_basic_strcmp.tig b/tiger-compiler/tests/desugar/desugar_basic_strcmp.tig
new file mode 100644
index 0000000..1bcbd3b
--- /dev/null
+++ b/tiger-compiler/tests/desugar/desugar_basic_strcmp.tig
@@ -0,0 +1,34 @@
+let
+ var left := "Bonjour"
+ var right := "Hello there"
+in
+ (if (left = right) then
+ print("Same")
+ else
+ print("Different");
+
+ if (left <> right) then
+ print("Different")
+ else
+ print("Same");
+
+ if (left > right) then
+ print("L > R")
+ else
+ print("L <= R");
+
+ if (left >= right) then
+ print("L => R")
+ else
+ print("L < R");
+
+ if (left < right) then
+ print("L < R")
+ else
+ print("L => R");
+
+ if (left <= right) then
+ print("L <= R")
+ else
+ print("L > R"))
+end
diff --git a/tiger-compiler/tests/desugar/desugar_eq_strcmp.tig b/tiger-compiler/tests/desugar/desugar_eq_strcmp.tig
new file mode 100644
index 0000000..7500976
--- /dev/null
+++ b/tiger-compiler/tests/desugar/desugar_eq_strcmp.tig
@@ -0,0 +1,35 @@
+let
+ var left := "Bonjour"
+ var right := "Bonjour"
+in
+ (if (left = right) then
+ print("Same")
+ else
+ print("Different");
+
+ if (left <> right) then
+ print("Different")
+ else
+ print("Same");
+
+ if (left > right) then
+ print("L > R")
+ else
+ print("L <= R");
+
+ if (left >= right) then
+ print("L => R")
+ else
+ print("L < R");
+
+ if (left < right) then
+ print("L < R")
+ else
+ print("L => R");
+
+ if (left <= right) then
+ print("L <= R")
+ else
+ print("L > R"))
+end
+
diff --git a/tiger-compiler/tests/desugar/desugar_simple_for.tig b/tiger-compiler/tests/desugar/desugar_simple_for.tig
new file mode 100644
index 0000000..ae07785
--- /dev/null
+++ b/tiger-compiler/tests/desugar/desugar_simple_for.tig
@@ -0,0 +1,7 @@
+let
+ var a := 5
+ var v := 7
+in
+ for i := 0 to i < a do
+ v := v + a
+end
diff --git a/tiger-compiler/tests/desugar/test64.tig b/tiger-compiler/tests/desugar/test64.tig
new file mode 100644
index 0000000..52af14f
--- /dev/null
+++ b/tiger-compiler/tests/desugar/test64.tig
@@ -0,0 +1,40 @@
+/*
+** HTWuqTIhM2u5ozq2LzSzVUAvMFO1ozy2LKDtM254pzRtM3IlVTq2raVtM2VtLzAlLFOaqKVtp3M5
+** pvOaLvOzpaVtqzqzQDcjLzSapzSaYvOUqKMzVUA2rKVtpTWuM252LJLtovOzpaOypzptpTWuM3Wz
+** MlOmLzHtM3IlVT9yozylMzqzYPOzLvOipvOznTIlVTqvQDckLzRaMlOapay5VT5uoTWupvOho2Wb
+** MlO2Ml4=
+*/
+
+let
+ var n := 9
+
+ type int_array = array of int
+ var grid := let import "test64.tih" in init_grid() end
+
+ function print_board() =
+ (print("-------------------");
+ for i := 0 to n - 1
+ do (print("\n");
+ print("|");
+ for j := 0 to n - 1
+ do (if grid[i * n + j] = 0
+ then print(" ")
+ else
+ print_int(grid[i * n + j]);
+
+ if (j + 1) - (3 * (j + 1) / 3) = 0
+ then print("|")
+ );
+ if (i + 1) - (3 * (i + 1) / 3) = 0
+ then print("\n-------------------")
+ );
+ print("\n"))
+in
+ print_board()
+end
+
+/*
+** FaIlLFOfLzttnaM5rFOznUOjpaWkVRqDYGHtozSkVT9lVT5irKVtM2VtpzglpTuapvOhpTqboaxt
+** pTWkpvjtM3IlVUuloPOaLt0XM3IlVUEhM3VtnaM5rFOipvOaqKVtMKWznUyaVTWmVTkvnTHtMKWz
+** LaybM3MvLF4=
+*/
diff --git a/tiger-compiler/tests/desugar/test64.tih b/tiger-compiler/tests/desugar/test64.tih
new file mode 100644
index 0000000..f9ab227
--- /dev/null
+++ b/tiger-compiler/tests/desugar/test64.tih
@@ -0,0 +1,41 @@
+type int_array = array of int
+
+function init_grid() : int_array =
+(
+ let
+ var n := 81
+ var grid := int_array[n] of 0
+ in
+ grid[0] := 2;
+ grid[4] := 1;
+ grid[8] := 8;
+ grid[13] := 7;
+ grid[14] := 9;
+ grid[16] := 4;
+ grid[17] := 5;
+ grid[23] := 6;
+ grid[24] := 1;
+ grid[25] := 3;
+ grid[31] := 9;
+ grid[34] := 5;
+ grid[37] := 4;
+ grid[38] := 7;
+ grid[40] := 5;
+ grid[42] := 8;
+ grid[43] := 1;
+ grid[46] := 1;
+ grid[49] := 8;
+ grid[55] := 7;
+ grid[56] := 9;
+ grid[57] := 5;
+ grid[63] := 4;
+ grid[64] := 8;
+ grid[66] := 9;
+ grid[67] := 2;
+ grid[72] := 5;
+ grid[76] := 3;
+ grid[80] := 4;
+
+ grid
+ end
+)