Over at eighty-twenty I recount a couple of recent random excursions into various bits and pieces of code.
Besides those developments, I also spent some time on Sunday morning modifying Dorai Sitaram‘s pregexp version 20050502 to operate
over streams as well as strings, so that I could use it for lexing
arbitrary character sources (for instance, with the packrat parser library I’ve been developing).
The basic interface, after the patch, is now either the standard
or the new
where streams are created with
I’ve also added a procedure
pregexp-match-head, which is like
pregexp-match-positions except it only matches at the very beginning of
the input string or stream;
pregexp-match-head behaves like Python’s
pregexp-match-positions behaves like Python’s
I haven’t modified
partly because I have no need for them for my application and partly
because I’m not sure what their behaviour should be: should
pregexp-replace, when given a stream, answer a stream, or a string? In
the case of
pregexp-split, since it has to examine the entire input in
any case, supporting streams seems unnecessary. (Perhaps I should have
pregexp-stream->string utility, though.)
The patch against version 20050502 is downloadable here.
Thanks to Dorai for a great library!