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=b4ec7195315b93b8a6380b0fe33e28545732b558;hb=54e838f482844369048d4f88e87a092a87162b72;hpb=789ef466bebb54a589039a8100147a11ea6f9719 diff --git a/compiler/src/lib/tiger/tiger_error.ml b/compiler/src/lib/tiger/tiger_error.ml index b4ec719..88096a2 100644 --- a/compiler/src/lib/tiger/tiger_error.ml +++ b/compiler/src/lib/tiger/tiger_error.ml @@ -214,6 +214,28 @@ let is_wrong_type t = | 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 _ -> @@ -235,3 +257,69 @@ let is_invalid_syntax t = | 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