summaryrefslogtreecommitdiff
path: root/minijazz/src/global/errors.ml
blob: 9f64d36cad9cedd8c7a7328299c2a700d3fabf50 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
open Location

exception Error

type lexical_error =
  | Illegal_character
  | Unterminated_comment
  | Bad_char_constant
  | Unterminated_string

let lexical_error err loc =
  Format.eprintf (match err with
    | Illegal_character -> Pervasives.format_of_string "%aIllegal character.@."
    | Unterminated_comment -> "%aUnterminated comment.@."
    | Bad_char_constant -> "%aBad char constant.@."
    | Unterminated_string -> "%aUnterminated string.@."
     ) print_location loc;
  raise Error

let syntax_error loc =
  Format.eprintf "%aSyntax error.@." print_location loc;
  raise Error