sig
  type language_kind = XPath_2_0 | XQuery_1_0
  type lex_state =
      DefaultState
    | OperatorState
    | RenameOperatorState
    | NamespaceDeclState
    | NamespaceKeywordState
    | CopyNamespacesState
    | XMLSpaceDeclState
    | ItemTypeState
    | KindTestState
    | KindTestForPIState
    | SchemaContextStepState
    | VarNameState
    | VarDeclState
    | PragmaState
    | StartTagState
    | ElementContentState
    | EndTagState
    | XMLCommentState
    | PIState
    | CDATASectionState
    | QuoteAttributeContentState
    | AposAttributeContentState
    | EntityIncludedInLiteralState
    | SchemaDeclarationState
    | TypeDeclarationState
    | XTypeState
  type lexing_handler
  val init_xquery_lexing : unit -> Lexing_util.lexing_handler
  val init_type_lexing : unit -> Lexing_util.lexing_handler
  val get_current_lex_state :
    Lexing_util.lexing_handler -> Lexing_util.lex_state
  val get_whole_lex_stack :
    Lexing_util.lexing_handler -> Lexing_util.lex_state list
  val get_depth : Lexing_util.lexing_handler -> int
  val set_depth : Lexing_util.lexing_handler -> int -> unit
  val reset_string : Lexing_util.lexing_handler -> unit
  val add_char_to_string : Lexing_util.lexing_handler -> char -> unit
  val add_string_to_string : Lexing_util.lexing_handler -> string -> unit
  val get_string : Lexing_util.lexing_handler -> string
  type attribute_quote_kind =
      SingleQuoteKind
    | DoubleQuoteKind
    | EntityIncludedInLiteralKind
  val attribute_quote_kind :
    Lexing_util.lexing_handler -> Lexing_util.attribute_quote_kind
  val push_state :
    Lexing_util.lex_state -> Lexing_util.lexing_handler -> unit
  val push_none : Lexing_util.lexing_handler -> unit
  val push_default : Lexing_util.lexing_handler -> unit
  val push_operator : Lexing_util.lexing_handler -> unit
  val push_rename_op : Lexing_util.lexing_handler -> unit
  val push_namespacedecl : Lexing_util.lexing_handler -> unit
  val push_namespacekeyword : Lexing_util.lexing_handler -> unit
  val push_copynamespaces : Lexing_util.lexing_handler -> unit
  val push_xmlspacedecl : Lexing_util.lexing_handler -> unit
  val push_itemtype : Lexing_util.lexing_handler -> unit
  val push_kindtest : Lexing_util.lexing_handler -> unit
  val push_kindtestforpi : Lexing_util.lexing_handler -> unit
  val push_schemacontextstep : Lexing_util.lexing_handler -> unit
  val push_varname : Lexing_util.lexing_handler -> unit
  val push_vardecl : Lexing_util.lexing_handler -> unit
  val push_opening_tag : Lexing_util.lexing_handler -> unit
  val push_text : Lexing_util.lexing_handler -> unit
  val push_closing_tag : Lexing_util.lexing_handler -> unit
  val push_comment : Lexing_util.lexing_handler -> unit
  val push_processing_instruction : Lexing_util.lexing_handler -> unit
  val push_pragma : Lexing_util.lexing_handler -> unit
  val push_cdata : Lexing_util.lexing_handler -> unit
  val push_attribute_text_double : Lexing_util.lexing_handler -> unit
  val push_attribute_text_single : Lexing_util.lexing_handler -> unit
  val push_entity_included : Lexing_util.lexing_handler -> unit
  val push_entity_included_in_literal : Lexing_util.lexing_handler -> unit
  val push_schema_declaration : Lexing_util.lexing_handler -> unit
  val push_type_declaration : Lexing_util.lexing_handler -> unit
  val push_xtype : Lexing_util.lexing_handler -> unit
  val pop_state : Lexing_util.lexing_handler -> unit
  val pop_state_keep_buffer : Lexing_util.lexing_handler -> unit
  val get_parsing_kind :
    Lexing_util.lexing_handler -> Lexing_util.language_kind
  type qname_kind =
      NCNAME_KIND of string
    | QNAME_KIND of Namespace_names.uqname
  val process_qname_string : string -> Lexing_util.qname_kind
  val get_axis : string -> Xquery_common_ast.axis
  val get_escaped_name : string -> string
  val get_target_pi : string -> string
  val get_xml_encoding_quotes : string -> string
  val get_xml_encoding_single_quotes : string -> string
  val get_char_ref : string -> string
  val get_hexchar_ref : string -> string
  val get_entity_ref : string -> string
  val qname_lexing_error : Finfo.finfo -> 'a
  val qnamesep_lexing_error : Finfo.finfo -> 'a
  val match_operator_keyword :
    Finfo.finfo ->
    Lexing_util.lexing_handler -> string -> Parse_xquery.token option
  val match_default_keyword :
    Finfo.finfo ->
    Lexing_util.lexing_handler -> string -> Parse_xquery.token option
  val match_namespace_keyword :
    Finfo.finfo ->
    Lexing_util.lexing_handler -> string -> Parse_xquery.token option
  val match_curly :
    Finfo.finfo -> Lexing_util.lexing_handler -> Parse_xquery.token option
  val match_paren :
    Finfo.finfo -> Lexing_util.lexing_handler -> Parse_xquery.token option
  val get_buffered_tokens :
    Lexing_util.lexing_handler -> Parse_xquery.token list
  val set_buffered_tokens :
    Lexing_util.lexing_handler -> Parse_xquery.token list -> unit
  val get_buffered : Lexing_util.lexing_handler -> string list
  val set_buffered : Lexing_util.lexing_handler -> string list -> unit
  val default_token : Lexing_util.lexing_handler -> bool
  val make_new_token :
    Finfo.finfo ->
    Lexing_util.lexing_handler ->
    (Lexing_util.lexing_handler -> unit) ->
    Parse_xquery.token -> Parse_xquery.token option
  val toop_pushdef : Lexing_util.lexing_handler -> unit
  val todef : Lexing_util.lexing_handler -> unit
  val toren_pushdef : Lexing_util.lexing_handler -> unit
  val toop_pushitem : Lexing_util.lexing_handler -> unit
  val toop_pushvar : Lexing_util.lexing_handler -> unit
  val todecl : Lexing_util.lexing_handler -> unit
  val tonamespace : Lexing_util.lexing_handler -> unit
  val tocopy : Lexing_util.lexing_handler -> unit
  val pushitem : Lexing_util.lexing_handler -> unit
  val pushdef : Lexing_util.lexing_handler -> unit
  val tokinddef : Lexing_util.lexing_handler -> unit
  val tonone : Lexing_util.lexing_handler -> unit
  val set_item_type : Lexing_util.lexing_handler -> unit
  val unset_item_type : Lexing_util.lexing_handler -> unit
  val check_item_type : Lexing_util.lexing_handler -> bool
end