sig val init : unit -> unit val token : Lexing.lexbuf -> Parser.token val skip_sharp_bang : Lexing.lexbuf -> unit type error = Illegal_character of char | Illegal_escape of string | Unterminated_comment of Location.t | Unterminated_string | Unterminated_string_in_comment of Location.t * Location.t | Keyword_as_label of string | Literal_overflow of string exception Error of Lexer.error * Location.t val report_error : Format.formatter -> Lexer.error -> unit val in_comment : unit -> bool val in_string : unit -> bool val print_warnings : bool Pervasives.ref val comments : unit -> (string * Location.t) list val token_with_comments : Lexing.lexbuf -> Parser.token val set_preprocessor : (unit -> unit) -> ((Lexing.lexbuf -> Parser.token) -> Lexing.lexbuf -> Parser.token) -> unit end