Skip Menu |

From: Alex Jakimenko <alex.jakimenko [...] gmail.com>
To: rakudobug [...] perl.org
Subject: LTA error messages when right bracket is missing: $<> , <>, () and so on
Date: Sat, 18 Jul 2015 22:38:26 +0300
Download (untitled) / with headers
text/plain 845b
Similar issue: https://rt.perl.org/Public/Bug/Display.html?id=125247 (unclosed multiline comments). This time it is about other unclosed things.

Code:
say $<word;
# some code here

Error:
Unable to parse quote-words subscript; couldn't find right angle quote
at ./test.pl:25
------> <BOL>⏏<EOL>
    expecting any of:
        argument list
        term

Similar problem with:
say <word;
say <<word;
say (word;
say [word;
... more?

1) "expecting any of" section does not help that much. There is no need to add terms or argument lists to the end of your file to fix the problem, the only thing that is actually expected is a closing bracket.
2) The end of file does not count as a helpful line number, especially if the file is long. It would be great to have the same "(corresponding < was at line 1)"-like message as with multiline comments

See this pull request: https://github.com/rakudo/rakudo/pull/1183

Unfortunately not all of the things are covered. For example:

perl6 -e 'my $x = q:to/foo/;
blah
'
Show quoted text
===SORRY!=== Error while compiling -e
Ending delimiter foo not found
at -e:3
------> <BOL>⏏<EOL>
    expecting any of:
        whitespace

Then there's also:
* https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6
/Grammar.nqp#L3741
* https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6/Grammar.nqp#L3780-L3792
* https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6/Grammar.nqp#L3820-L3826

And maybe other things too. For example, nqp itself prints a similar error message and does not mention the starter. I don't know if any user will ever see the error message from NQP though.

So there's a lot to be done to resolve this ticket fully…

Oh, also! I did not remove “expecting any of:” part. This has to be done also.

On 2015-07-18 12:38:41, alex.jakimenko@gmail.com wrote:
Show quoted text
> Similar issue: https://rt.perl.org/Public/Bug/Display.html?id=125247
> (unclosed multiline comments). This time it is about other unclosed things.
>
> Code:
> say $<word;
> # some code here
>
> Error:
> Unable to parse quote-words subscript; couldn't find right angle quote
> at ./test.pl:25
> ------> <BOL>⏏<EOL>
> expecting any of:
> argument list
> term
>
> Similar problem with:
> say <word;
> say <<word;
> say (word;
> say [word;
> ... more?
>
> 1) "expecting any of" section does not help that much. There is no need to
> add terms or argument lists to the end of your file to fix the problem, the
> only thing that is actually expected is a closing bracket.
> 2) The end of file does not count as a helpful line number, especially if
> the file is long. It would be great to have the same "(corresponding < was
> at line 1)"-like message as with multiline comments


PR was merged, tests needed.

On 2017-10-06 19:40:44, alex.jakimenko@gmail.com wrote:
Show quoted text
> See this pull request: https://github.com/rakudo/rakudo/pull/1183
>
> Unfortunately not all of the things are covered. For example:
>
> perl6 -e 'my $x = q:to/foo/;
> blah
> '
> ===SORRY!=== Error while compiling -e
> Ending delimiter foo not found
> at -e:3
> ------> <BOL>⏏<EOL>
> expecting any of:
> whitespace
>
> Then there's also:
> *
> https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6
> /Grammar.nqp#L3741
> *
> https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6/Grammar.nqp#L3780-
> L3792
> *
> https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6/Grammar.nqp#L3820-
> L3826
>
> And maybe other things too. For example, nqp itself prints a similar
> error
> message and does not mention the starter. I don't know if any user
> will ever
> see the error message from NQP though.
>
> So there's a lot to be done to resolve this ticket fully…
>
> Oh, also! I did not remove “expecting any of:” part. This has to be
> done also.
>
> On 2015-07-18 12:38:41, alex.jakimenko@gmail.com wrote:
> > Similar issue: https://rt.perl.org/Public/Bug/Display.html?id=125247
> > (unclosed multiline comments). This time it is about other unclosed
> > things.
> >
> > Code:
> > say $<word;
> > # some code here
> >
> > Error:
> > Unable to parse quote-words subscript; couldn't find right angle
> > quote
> > at ./test.pl:25
> > ------> <BOL>⏏<EOL>
> > expecting any of:
> > argument list
> > term
> >
> > Similar problem with:
> > say <word;
> > say <<word;
> > say (word;
> > say [word;
> > ... more?
> >
> > 1) "expecting any of" section does not help that much. There is no
> > need to
> > add terms or argument lists to the end of your file to fix the
> > problem, the
> > only thing that is actually expected is a closing bracket.
> > 2) The end of file does not count as a helpful line number,
> > especially if
> > the file is long. It would be great to have the same "(corresponding
> > < was
> > at line 1)"-like message as with multiline comments


Ah, sorry. Even though some tests are needed, this ticket is still not fully resolved. I'll try to split it right now.

On 2017-10-07 09:40:03, alex.jakimenko@gmail.com wrote:
Show quoted text
> PR was merged, tests needed.
>
> On 2017-10-06 19:40:44, alex.jakimenko@gmail.com wrote:
> > See this pull request: https://github.com/rakudo/rakudo/pull/1183
> >
> > Unfortunately not all of the things are covered. For example:
> >
> > perl6 -e 'my $x = q:to/foo/;
> > blah
> > '
> > ===SORRY!=== Error while compiling -e
> > Ending delimiter foo not found
> > at -e:3
> > ------> <BOL>⏏<EOL>
> > expecting any of:
> > whitespace
> >
> > Then there's also:
> > *
> >
> https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6
> > /Grammar.nqp#L3741
> > *
> >
> https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6/Grammar.nqp#L3780-
> > L3792
> > *
> >
> https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6/Grammar.nqp#L3820-
> > L3826
> >
> > And maybe other things too. For example, nqp itself prints a similar
> > error
> > message and does not mention the starter. I don't know if any user
> > will ever
> > see the error message from NQP though.
> >
> > So there's a lot to be done to resolve this ticket fully…
> >
> > Oh, also! I did not remove “expecting any of:” part. This has to be
> > done also.
> >
> > On 2015-07-18 12:38:41, alex.jakimenko@gmail.com wrote:
> > > Similar issue:
> > > https://rt.perl.org/Public/Bug/Display.html?id=125247
> > > (unclosed multiline comments). This time it is about other unclosed
> > > things.
> > >
> > > Code:
> > > say $<word;
> > > # some code here
> > >
> > > Error:
> > > Unable to parse quote-words subscript; couldn't find right angle
> > > quote
> > > at ./test.pl:25
> > > ------> <BOL>⏏<EOL>
> > > expecting any of:
> > > argument list
> > > term
> > >
> > > Similar problem with:
> > > say <word;
> > > say <<word;
> > > say (word;
> > > say [word;
> > > ... more?
> > >
> > > 1) "expecting any of" section does not help that much. There is no
> > > need to
> > > add terms or argument lists to the end of your file to fix the
> > > problem, the
> > > only thing that is actually expected is a closing bracket.
> > > 2) The end of file does not count as a helpful line number,
> > > especially if
> > > the file is long. It would be great to have the same
> > > "(corresponding
> > > < was
> > > at line 1)"-like message as with multiline comments


OK. There are 5 new tickets for all other issues. In this particular ticket let's talk about (), [], "", etc. Basically, anything that currently says “corresponding starter” (word “starter” instead of the actual starter). It should really print the actual starter, but for now it's a good way to figure out which error message you're seeing.

Try to cover as many things as you can in tests and we'll close this ticket.

See https://github.com/rakudo/rakudo/commit/6542bb8032e7203b8736655075dbd3452856bc93 for some info.

On 2017-10-07 09:41:19, alex.jakimenko@gmail.com wrote:
Show quoted text
> Ah, sorry. Even though some tests are needed, this ticket is still not
> fully
> resolved. I'll try to split it right now.
>
> On 2017-10-07 09:40:03, alex.jakimenko@gmail.com wrote:
> > PR was merged, tests needed.
> >
> > On 2017-10-06 19:40:44, alex.jakimenko@gmail.com wrote:
> > > See this pull request: https://github.com/rakudo/rakudo/pull/1183
> > >
> > > Unfortunately not all of the things are covered. For example:
> > >
> > > perl6 -e 'my $x = q:to/foo/;
> > > blah
> > > '
> > > ===SORRY!=== Error while compiling -e
> > > Ending delimiter foo not found
> > > at -e:3
> > > ------> <BOL>⏏<EOL>
> > > expecting any of:
> > > whitespace
> > >
> > > Then there's also:
> > > *
> > >
> >
> https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6
> > > /Grammar.nqp#L3741
> > > *
> > >
> >
> https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6/Grammar.nqp#L3780-
> > > L3792
> > > *
> > >
> >
> https://github.com/rakudo/rakudo/blob/f62ae60c48d1372df18b49aca44e10af44ead2d6/src/Perl6/Grammar.nqp#L3820-
> > > L3826
> > >
> > > And maybe other things too. For example, nqp itself prints a
> > > similar
> > > error
> > > message and does not mention the starter. I don't know if any user
> > > will ever
> > > see the error message from NQP though.
> > >
> > > So there's a lot to be done to resolve this ticket fully…
> > >
> > > Oh, also! I did not remove “expecting any of:” part. This has to be
> > > done also.
> > >
> > > On 2015-07-18 12:38:41, alex.jakimenko@gmail.com wrote:
> > > > Similar issue:
> > > > https://rt.perl.org/Public/Bug/Display.html?id=125247
> > > > (unclosed multiline comments). This time it is about other
> > > > unclosed
> > > > things.
> > > >
> > > > Code:
> > > > say $<word;
> > > > # some code here
> > > >
> > > > Error:
> > > > Unable to parse quote-words subscript; couldn't find right angle
> > > > quote
> > > > at ./test.pl:25
> > > > ------> <BOL>⏏<EOL>
> > > > expecting any of:
> > > > argument list
> > > > term
> > > >
> > > > Similar problem with:
> > > > say <word;
> > > > say <<word;
> > > > say (word;
> > > > say [word;
> > > > ... more?
> > > >
> > > > 1) "expecting any of" section does not help that much. There is
> > > > no
> > > > need to
> > > > add terms or argument lists to the end of your file to fix the
> > > > problem, the
> > > > only thing that is actually expected is a closing bracket.
> > > > 2) The end of file does not count as a helpful line number,
> > > > especially if
> > > > the file is long. It would be great to have the same
> > > > "(corresponding
> > > > < was
> > > > at line 1)"-like message as with multiline comments




This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org