lustrec / src / error.ml @ 264a4844
History | View | Annotate | Download (1.58 KB)
1 | 9094307a | ploc | open Format |
---|---|---|---|
2 | |||
3 | type ident = LustreSpec.ident |
||
4 | type error_kind = |
||
5 | Main_not_found |
||
6 | | Main_wrong_kind |
||
7 | | No_main_specified |
||
8 | | Unbound_symbol of ident |
||
9 | | Already_bound_symbol of ident |
||
10 | | Unknown_library of ident |
||
11 | | Wrong_number of ident |
||
12 | | AlgebraicLoop |
||
13 | |||
14 | let return_code kind = |
||
15 | match kind with |
||
16 | | Main_not_found -> 2 |
||
17 | | Main_wrong_kind -> 3 |
||
18 | | No_main_specified -> 4 |
||
19 | | Unbound_symbol _ -> 5 |
||
20 | | Already_bound_symbol _ -> 6 |
||
21 | | Unknown_library _ -> 7 |
||
22 | | Wrong_number _ -> 8 |
||
23 | | AlgebraicLoop -> 9 |
||
24 | |||
25 | |||
26 | let pp_error_msg fmt = function |
||
27 | | Main_not_found -> |
||
28 | fprintf fmt "Could not find the definition of main node %s.@." |
||
29 | !Global.main_node |
||
30 | | Main_wrong_kind -> |
||
31 | fprintf fmt |
||
32 | "Node %s does not correspond to a valid main node definition.@." |
||
33 | !Global.main_node |
||
34 | | No_main_specified -> |
||
35 | fprintf fmt "No main node specified (use -node option)@." |
||
36 | | Unbound_symbol sym -> |
||
37 | fprintf fmt |
||
38 | "%s is undefined.@." |
||
39 | sym |
||
40 | | Already_bound_symbol sym -> |
||
41 | fprintf fmt |
||
42 | "%s is already defined.@." |
||
43 | sym |
||
44 | | Unknown_library sym -> |
||
45 | fprintf fmt |
||
46 | "impossible to load library %s.lusic.@.Please compile the corresponding interface or source file.@." |
||
47 | sym |
||
48 | | Wrong_number sym -> |
||
49 | fprintf fmt |
||
50 | "library %s.lusic has a different version number and may crash compiler.@.Please recompile the corresponding interface or source file.@." |
||
51 | sym |
||
52 | |||
53 | 264a4844 | ploc | let pp_warning loc pp_msg = |
54 | Format.eprintf "%a@.Warning: %t@." |
||
55 | 9094307a | ploc | Location.pp_loc loc |
56 | pp_msg |
||
57 | |||
58 | let pp_error loc pp_msg = |
||
59 | Format.eprintf "@.%a@.Error: @[<v 0>%t@]@." |
||
60 | Location.pp_loc loc |
||
61 | pp_msg |
||
62 | |||
63 |