On Sunday, 3 November 2013 at 01:45:23 UTC, Timothee Cour wrote:
1)
The main issue I see with pegged is PEG grammars don't support
left
recursion, so for example will fail on foo[1].bar(2).fun().
Unless there's a plan to accomodate those, I sense a dead end.
One can eliminate left recursion but this has issues.
Use the repetition operator(s) and turn the resulting array into
whatever tree you like. In practice, I have never had a problem
with this.
I have used both Pegged and have written an SQL parser at work
(not exhaustive, just what's needed) that uses C macros as PEG
elements. Tangent: Using C macros for this worked surprisingly
well and allowed me to avoid an extra step in the build process
(I do not have access to D for that project). Pegged is still
much more scalable, optimizable, and the grammars are a lot less
ugly/finicky.