On 10/10/16 9:57 AM, Stephane Chazelas wrote:

> Now, if we look at the C spec, the way +++ is parsed is down to
> tokenisation that will also go for the longest operator first.
> There --test+++3 would be tokenised as -- test ++ + 3 which
> would lead to a syntax error as test++ isn't an lvalue.
> bash works differently.
> From what I understand from past discussions on the subject here
> bash doesn't treat it as a syntax error and tries instead to tokenise
> those incorrect ++/-- into multiple + or - operators if possible.

This is more or less correct.  Bash doesn't treat a token as a post-
increment or post-decrement unless the previous token is a string.  Since
the previous token is a number (based on the evaluation of the pre-
increment), these are treated as a sequence of unary pluses.

In this case, we can add some additional error checking.


``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to