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