![](https://secure.gravatar.com/avatar/a1783efdf2a78d2029d2448b3007e051.jpg?s=120&d=mm&r=g)
The original question was about a lexer do use with buffalo. PEG parsers do the equivalent of yacc + lex but it should be possible to use a PEG parser to do only the lexer part to use with buffalo. Optima (and optima.ppcre) is another library that can be used for lexers. Marc On 2/14/15 17:31, Paul Tarvydas wrote:
I wish that I’d had PEG 20 years ago,
PEG parses a wider set of grammars than YACC can.
PEG is backtracking, but, it uses a trick, memoizing, that minimizes the cost of backtracking.
Given the hardware we have these days, I don’t see why anyone would use anything but PEG and packrat parsing.
Google phrase “bryan ford peg”
Building a PEG parser is way, way easier than dealing with Lex and YACC.
I’m not sure if I’ve answered all of your questions … please feel free to ask again....
pt
On Feb 14, 2015, at 4:47 PM, Gary King <garywarrenking@gmail.com> wrote:
Hi Paul,
What is the performance of Esrap vis-a-vis something like cl-yac? Given a BN grammar, how hard is it to build up a PEG parser?
thanks,
On Feb 13, 2015, at 10:04 AM, Paul Tarvydas <paultarvydas@gmail.com> wrote:
Esrap is a PEG parser. PEG is Lex and Yacc combined. I'm sure that you could use esrap as a lexer-only, if you wish to.
http://nikodemus.github.io/esrap/
On my github there's an experimental PEG syntax overlaid over esrap syntax, if you care. https://github.com/guitarvydas
Ping me if you need ref's to papers about PEG.
pt
_______________________________________________ pro mailing list pro@common-lisp.net https://mailman.common-lisp.net/cgi-bin/mailman/listinfo/pro -- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter
_______________________________________________ pro mailing list pro@common-lisp.net https://mailman.common-lisp.net/cgi-bin/mailman/listinfo/pro
_______________________________________________ pro mailing list pro@common-lisp.net https://mailman.common-lisp.net/cgi-bin/mailman/listinfo/pro