- fun {name; code; out_lexing; out_parsing} ->
- let ( lexing_exe, lexing_out) = run_pass pass_lexing code out_lexing in
- let (parsing_exe, parsing_out) = run_pass pass_parsing code out_parsing in
+ fun
+ { name
+ ; code
+ ; out_lexing
+ ; out_parsing
+ ; is_error_expected_semant
+ }
+ ->
+ incr test_case_count;
+ let (stat_lex_exe, stat_lex_out_cmp, _) =
+ run_pass
+ ~f:(fun () -> pass_lexing ~fake_filename:name ~code)
+ ~expect_output:out_lexing
+ ~is_error_expected:None
+ in
+ let (stat_pars_exe, stat_pars_out_cmp, absyn_opt) =
+ run_pass
+ ~f:(fun () -> pass_parsing ~fake_filename:name ~code)
+ ~expect_output:out_parsing
+ ~is_error_expected:None
+ in
+ let (stat_semant_exe, stat_semant_out_cmp, _) =
+ run_pass
+ ~f:(fun () -> pass_semant absyn_opt)
+ ~expect_output:(Some ())
+ ~is_error_expected:is_error_expected_semant
+ in