X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=compiler%2Fsrc%2Flib%2Ftiger%2Ftiger_test_cases_book.ml;h=5cae186290778ba7851473362335414c9c7eb91b;hb=f7fa9b32b236443fa0d2cf83fbb617081664b81b;hp=289d74766be623afcefb2e933774c400b9c5e5a1;hpb=354b4e338f5b8de825232ab82cdb7c61770e41a8;p=tiger.ml.git diff --git a/compiler/src/lib/tiger/tiger_test_cases_book.ml b/compiler/src/lib/tiger/tiger_test_cases_book.ml index 289d747..5cae186 100644 --- a/compiler/src/lib/tiger/tiger_test_cases_book.ml +++ b/compiler/src/lib/tiger/tiger_test_cases_book.ml @@ -85,7 +85,7 @@ let is_error_expected_parsing_of_filename = let module E = Tiger_error in function | "test49.tig" -> - Some (function E.Invalid_syntax _ -> true | _ -> false) + Some Error.is_invalid_syntax (* TODO: Be more specific - test position *) | _ -> (* TODO: Fill-in other expected cases *) @@ -99,7 +99,13 @@ let is_error_expected_parsing_of_filename = let is_error_expected_semant_of_filename = let module E = Tiger_error in function + | "test17.tig" -> + Some Error.is_unknown_type + (* TODO: Be more specific - which type? *) | "test09.tig" + | "test11.tig" + | "test13.tig" + | "test14.tig" | "test23.tig" | "test26.tig" | "test28.tig" @@ -123,8 +129,20 @@ let test_case_of_filename filename ~dir = ~is_error_expected_parsing:(is_error_expected_parsing_of_filename filename) ~is_error_expected_semant:(is_error_expected_semant_of_filename filename) +let is_filename_starts_with_dot filename = + match filename.[0] with + | exception Invalid_argument _ -> + (* Filename should not be an empty string *) + assert false + | '.' -> true + | _ -> false + +let is_filename_not_hidden filename = + not (is_filename_starts_with_dot filename) + let read ~from_dir:dir = Sys.readdir dir |> Array.to_list + |> List.filter ~f:is_filename_not_hidden |> List.sort ~cmp:compare |> List.map ~f:(test_case_of_filename ~dir)