Improve error handling of negative start positions.
This commit is contained in:
parent
9f0eb8a868
commit
8904ededb7
@ -33,15 +33,22 @@ module Errors = struct
|
|||||||
file
|
file
|
||||||
in
|
in
|
||||||
let message () = str in
|
let message () = str in
|
||||||
let loc = Region.make
|
let loc = if start.pos_cnum = -1 then
|
||||||
~start:(Pos.from_byte start)
|
Region.make
|
||||||
~stop:(Pos.from_byte end_)
|
~start: Pos.min
|
||||||
|
~stop:(Pos.from_byte end_)
|
||||||
|
else
|
||||||
|
Region.make
|
||||||
|
~start:(Pos.from_byte start)
|
||||||
|
~stop:(Pos.from_byte end_)
|
||||||
|
in
|
||||||
|
let data =
|
||||||
|
[
|
||||||
|
("parser_loc",
|
||||||
|
fun () -> Format.asprintf "%a" Location.pp_lift @@ loc
|
||||||
|
)
|
||||||
|
]
|
||||||
in
|
in
|
||||||
let data = [
|
|
||||||
("parser_loc",
|
|
||||||
fun () -> Format.asprintf "%a" Location.pp_lift @@ loc
|
|
||||||
)
|
|
||||||
] in
|
|
||||||
error ~data title message
|
error ~data title message
|
||||||
|
|
||||||
let unrecognized_error source (start: Lexing.position) (end_: Lexing.position) lexbuf =
|
let unrecognized_error source (start: Lexing.position) (end_: Lexing.position) lexbuf =
|
||||||
|
@ -62,15 +62,22 @@ module Errors = struct
|
|||||||
file
|
file
|
||||||
in
|
in
|
||||||
let message () = str in
|
let message () = str in
|
||||||
let loc = Region.make
|
let loc = if start.pos_cnum = -1 then
|
||||||
~start:(Pos.from_byte start)
|
Region.make
|
||||||
~stop:(Pos.from_byte end_)
|
~start: Pos.min
|
||||||
|
~stop:(Pos.from_byte end_)
|
||||||
|
else
|
||||||
|
Region.make
|
||||||
|
~start:(Pos.from_byte start)
|
||||||
|
~stop:(Pos.from_byte end_)
|
||||||
|
in
|
||||||
|
let data =
|
||||||
|
[
|
||||||
|
("parser_loc",
|
||||||
|
fun () -> Format.asprintf "%a" Location.pp_lift @@ loc
|
||||||
|
)
|
||||||
|
]
|
||||||
in
|
in
|
||||||
let data = [
|
|
||||||
("parser_loc",
|
|
||||||
fun () -> Format.asprintf "%a" Location.pp_lift @@ loc
|
|
||||||
)
|
|
||||||
] in
|
|
||||||
error ~data title message
|
error ~data title message
|
||||||
|
|
||||||
let unrecognized_error source (start: Lexing.position) (end_: Lexing.position) lexbuf =
|
let unrecognized_error source (start: Lexing.position) (end_: Lexing.position) lexbuf =
|
||||||
|
@ -44,15 +44,22 @@ module Errors = struct
|
|||||||
file
|
file
|
||||||
in
|
in
|
||||||
let message () = str in
|
let message () = str in
|
||||||
let loc = Region.make
|
let loc = if start.pos_cnum = -1 then
|
||||||
~start:(Pos.from_byte start)
|
Region.make
|
||||||
~stop:(Pos.from_byte end_)
|
~start: Pos.min
|
||||||
|
~stop:(Pos.from_byte end_)
|
||||||
|
else
|
||||||
|
Region.make
|
||||||
|
~start:(Pos.from_byte start)
|
||||||
|
~stop:(Pos.from_byte end_)
|
||||||
|
in
|
||||||
|
let data =
|
||||||
|
[
|
||||||
|
("parser_loc",
|
||||||
|
fun () -> Format.asprintf "%a" Location.pp_lift @@ loc
|
||||||
|
)
|
||||||
|
]
|
||||||
in
|
in
|
||||||
let data = [
|
|
||||||
("location",
|
|
||||||
fun () -> Format.asprintf "%a" Location.pp_lift @@ loc
|
|
||||||
)
|
|
||||||
] in
|
|
||||||
error ~data title message
|
error ~data title message
|
||||||
|
|
||||||
let unrecognized_error source (start: Lexing.position) (end_: Lexing.position) lexbuf =
|
let unrecognized_error source (start: Lexing.position) (end_: Lexing.position) lexbuf =
|
||||||
|
Loading…
Reference in New Issue
Block a user