I find this library very exciting. It is incredibly well documented, already covers a broad range of use cases, I can't wait for trying it.
There are also a lot of interesting ideas that may pollinate outside it, I love the cross-pollination capability of open source software ! (i.e. I'd love to see some of these features into parsley). Do you have a roadmap for the next releases ? Of interest to me: - restartable version ? (probably doable, if internal implementation uses immutable datastructures) - incremental version ? (Dunno if that's an easy one, and way beyond my current programming skills anyway to be able to even judge) - possibility to have transform-map(s) passed as an argument to parse, so that a collection of views can be applied in parallel and the tree be "traversed" once ? Have you tried some tests to compare performance with e.g. same grammars in Antlr ? Thanks again for the hard work, -- Laurent 2013/4/9 Mark Engelberg <mark.engelb...@gmail.com>: > Instaparse is an easy-to-use, feature-rich parser generator for Clojure. > The two stand-out features: > > 1. Converts standard EBNF notation for context-free grammars into an > executable parser. Makes the task of building parsers as lightweight and > simple as working with regular expressions. > > 2. Works with *any* context-free grammar. This means you don't have to > learn the esoteric subtleties of LR, LL, LALR or any other specialized > subset. Left-recursion, right-recursion, ambiguous grammars -- instaparse > handles it all. > > Example: > > (def as-and-bs > (parser > "S = AB* > AB = A B > A = 'a'+ > B = 'b'+")) > > => (as-and-bs "aaaaabbbaaaabb") > [:S > [:AB [:A "a" "a" "a" "a" "a"] [:B "b" "b" "b"]] > [:AB [:A "a" "a" "a" "a"] [:B "b" "b"]]] > > https://github.com/Engelberg/instaparse for full feature list and extensive > tutorial. > > -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.