Super cool! Nice work. Your readme says "I had difficulty getting his Parsing with Derivatives technique to work in a performant way". I was wondering if you could please elaborate.
What kind of performance did you achieve? How does that compare to the GLL parser you implemented? Did you implement memoization/compaction/fixed-point/etc from the latest research? How do the implementations compare in terms of code size and readability? Thanks, Brandon On Tuesday, April 9, 2013 1:18:39 AM UTC-4, puzzler wrote: > > 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.