Core parse function has 3 continuations: - new-record - new-field - end Ad hoc parsing. This is again a typical ad-hoc table parsing algo. Isn't there a way to write such parsers more directly? Since there is no recursion to keep track of, regexes can do it just fine. I.e. convert by preprocessing to CSV or SEXP and read directly.