dune/src/loc.ml

34 lines
533 B
OCaml
Raw Normal View History

2016-11-13 17:05:55 +00:00
open Import
2016-11-03 16:44:09 +00:00
type t =
{ start : Lexing.position
; stop : Lexing.position
}
2016-11-13 11:13:47 +00:00
let of_lexbuf lb =
2016-11-13 11:27:31 +00:00
{ start = Lexing.lexeme_start_p lb
; stop = Lexing.lexeme_end_p lb
2016-11-13 11:13:47 +00:00
}
exception Error of t * string
let fail t fmt =
2016-11-13 17:05:55 +00:00
ksprintf (fun msg -> raise (Error (t, msg))) fmt
2016-11-13 11:13:47 +00:00
let fail_lex lb fmt =
fail (of_lexbuf lb) fmt
2016-12-02 13:54:32 +00:00
let in_file fn =
let pos : Lexing.position =
{ pos_fname = fn
; pos_lnum = 1
; pos_cnum = 0
; pos_bol = 0
}
in
{ start = pos
; stop = pos
}
2017-02-25 17:53:39 +00:00
let none = in_file "<none>"