`type error````=`

`|` `Illegal_character of char`
`|` `Illegal_escape of string`
`|` `Unterminated_comment of Ppxlib_ast__.Import.Location.t`
`|` `Unterminated_string`
`|` `Unterminated_string_in_comment of Ppxlib_ast__.Import.Location.t * Ppxlib_ast__.Import.Location.t`
`|` `Keyword_as_label of string`
`|` `Invalid_literal of string`
`|` `Invalid_directive of string * string option`

``
`exception` `Error of error * Ppxlib_ast__.Import.Location.t`
`val keyword_table : (string, Parser.token) Hashtbl.t`
`val initial_string_buffer : bytes`
`val string_buff : bytes Pervasives.ref`
`val string_index : int Pervasives.ref`
`val reset_string_buffer : unit ‑> unit`
`val store_string_char : char ‑> unit`
`val store_string : string ‑> unit`
`val store_lexeme : Lexing.lexbuf ‑> unit`
`val get_stored_string : unit ‑> string`
`val string_start_loc : Ppxlib_ast__.Import.Location.t Pervasives.ref`
`val comment_start_loc : Ppxlib_ast__.Import.Location.t list Pervasives.ref`
`val in_comment : unit ‑> bool`
`val is_in_string : bool Pervasives.ref`
`val in_string : unit ‑> bool`
`val print_warnings : bool Pervasives.ref`
`val store_escaped_char : Lexing.lexbuf ‑> char ‑> unit`
`val with_comment_buffer : (Lexing.lexbuf ‑> Ppxlib_ast__.Import.Location.t) ‑> Lexing.lexbuf ‑> string * Ppxlib_ast__.Import.Location.t`
`val char_for_backslash : char ‑> char`
`val char_for_decimal_code : Lexing.lexbuf ‑> int ‑> char`
`val char_for_octal_code : Lexing.lexbuf ‑> int ‑> char`
`val char_for_hexadecimal_code : Lexing.lexbuf ‑> int ‑> char`
`val get_label_name : Lexing.lexbuf ‑> string`
`val update_loc : Lexing.lexbuf ‑> string option ‑> int ‑> bool ‑> int ‑> unit`
`val preprocessor : ((unit ‑> unit) * ((Lexing.lexbuf ‑> Parser.token) ‑> Lexing.lexbuf ‑> Parser.token)) option Pervasives.ref`
`val escaped_newlines : bool Pervasives.ref`
`val warn_latin1 : Lexing.lexbuf ‑> unit`
`val handle_docstrings : bool Pervasives.ref`
`val comment_list : (string * Ppxlib_ast__.Import.Location.t) list Pervasives.ref`
`val add_comment : (string * Ppxlib_ast__.Import.Location.t) ‑> unit`
`val add_docstring_comment : Docstrings.docstring ‑> unit`
`val comments : unit ‑> (string * Ppxlib_ast__.Import.Location.t) list`
`val report_error : Format.formatter ‑> error ‑> unit`
`val __ocaml_lex_tables : Lexing.lex_tables`
`val token : Lexing.lexbuf ‑> Parser.token`
`val __ocaml_lex_token_rec : Lexing.lexbuf ‑> int ‑> Parser.token`
`val comment : Lexing.lexbuf ‑> Ppxlib_ast__.Import.Location.t`
`val __ocaml_lex_comment_rec : Lexing.lexbuf ‑> int ‑> Ppxlib_ast__.Import.Location.t`
`val string : Lexing.lexbuf ‑> unit`
`val __ocaml_lex_string_rec : Lexing.lexbuf ‑> int ‑> unit`
`val quoted_string : string ‑> Lexing.lexbuf ‑> unit`
`val __ocaml_lex_quoted_string_rec : string ‑> Lexing.lexbuf ‑> int ‑> unit`
`val skip_hash_bang : Lexing.lexbuf ‑> unit`
`val __ocaml_lex_skip_hash_bang_rec : Lexing.lexbuf ‑> int ‑> unit`
`val token_with_comments : Lexing.lexbuf ‑> Parser.token`
`type newline_state````=`

`|` `NoLine`
`|` `NewLine`
`|` `BlankLine`

``
`type doc_state````=`

`|` `Initial`
`|` `After of docstring list`
`|` `Before of docstring list * docstring list * docstring list`

``
`type docstring``= Docstrings.docstring```
`val token : Lexing.lexbuf ‑> Parser.token`
`val init : unit ‑> unit`
`val set_preprocessor : (unit ‑> unit) ‑> ((Lexing.lexbuf ‑> Parser.token) ‑> Lexing.lexbuf ‑> Parser.token) ‑> unit`