sig
  type context = {
    mutable current : unit -> Pxp_lexer_types.token;
    mutable get_next : unit -> Pxp_lexer_types.token;
    mutable current_token : Pxp_lexer_types.token;
    mutable manager : Pxp_entity_manager.entity_manager;
  }
  type continuation_state = {
    cont_context : Pxp_core_parser.context;
    cont_extend_dtd : bool;
    cont_process_xmldecl : bool;
  }
  exception End_of_parsing
  exception Interrupt_parsing of Pxp_core_parser.continuation_state
  val make_context :
    ?first_token:Pxp_lexer_types.token ->
    Pxp_entity_manager.entity_manager -> Pxp_core_parser.context
  type extended_entry =
      [ `Entry_content of [ `Dummy ] list
      | `Entry_continuation of Pxp_core_parser.continuation_state
      | `Entry_declarations of [ `Extend_dtd_fully | `Val_mode_dtd ] list
      | `Entry_document of
          [ `Extend_dtd_fully | `Parse_xml_decl | `Val_mode_dtd ] list
      | `Entry_expr of [ `Dummy ] list ]
  type 'a array_stack
  val stack_create : '-> 'Pxp_core_parser.array_stack
  val stack_push : '-> 'Pxp_core_parser.array_stack -> unit
  val stack_top : 'Pxp_core_parser.array_stack -> 'a
  val stack_pop : 'Pxp_core_parser.array_stack -> 'a
  class virtual core_parser :
    Pxp_dtd.dtd ->
    Pxp_types.config ->
    int ->
    object
      val config : Pxp_types.config
      val mutable dtd : Pxp_dtd.dtd
      val lfactory : Pxp_lexer_types.lexer_factory
      val mutable n_entities_open : int
      val mutable n_tags_open : int
      val mutable ns_scope : Pxp_dtd.namespace_scope option
      val mutable p_internal_subset : bool
      val mutable pull_counter : int
      val pull_counter_limit : int
      method private virtual event_char_data : string -> unit
      method private virtual event_comment :
        (string * int * int) option -> string list -> unit
      method private virtual event_document_xmldecl :
        Pxp_lexer_types.prolog_token list -> unit
      method private virtual event_end_tag :
        string -> Pxp_lexer_types.entity_id -> unit
      method private virtual event_pinstr :
        (string * int * int) option ->
        string -> string -> Pxp_lexer_types.entity_id -> unit
      method private virtual event_start_tag :
        (string * int * int) option ->
        string ->
        (string * string) list -> bool -> Pxp_lexer_types.entity_id -> unit
      method private virtual init_for_xml_body : unit -> unit
      method private init_ns_processing : Pxp_dtd.namespace_manager -> unit
      method private only_whitespace : string -> unit
      method parse :
        Pxp_core_parser.context -> Pxp_core_parser.extended_entry -> unit
      method private pop_src_norm_mapping : unit -> unit
      method private push_src_norm_mapping :
        Pxp_dtd.namespace_manager ->
        string ->
        (string * string) list ->
        string * string * string * (string * string * string * string) list
      method private virtual sub_parser : unit -> Pxp_core_parser.core_parser
    end
end