Hey all,

I've just uploaded to hackage format-0.1, a small library for handling format strings similar to those used by nginx's log_format directive. The idea is to allow easy parsing of text rendered with such a format string, to make parsing simple, automatically generated text files as easy as possible. So for example, if you want to parse lines consisting of two bits of text, separated by " -- ", then

    map (scanFormatString "$a -- $b") $ lines text

will do so, generating associative arrays with the variable names as keys and their content as values. A `renderFormatString` function, doing the obvious, is also provided.

Obligatory blog post with some more details: http://bytbox.net/blog/2012/05/format-haskell.html

I hope somebody finds this useful. (This seems the sort of thing which should already have existed, but I couldn't find anything. Did I miss it?)

I'm using parsec underneath, both for parsing the format string and the generated parser, and I've payed no attention to optimization. Some simple testing indicates that a reasonably fast computer takes about 1 second to parse 5000 lines with nginx's (and apache's) default format string - pretty slow. If there's demand, I'll be happy to pay more attention to that.

--
Scott Lawrence

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to