X-Git-Url: https://git.xandkar.net/?p=tiger.ml.git;a=blobdiff_plain;f=compiler%2Fsrc%2Flib%2Ftiger%2Ftiger_error.ml;h=88096a2548d90e191aa3b5d2db3bfc88b39523f8;hp=f49bca41152e70a0d2284db727a353e5e4913f14;hb=54e838f482844369048d4f88e87a092a87162b72;hpb=155073e21824373c21dacbd75a61623c9d37fff2 diff --git a/compiler/src/lib/tiger/tiger_error.ml b/compiler/src/lib/tiger/tiger_error.ml index f49bca4..88096a2 100644 --- a/compiler/src/lib/tiger/tiger_error.ml +++ b/compiler/src/lib/tiger/tiger_error.ml @@ -213,3 +213,113 @@ let is_wrong_type t = | Invalid_operand_type _ | Different_operand_types _ -> false + +let is_wrong_number_of_args t = + match t with + | Wrong_number_of_args _ -> + true + | Wrong_type _ + | Unknown_type _ + | Unknown_id _ + | Invalid_syntax _ + | Id_is_a_function _ + | Id_not_a_function _ + | No_such_field_in_record _ + | Exp_not_a_record _ + | Exp_not_an_array _ + | Wrong_type_of_expression_in_var_dec _ + | Wrong_type_used_as_array _ + | Wrong_type_used_as_record _ + | Wrong_type_of_field_value _ + | Wrong_type_of_arg _ + | Invalid_operand_type _ + | Different_operand_types _ -> + false + +let is_invalid_syntax t = + match t with + | Invalid_syntax _ -> + true + | Wrong_type _ + | Unknown_type _ + | Unknown_id _ + | Id_is_a_function _ + | Id_not_a_function _ + | No_such_field_in_record _ + | Exp_not_a_record _ + | Exp_not_an_array _ + | Wrong_type_of_expression_in_var_dec _ + | Wrong_type_used_as_array _ + | Wrong_type_used_as_record _ + | Wrong_type_of_field_value _ + | Wrong_type_of_arg _ + | Wrong_number_of_args _ + | Invalid_operand_type _ + | Different_operand_types _ -> + false + +let is_not_a_record t = + match t with + | Exp_not_a_record _ -> + true + | Invalid_syntax _ + | Wrong_type _ + | Unknown_type _ + | Unknown_id _ + | Id_is_a_function _ + | Id_not_a_function _ + | No_such_field_in_record _ + | Exp_not_an_array _ + | Wrong_type_of_expression_in_var_dec _ + | Wrong_type_used_as_array _ + | Wrong_type_used_as_record _ + | Wrong_type_of_field_value _ + | Wrong_type_of_arg _ + | Wrong_number_of_args _ + | Invalid_operand_type _ + | Different_operand_types _ -> + false + +let is_not_an_array t = + match t with + | Exp_not_an_array _ -> + true + | Exp_not_a_record _ + | Invalid_syntax _ + | Wrong_type _ + | Unknown_type _ + | Unknown_id _ + | Id_is_a_function _ + | Id_not_a_function _ + | No_such_field_in_record _ + | Wrong_type_of_expression_in_var_dec _ + | Wrong_type_used_as_array _ + | Wrong_type_used_as_record _ + | Wrong_type_of_field_value _ + | Wrong_type_of_arg _ + | Wrong_number_of_args _ + | Invalid_operand_type _ + | Different_operand_types _ -> + false + +let is_no_such_field_in_record t = + match t with + | No_such_field_in_record _ -> + true + | Exp_not_an_array _ + | Exp_not_a_record _ + | Invalid_syntax _ + | Wrong_type _ + | Unknown_type _ + | Unknown_id _ + | Id_is_a_function _ + | Id_not_a_function _ + | Wrong_type_of_expression_in_var_dec _ + | Wrong_type_used_as_array _ + | Wrong_type_used_as_record _ + | Wrong_type_of_field_value _ + | Wrong_type_of_arg _ + | Wrong_number_of_args _ + | Invalid_operand_type _ + | Different_operand_types _ -> + false