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