|
@@ -7,12 +7,14 @@ let get_loc lexbuf =
|
|
|
let shift_loc (fname, ystart, yend, xstart, xend) yshift xshift =
|
|
let shift_loc (fname, ystart, yend, xstart, xend) yshift xshift =
|
|
|
(fname, ystart + yshift, yend + yshift, xstart + xshift, xend + xshift)
|
|
(fname, ystart + yshift, yend + yshift, xstart + xshift, xend + xshift)
|
|
|
|
|
|
|
|
|
|
+let shift_back lexbuf = shift_loc (get_loc lexbuf) 0 (-1)
|
|
|
|
|
+
|
|
|
let parse_with_error lexbuf =
|
|
let parse_with_error lexbuf =
|
|
|
try Some (Parser.program Lexer.token lexbuf) with
|
|
try Some (Parser.program Lexer.token lexbuf) with
|
|
|
| Lexer.SyntaxError msg ->
|
|
| Lexer.SyntaxError msg ->
|
|
|
- raise (LocError (shift_loc (get_loc lexbuf) 0 (-1), msg))
|
|
|
|
|
|
|
+ raise (LocError ((shift_back lexbuf), msg))
|
|
|
| Parser.Error ->
|
|
| Parser.Error ->
|
|
|
- raise (LocError (get_loc lexbuf, "syntax error"))
|
|
|
|
|
|
|
+ raise (LocError ((shift_back lexbuf), "syntax error"))
|
|
|
|
|
|
|
|
let phase input =
|
|
let phase input =
|
|
|
prerr_endline "- Parse input";
|
|
prerr_endline "- Parse input";
|