diff options
Diffstat (limited to 'tiger-compiler/tests/desugar')
| -rw-r--r-- | tiger-compiler/tests/desugar/breaks-in-embedded-loops.tig | 13 | ||||
| -rw-r--r-- | tiger-compiler/tests/desugar/desugar_basic_strcmp.tig | 34 | ||||
| -rw-r--r-- | tiger-compiler/tests/desugar/desugar_eq_strcmp.tig | 35 | ||||
| -rw-r--r-- | tiger-compiler/tests/desugar/desugar_simple_for.tig | 7 | ||||
| -rw-r--r-- | tiger-compiler/tests/desugar/test64.tig | 40 | ||||
| -rw-r--r-- | tiger-compiler/tests/desugar/test64.tih | 41 |
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 +) |
