lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Wed, May 6, 2015 at 11:13 AM, Luiz Henrique de Figueiredo
<lhf@tecgraf.puc-rio.br> wrote:
>> >> PS. I still like syntax "hello":sub(1, 4)
>
>> I always wondered: is there a reason why this syntax is not supported?
>
> Because to allow it in general would require unbounded lookahead.
> Consider for instance:
>         "x".."x".."x".."x".."x".."x".."x".."x".."x".."x".."x":sub(1, 4)
>
> The current solution with parentheses solves this and is fully general.
> It's probaly easy to allow just this syntax <string literal> : <function call>,
> but not general enough.
>
>

Is the ':' operator part of precedence? Meaning, is there a precedence
that can be used to generally say "concatenation has higher precedence
than `:`". Forgive me if this is a dumb question.

I'm motivated to ask it because requiring parentheses for what you
described (or actually just stating that `:sub(4)` is only called on
the final `"x"` string) is understandable, to me. Also, for my use
case, I am not likely to run into that, because I'm using format,
which is often used as a more flexible substitution for concatenation.

--Andrew