Module Errorloc

module Errorloc: sig .. end

The module stores the current file,line, and working directory in a hidden internal state, modified by the three following functions.


val newline : unit -> unit

Call this function to announce a new line

val currentLoc : unit -> Cil_datatype.Location.t
val setCurrentWorkingDirectory : string -> unit

This function is used especially when the preprocessor has generated linemarkers in the output that let us know the current working directory at the time of preprocessing (option -fworking-directory for GNU CPP).

val setCurrentFile : string -> unit
val setCurrentLine : int -> unit
val startParsing : string -> Stdlib.Lexing.lexbuf

Call this function to start parsing.

val finishParsing : unit -> unit

Call this function to finish parsing and close the input channel

val pp_context_from_file : ?ctx:int ->
?start_line:int -> Stdlib.Format.formatter -> Filepath.position -> unit

prints the line identified by the position, together with ctx lines of context before and after. ctx defaults to 2. If start_line is specified, then all lines between start_line and pos.pos_lnum are considered part of the error.

val parse_error : ?source:Filepath.position ->
('a, Stdlib.Format.formatter, unit, 'b) Stdlib.format4 -> 'a

Parse errors are usually fatal, but their reporting is sometimes delayed until the end of the current parsing phase. Functions that intend to ultimately fail should call Errorloc.clear_errors when they start, and check Errorloc.had_errors when they end.

val had_errors : unit -> bool

Has an error been raised since the last call to Errorloc.clear_errors?

val clear_errors : unit -> unit