- 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
+ }
+ ->
+ let (stat_lex_exe, stat_lex_out_cmp, _) =
+ run_pass
+ ~f:pass_lexing
+ ~input:code
+ ~expect_output:out_lexing
+ ~is_error_expected:(fun _ -> false)
+ in
+ let (stat_pars_exe, stat_pars_out_cmp, absyn_opt) =
+ run_pass
+ ~f:pass_parsing
+ ~input:code
+ ~expect_output:out_parsing
+ ~is_error_expected:(fun _ -> false)
+ in
+ let (stat_semant_exe, stat_semant_out_cmp, _) =
+ run_pass
+ ~f:pass_semant
+ ~input:absyn_opt
+ ~expect_output:(Some ())
+ ~is_error_expected:is_error_expected_semant
+ in