A question: Do rules matched in a { code } block set backtrack points for the outer rule? For example, are these rules equivalent?
rule expr1 { <term> { /@operators/ or fail } <term> } rule expr2 { <term> @operators <term> } And a comment: It would be nice to have procedural control over back- tracking so that { code } can fail, succeed (not fail), or succeed and commit. Right now we can follow { code } with ::, :::, etc. but that does not allow much control. I'm a little afraid of what happens in an LL(Inf) grammar if backtracking states aren't aggressively pruned. - Ken