let bump_found_atom bump state str ~max_pos ~pos cont =
  let pbuf = state.pbuf in
  let atom = Atom (Buffer.contents pbuf) in
  match state.pstack with
  | [] -> Done (atom, mk_parse_pos state pos)
  | rev_sexp_lst :: sexp_stack ->
      Buffer.clear pbuf;
      state.pstack <- (atom :: rev_sexp_lst) :: sexp_stack;
      bump state;
      cont state str ~max_pos ~pos:(pos + 1)