diff options
Diffstat (limited to 'lib/prl')
| -rw-r--r-- | lib/prl/parser.ml | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/prl/parser.ml b/lib/prl/parser.ml index 17102a4..59cbceb 100644 --- a/lib/prl/parser.ml +++ b/lib/prl/parser.ml @@ -1,4 +1,7 @@ -type error = ParseError of string +module Error = struct + open Condition + let parse_error msg = condition "parse-error" ("message" |=| (of_string msg)) +end let of_sexp sexp = let sexp = @@ -6,7 +9,7 @@ let of_sexp sexp = in match Ast.statement_of_sexp sexp with | stmt -> Ok stmt - | exception exn -> Error (ParseError (Printexc.to_string exn)) + | exception exn -> Error (Error.parse_error (Printexc.to_string exn)) let of_string s = of_sexp (Sexplib.Sexp.of_string s) let to_string stmt = Ast.sexp_of_statement stmt |> Sexplib.Sexp.to_string_hum |
