Is "a+++i" equal to "(a++)+i"
C11 standard, part 6.4 (Lexical elements)/4
says (and in C99 it's the same):
If the input stream has been parsed into preprocessing tokens up to a given character, the next preprocessing token is the longest sequence of characters that could constitute a preprocessing token.
There is also an example there:
The program fragment
x+++++y
is parsed asx ++ ++ + y
, which violates a constraint on increment operators, even though the parsex ++ + ++ y
might yield a correct expression.