On 10/7/07, Lowell Thomas <[EMAIL PROTECTED]> wrote: > Hi, I'm new to the list and I can see by the member names that I am a novice > venturing into expert waters. I am the developer of APG – an ABNF Parser > Generator. It is a project that began as a learning curiosity but has > improved with successive releases. I am about to release version 5.0, and in > that release I am claiming that APG 5.0 parsers and PEG recognize the same > set of languages. This result, if true, is surprising to me, since APG > starts with a context-free grammar formalism and PEG makes a point of not. > The argument is heuristic, not mathematical, but the result looks almost > obvious on the face of it. I'm guessing this is either already known or I'm > missing the point somewhere. I don't want to make false claims or erroneous > representations of PEG, so your criticisms and comments would be welcome, > should you be interested in taking a look at it. You can find the discussion > and the software at the temporary locations: > > http://www.coasttocoastresearch.com/Temp/Apg5_0_description.htm > http://www.coasttocoastresearch.com/Temp/Apg5_0.zip > > Thanks. > Lowell Thomas
I had a similar observation with other recursive-descent libraries such as Boost.Spirit. It seems to me that as soon as you add disambiguation and zero-width parsing rules to a BNF you end up with a PEG, but I suspect that this is too facile of an understanding. Can anyone help clarify the difference? However, the documentation of Boost.Spirit describes it as non-deterministic. I am unsure exactly why they say this, but I suspect that it is because the order of evaluation of arguments to a function is not specified in the C++ standard. Does your library avoid this problem Lowell? I look forward to other people's insights into these issues. Christopher Diggins http://www.cdiggins.com _______________________________________________ PEG mailing list PEG@lists.csail.mit.edu https://lists.csail.mit.edu/mailman/listinfo/peg