Perhaps this will help?

http://www.dalnefre.com/wp/2011/05/parsing-expression-grammars-part-4/#expression

A different perspective, in any case.


On Mon, Sep 7, 2015 at 4:27 PM, Nikita Nemkin <nik...@nemkin.ru> wrote:

> Hello!
>
> I wonder if someone could help me with a certain assertion made in this
> paper: http://arxiv.org/abs/1207.0443v3 (Medeiros, Mascarenhas,
> Ierusalimschy. "Left Recursion in Parsing Expression Grammars" v3).
>
> The last paragraph on p.14:
>
> > We could impose left-associativity as the default in case of a grammar
> that
> > mixes left and right recursion just by changing k ≥ k' in rule lvar.4 to
> k > k'
> > and by changing k < k' in rule lvar.5 to k ≤ k'. The disadvantage is
> that this
> > makes specifying precedence levels with right-associative operators a
> little
> > harder
>
> I can't see how it's supposed to work. Consider this grammar:
>
>     E = E[1] "+" E[1] / "n"
>
> where [1] is precedence and the initial precedence is also 1.
>
> Default precedence check is "fail if current rule precedence <= memoized
> precedence," leading to right associative parse tree, as expected.
>
> Modified precedence check is "fail if current rule precedence < memoized
> precedence" and it does NOT lead to left associativity. Instead, recursive
> E[1] invocation always fails due to precedence check, reducing the grammar
> to E = "n" "+" "n" / "n".
>
> General algorithm producing left association by default would be much
> preferred from a usability perspective, if only it was possible.
>
>  -Nikita
>
> _______________________________________________
> 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