[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: ender: owner-lua-l@...
- From: tomas@...
- Date: Sat, 14 Oct 2000 21:27:43 -0200 (EDT)
>
> Hi
>
> The expression syntax has some strange limitations. For
> example '(a or b).x' gives a syntax error. I see no
> logical reason for that. Afaics the following patch
> will fix that.
>
> --- lua-4b-orig/src/lparser.c Wed Sep 20 19:57:08 2000
> +++ lua-4b-es1/src/lparser.c Fri Oct 13 22:33:37 2000
> @@ -636,6 +636,7 @@
> next(ls);
> expr(ls, v);
> check(ls, ')');
> + var_or_func_tail(ls, v);
> return;
> }
> case TK_NAME: case '%': {
> @@ -649,6 +650,7 @@
> }
> v->k = VEXP;
> v->u.l.t = v->u.l.f = NO_JUMP;
> + var_or_func_tail(ls, v);
> }
>
>
> Another point: the statement 'foo "a" "b"' is valid but
> gives non obvious results. I guess, most people will
> see that as 'foo("a","b")' but it is 'foo("a")("b")',
> that is the object returned by foo("a") is called as a
> function with argument "b". IMHO the first interpretation
> would be more intuitive and useful, especially when mixing
> strings and table constructors: 'create "foo" { x=1, y=2 }'.
>
> Just my 2 cent, ET.
>
>