summaryrefslogtreecommitdiff
path: root/src/reporting.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/reporting.ml')
-rw-r--r--src/reporting.ml41
1 files changed, 18 insertions, 23 deletions
diff --git a/src/reporting.ml b/src/reporting.ml
index 7aa68296..0bc73ed6 100644
--- a/src/reporting.ml
+++ b/src/reporting.ml
@@ -97,26 +97,22 @@
type pos_or_loc = Loc of Parse_ast.l | Pos of Lexing.position
-let print_err_internal fatal verb_loc p_l m1 m2 =
+let print_err_internal p_l m1 m2 =
let open Error_format in
prerr_endline (m1 ^ ":");
begin match p_l with
| Loc l -> format_message (Location (l, Line m2)) err_formatter
| Pos p -> format_message (Location (Parse_ast.Range (p, p), Line m2)) err_formatter
- end;
- if fatal then exit 1 else ()
+ end
let loc_to_string ?code:(code=true) l =
let open Error_format in
- if code then
- let b = Buffer.create 160 in
- format_message (Location (l, Line "")) (buffer_formatter b);
- Buffer.contents b
- else
- "LOC"
+ let b = Buffer.create 160 in
+ format_message (Location (l, Line "")) (buffer_formatter b);
+ Buffer.contents b
-let print_err fatal verb_loc l m1 m2 =
- print_err_internal fatal verb_loc (Loc l) m1 m2
+let print_err l m1 m2 =
+ print_err_internal (Loc l) m1 m2
type error =
| Err_general of Parse_ast.l * string
@@ -130,14 +126,14 @@ type error =
let issues = "\n\nPlease report this as an issue on GitHub at https://github.com/rems-project/sail/issues"
let dest_err = function
- | Err_general (l, m) -> ("Error", false, Loc l, m)
+ | Err_general (l, m) -> ("Error", Loc l, m)
| Err_unreachable (l, (file, line, _, _), m) ->
- ((Printf.sprintf "Internal error: Unreachable code (at \"%s\" line %d)" file line), false, Loc l, m ^ issues)
- | Err_todo (l, m) -> ("Todo" ^ m, false, Loc l, "")
- | Err_syntax (p, m) -> ("Syntax error", false, Pos p, m)
- | Err_syntax_locn (l, m) -> ("Syntax error", false, Loc l, m)
- | Err_lex (p, s) -> ("Lexical error", false, Pos p, s)
- | Err_type (l, m) -> ("Type error", false, Loc l, m)
+ (Printf.sprintf "Internal error: Unreachable code (at \"%s\" line %d)" file line, Loc l, m ^ issues)
+ | Err_todo (l, m) -> ("Todo" ^ m, Loc l, "")
+ | Err_syntax (p, m) -> ("Syntax error", Pos p, m)
+ | Err_syntax_locn (l, m) -> ("Syntax error", Loc l, m)
+ | Err_lex (p, s) -> ("Lexical error", Pos p, s)
+ | Err_type (l, m) -> ("Type error", Loc l, m)
exception Fatal_error of error
@@ -147,10 +143,9 @@ let err_unreachable l ocaml_pos m = Fatal_error (Err_unreachable (l, ocaml_pos,
let err_general l m = Fatal_error (Err_general (l, m))
let err_typ l m = Fatal_error (Err_type (l,m))
-let report_error e =
- let (m1, verb_pos, pos_l, m2) = dest_err e in
- print_err_internal verb_pos false pos_l m1 m2
+let unreachable l pos msg =
+ raise (err_unreachable l pos msg)
let print_error e =
- let (m1, verb_pos, pos_l, m2) = dest_err e in
- print_err_internal verb_pos false pos_l m1 m2
+ let (m1, pos_l, m2) = dest_err e in
+ print_err_internal pos_l m1 m2