X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=compiler%2Fsrc%2Flib%2Ftiger%2Ftiger_test_cases.ml;h=1ead5f5226aa2e197513083e34ed47f606b4324d;hb=refs%2Fheads%2Fir-translation-wip;hp=73b1a26489333e36cc6f411662d2b019c38b9f40;hpb=cbb4ffb6428f52eaea42f6039332af0c392cdd0f;p=tiger.ml.git diff --git a/compiler/src/lib/tiger/tiger_test_cases.ml b/compiler/src/lib/tiger/tiger_test_cases.ml index 73b1a26..1ead5f5 100644 --- a/compiler/src/lib/tiger/tiger_test_cases.ml +++ b/compiler/src/lib/tiger/tiger_test_cases.ml @@ -96,6 +96,54 @@ let micro = lst \n\ end" ) + ; ( Test.case + "Cycle in type dec" + ~code:"\ + let \n\ + type a = b \n\ + type b = a \n\ + in \n\ + end \ + " + ~is_error_expected_semant:(Some Error.is_cycle_in_type_dec) + ) + ; ( Test.case + "Cycle in type dec" + ~code:"\ + let \n\ + type a = b \n\ + type b = c \n\ + type c = a \n\ + var x : a := 1 \n\ + in \n\ + end \ + " + ~is_error_expected_semant:(Some Error.is_cycle_in_type_dec) + ) + ; ( Test.case + "Break outside loop" + ~code: + "break" + ~is_error_expected_semant:(Some Error.is_break_outside_loop) + ) + ; ( Test.case + "Break within for loop" + ~code:"for i := 0 to 5 do (print(\"x\"); break)" + ) + ; ( Test.case + "Break after for loop" + ~code:"(for i := 0 to 5 do (print(\"x\"); break); break)" + ~is_error_expected_semant:(Some Error.is_break_outside_loop) + ) + ; ( Test.case + "Break within while loop" + ~code:"while 1 do (print(\"x\"); break)" + ) + ; ( Test.case + "Break after while loop" + ~code:"(while 1 do (print(\"x\"); break); break)" + ~is_error_expected_semant:(Some Error.is_break_outside_loop) + ) ] let book ~dir =