diff options
Diffstat (limited to 'minijazz/src/global/errors.ml')
-rw-r--r-- | minijazz/src/global/errors.ml | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/minijazz/src/global/errors.ml b/minijazz/src/global/errors.ml new file mode 100644 index 0000000..9f64d36 --- /dev/null +++ b/minijazz/src/global/errors.ml @@ -0,0 +1,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 |