Expect more book errors
authorSiraaj Khandkar <siraaj@khandkar.net>
Mon, 17 Sep 2018 11:43:19 +0000 (07:43 -0400)
committerSiraaj Khandkar <siraaj@khandkar.net>
Mon, 17 Sep 2018 11:43:19 +0000 (07:43 -0400)
compiler/src/lib/tiger/tiger_error.ml
compiler/src/lib/tiger/tiger_error.mli
compiler/src/lib/tiger/tiger_test_cases_book.ml

index b4ec719..e1b0736 100644 (file)
@@ -235,3 +235,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
index ed4a7cf..d7c2e79 100644 (file)
@@ -74,3 +74,6 @@ val is_unknown_id   : t -> bool
 val is_unknown_type : t -> bool
 val is_wrong_type   : t -> bool
 val is_invalid_syntax : t -> bool
+val is_not_a_record : t -> bool
+val is_not_an_array : t -> bool
+val is_no_such_field_in_record : t -> bool
index 98e8383..7502b47 100644 (file)
@@ -91,17 +91,28 @@ let is_error_expected_parsing_of_filename =
     (* TODO: Fill-in other expected cases *)
     None
 
-(* TODO test21.tig - error : procedure returns value  and procedure is used in arexpr *)
-(* TODO test22.tig - No_such_field_in_record *)
-(* TODO test24.tig - Exp_not_an_array *)
-(* TODO test25.tig - Exp_not_a_record *)
+(* TODO: test18.tig - error : definition of recursive functions is interrupted*)
+(* TODO: test21.tig - error : procedure returns value  and procedure is used in arexpr *)
 
 let is_error_expected_semant_of_filename =
   let module E = Tiger_error in
   function
-  | "test17.tig" ->
+  | "test17.tig"
+  | "test33.tig" ->
       Some Error.is_unknown_type
       (* TODO: Be more specific - which type? *)
+  | "test20.tig" ->
+      Some Error.is_unknown_id
+      (* TODO: Be more specific - the unknown id is "i" *)
+  | "test22.tig" ->
+      Some Error.is_no_such_field_in_record
+      (* TODO: Be more specific - which field? *)
+  | "test24.tig" ->
+      Some Error.is_not_an_array
+      (* TODO: Be more specific *)
+  | "test25.tig" ->
+      Some Error.is_not_a_record
+      (* TODO: Be more specific *)
   | "test09.tig"
   | "test11.tig"
   | "test13.tig"
This page took 0.022457 seconds and 4 git commands to generate.