Commit | Line | Data |
---|---|---|
b9b456cc SK |
1 | module Abs = Tiger_absyn |
2 | module Pos = Tiger_position | |
3 | module Sym = Tiger_symbol | |
4 | module Typ = Tiger_env_type | |
5 | ||
c16dd441 | 6 | type t = |
e6e82c08 SK |
7 | | Cycle_in_type_decs of |
8 | { from_id : Sym.t | |
9 | ; from_pos : Pos.t | |
10 | ; to_id : Sym.t | |
11 | ; to_pos : Pos.t | |
12 | } | |
35dccbd3 | 13 | | Break_outside_loop of Pos.t |
b9b456cc SK |
14 | | Invalid_syntax of Pos.t |
15 | | Unknown_id of {id : Sym.t; pos : Pos.t} | |
16 | | Unknown_type of {ty_id : Sym.t; pos : Pos.t} | |
523e2b06 | 17 | | Id_is_a_function of {id : Sym.t; pos : Pos.t} |
b9b456cc | 18 | | Id_not_a_function of {id : Sym.t; pos : Pos.t} |
523e2b06 SK |
19 | | No_such_field_in_record of {field : Sym.t; record : Typ.t; pos : Pos.t} |
20 | | Exp_not_a_record of {ty : Typ.t; pos : Pos.t} | |
161a300d | 21 | | Exp_not_an_array of {ty : Typ.t; pos : Pos.t} |
523e2b06 SK |
22 | | Wrong_type of |
23 | { expected : Typ.t | |
24 | ; given : Typ.t | |
25 | ; pos : Pos.t | |
26 | } | |
c16dd441 | 27 | | Wrong_type_of_expression_in_var_dec of |
b9b456cc SK |
28 | { var_id : Sym.t |
29 | ; expected : Typ.t | |
30 | ; given : Typ.t | |
31 | ; pos : Pos.t | |
c16dd441 SK |
32 | } |
33 | | Wrong_type_used_as_record of | |
b9b456cc SK |
34 | { ty_id : Sym.t |
35 | ; ty : Typ.t | |
36 | ; pos : Pos.t | |
c16dd441 | 37 | } |
4c550cd5 SK |
38 | | Wrong_type_used_as_array of |
39 | { ty_id : Sym.t | |
40 | ; ty : Typ.t | |
41 | ; pos : Pos.t | |
42 | } | |
c16dd441 | 43 | | Wrong_type_of_field_value of |
b9b456cc SK |
44 | { field_id : Sym.t |
45 | ; expected : Typ.t | |
46 | ; given : Typ.t | |
47 | ; pos : Pos.t | |
c16dd441 SK |
48 | } |
49 | | Wrong_type_of_arg of | |
b9b456cc SK |
50 | { func : Sym.t |
51 | ; expected : Typ.t | |
52 | ; given : Typ.t | |
53 | ; pos : Pos.t | |
c16dd441 SK |
54 | } |
55 | | Wrong_number_of_args of | |
b9b456cc | 56 | { func : Sym.t |
c16dd441 SK |
57 | ; expected : int |
58 | ; given : int | |
b9b456cc | 59 | ; pos : Pos.t |
c16dd441 SK |
60 | } |
61 | | Invalid_operand_type of | |
b9b456cc | 62 | { oper : Abs.oper |
c16dd441 | 63 | ; valid : string list |
b9b456cc SK |
64 | ; given : Typ.t |
65 | ; pos : Pos.t | |
c16dd441 SK |
66 | } |
67 | | Different_operand_types of | |
b9b456cc SK |
68 | { oper : Abs.oper |
69 | ; left : Typ.t | |
70 | ; right : Typ.t | |
71 | ; pos : Pos.t | |
c16dd441 | 72 | } |
7c14a966 | 73 | |
c16dd441 SK |
74 | exception T of t |
75 | ||
76 | val raise : t -> 'a | |
77 | ||
78 | val to_string : t -> string | |
5da420a8 | 79 | |
155073e2 SK |
80 | val is_unknown_id : t -> bool |
81 | val is_unknown_type : t -> bool | |
82 | val is_wrong_type : t -> bool | |
54e838f4 | 83 | val is_wrong_number_of_args : t -> bool |
789ef466 | 84 | val is_invalid_syntax : t -> bool |
1d155dc1 SK |
85 | val is_not_a_record : t -> bool |
86 | val is_not_an_array : t -> bool | |
87 | val is_no_such_field_in_record : t -> bool | |
e6e82c08 | 88 | val is_cycle_in_type_dec : t -> bool |
35dccbd3 | 89 | val is_break_outside_loop : t -> bool |