Hi,

As we are talking about left recursion, I would like to say that
I updated my paper about left recursion in arXiv:
http://arxiv.org/abs/1207.0443

The previous version of the paper shows a conservative
extension of PEGs that handles direct and indirect left recursion.

This extended version discusses how to deal with
precedences and how to compile a left-recursive PEG to a
program in a low level parsing machine.

Sérgio


On Tue, Aug 13, 2013 at 6:56 AM, Matthew Goode <matt...@scratchy.org.nz>wrote:

>  Hello
>
> Thanks for the input! (And to Alex too).
>
> There is much that I want to add to this project, but first I need to work
> on a few others (the one called Skeleton in particular, which is a code
> generator for creating code generators...)
>
> I'm not sure the problem with the option grouping - it's not a feature
> many people would need, but it serves a purpose that makes sense to me. I
> have to apologize for saying the algorithm uses rule rewriting - this is
> perhaps not a good way of explaining the process (it doesn't really rewrite
> anything). I will try and have an informal writeup of the method in a week
> or two and a more formal one later. I think there is a very nice proof of
> the method's robustness (though I may be wrong - gut feeling is it should
> be all good).
>
> The basic left-recursion handling is similar to the approaches I've seen
> described before.
>
> thanks again,
> Matthew
>
>
> On 13/08/13 11:50, Orlando Hill wrote:
>
> Looks great, Matthew!
>
>  I would encourage you to keep refining things. Option grouping shouldn't
> be needed for specifying precedence levels, and the difference in generated
> code when using a multi-option pattern is going to confuse users.
>
>  You mention "rewriting the pattern resolution on the right", so I
> imagine the way you're handling left-recursion is similar to the method I
> suggested back in 2007. I've already failed twice to describe that method
> on this mailing list, so I guess I'll have to get help in turning it into a
> published work that people will actually believe.
>
>  Anyway, keep up the good work,
> Orlando
>
>
> On Mon, Aug 12, 2013 at 5:28 PM, Matthew Goode <matt...@scratchy.org.nz>wrote:
>
>> Hello, I'm pretty much ready to release a parser generator I've been
>> working on for a while. It is a packrat inspired parser (though can avoid
>> memorising), that handles left recursion indirectly and directly, and takes
>> into account option order with left recursion. So, the following
>>
>> e = { e "+" e } | {e "*" e } | NUMBER
>>
>> will parse "1+2*3+4" as (1+((2*3)+4) (if specified correctly - see
>> documentation). This seems to work okay with indirect recursion as well,
>> and with or without memorisation. It does use a tokenisation step, because
>> I liked that better, but that may change in future versions. It also has
>> extensions to PEG that allow it to match things like Fibonacci sequences...
>>
>> It can be found at http://scratchy.org.nz/austen.php
>>
>> (It is still a work in a progress, but for the most part is a well
>> matured tool - I've been working on and using it for years).
>>
>> Matthew
>>
>>
>> _______________________________________________
>> PEG mailing list
>> PEG@lists.csail.mit.edu
>> https://lists.csail.mit.edu/mailman/listinfo/peg
>>
>
>
>
> _______________________________________________
> PEG mailing list
> PEG@lists.csail.mit.edu
> https://lists.csail.mit.edu/mailman/listinfo/peg
>
>
_______________________________________________
PEG mailing list
PEG@lists.csail.mit.edu
https://lists.csail.mit.edu/mailman/listinfo/peg

Reply via email to