X-Git-Url: https://git.xandkar.net/?p=tiger.ml.git;a=blobdiff_plain;f=compiler%2Fsrc%2Flib%2Ftiger%2Ftiger_error.mli;h=4009ed51d9f79e8c9f4baa76041086731ec6f5e5;hp=1f0d0ce151b99c13d92323c29d37420468578591;hb=c16dd441582b7c7c09cdb3e706f4767a5b266177;hpb=be22952d3228b62e546756299a0f9a127ae64921 diff --git a/compiler/src/lib/tiger/tiger_error.mli b/compiler/src/lib/tiger/tiger_error.mli index 1f0d0ce..4009ed5 100644 --- a/compiler/src/lib/tiger/tiger_error.mli +++ b/compiler/src/lib/tiger/tiger_error.mli @@ -1,3 +1,52 @@ -exception T of string +type t = + | Invalid_syntax of Tiger_position.t + | Unknown_id of {id : Tiger_symbol.t; pos : Tiger_position.t} + | Unknown_type of {ty_id : Tiger_symbol.t; pos : Tiger_position.t} + | Id_not_a_function of {id : Tiger_symbol.t; pos : Tiger_position.t} + | Wrong_type_of_expression_in_var_dec of + { var_id : Tiger_symbol.t + ; expected : Tiger_env_type.t + ; given : Tiger_env_type.t + ; pos : Tiger_position.t + } + | Wrong_type_used_as_record of + { ty_id : Tiger_symbol.t + ; ty : Tiger_env_type.t + ; pos : Tiger_position.t + } + | Wrong_type_of_field_value of + { field_id : Tiger_symbol.t + ; expected : Tiger_env_type.t + ; given : Tiger_env_type.t + ; pos : Tiger_position.t + } + | Wrong_type_of_arg of + { func : Tiger_symbol.t + ; expected : Tiger_env_type.t + ; given : Tiger_env_type.t + ; pos : Tiger_position.t + } + | Wrong_number_of_args of + { func : Tiger_symbol.t + ; expected : int + ; given : int + ; pos : Tiger_position.t + } + | Invalid_operand_type of + { oper : Tiger_absyn.oper + ; valid : string list + ; given : Tiger_env_type.t + ; pos : Tiger_position.t + } + | Different_operand_types of + { oper : Tiger_absyn.oper + ; left : Tiger_env_type.t + ; right : Tiger_env_type.t + ; pos : Tiger_position.t + } -val exn : pos:Tiger_position.t -> string -> 'a +exception T of t + +val raise : t -> 'a + +val to_string : t -> string