- sprintf "(%d,%d)-(%d,%d)"
- loc_begin.Lexing.pos_lnum
- (loc_begin.Lexing.pos_cnum - loc_begin.Lexing.pos_bol)
- loc_end.Lexing.pos_lnum
- (loc_end.Lexing.pos_cnum - loc_end.Lexing.pos_bol)
+ let c_begin = loc_begin.Lexing.pos_cnum - loc_begin.Lexing.pos_bol in
+ let c_end = loc_end.Lexing.pos_cnum - loc_end.Lexing.pos_bol in
+ if loc_begin.Lexing.pos_lnum = -1 || loc_end.Lexing.pos_lnum = -1 then
+ sprintf "%d-%d" c_begin c_end
+ else
+ sprintf "(%d,%d)-(%d,%d)" loc_begin.Lexing.pos_lnum c_begin
+ loc_end.Lexing.pos_lnum c_end