Revision 786012623dedd375982038aefabda0cc2621afcc authored by No author on 15 March 1996, 17:35:36 UTC, committed by No author on 15 March 1996, 17:35:36 UTC
git-svn-id: http://caml.inria.fr/svn/ocaml/release/csl-1.15@704 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1 parent 3f8f3d6
Raw File
errors.ml
(***********************************************************************)
(*                                                                     *)
(*                         Caml Special Light                          *)
(*                                                                     *)
(*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *)
(*                                                                     *)
(*  Copyright 1995 Institut National de Recherche en Informatique et   *)
(*  Automatique.  Distributed only by permission.                      *)
(*                                                                     *)
(***********************************************************************)

(* $Id$ *)

(* Error report *)

open Format
open Location

(* Report an error *)

let report_error exn =
  open_hovbox 0;
  begin match exn with
    Lexer.Error(err, start, stop) ->
      Location.print {loc_start = start; loc_end = stop};
      Lexer.report_error err
  | Parse.Error(start, stop) ->
      Location.print {loc_start = start; loc_end = stop};
      print_string "Syntax error"
  | Env.Error err ->
      Env.report_error err
  | Typecore.Error(loc, err) ->
      Location.print loc; Typecore.report_error err
  | Typetexp.Error(loc, err) ->
      Location.print loc; Typetexp.report_error err
  | Typedecl.Error(loc, err) ->
      Location.print loc; Typedecl.report_error err
  | Includemod.Error err ->
      Includemod.report_error err
  | Typemod.Error(loc, err) ->
      Location.print loc; Typemod.report_error err
  | Translcore.Error(loc, err) ->
      Location.print loc; Translcore.report_error err
  | Symtable.Error code ->
      Symtable.report_error code
  | Bytelink.Error code ->
      Bytelink.report_error code
  | Bytelibrarian.Error code ->
      Bytelibrarian.report_error code
  | Sys_error msg ->
      print_string "I/O error: "; print_string msg
  | x ->
      close_box(); raise x
  end;
  close_box(); print_newline()
back to top