Luke Palmer wrote: > This requires infinite lookahead to parse. Nobody likes infinite > lookahead grammars.
Perl already needs infinite lookahead. Anyways, most people don't care whether a grammar is ambiguous or not -- if we did, natural human languages would look very different. People want expressive languages. (Some people even consider ambiguity a feature. Poets? Comedians? Lawyers?) I don't know how we should handle code blocks, but I do know that the answer should solve human problems, not yacc's. Perl 5 doesn't accept either of these loops: if ($_) { print "$_\n" } for (qw(1 0)); print "$_\n" if ($_) for (qw(1 0)); The code must be written as: for (qw(1 0)) { print "$_\n" if ($_) } Why won't a similar solution work for user-defined syntax in Perl 6? (It would be no worse than Perl 5...) - Ken