sig
  val print_pre_tokens : Flx_parse.token list -> unit
  val print_tokens : Flx_parse.token list -> unit
  class tokeniser :
    Flx_parse.token list ->
    object
      val mutable current_token_index : int
      val mutable tokens : Flx_parse.token list
      val mutable tokens_copy : Flx_parse.token list
      method get_loc : Flx_ast.range_srcref
      method parse_user_statement :
        string ->
        Flx_ast.range_srcref ->
        (Flx_parse.token list * Flx_ast.ast_term_t) list ->
        (string, (Flx_parse.token list * Flx_ast.ast_term_t) list) Hashtbl.t ->
        Flx_ast.statement_t
      method put_back : Flx_parse.token -> unit
      method report_syntax_error : unit
      method token_peek : Lexing.lexbuf -> Flx_parse.token
      method token_src : Lexing.lexbuf -> Flx_parse.token
    end
  type 'a parser_t =
      (Lexing.lexbuf -> Flx_parse.token) -> Lexing.lexbuf -> 'a
  val parse_tokens : 'Flx_tok.parser_t -> Flx_parse.token list -> 'a
end