Re:Literals in Programming Languages
by shaurz on Thursday February 28, 2013 @10:02AM
(#5298904)
Making the minus part of the literal can lead to parsing ambiguity. For example, "x-3" would parse as 2 tokens "x" and "-3" (instead of 3 tokens "x", "-" and "3") which would be a syntax error in C. The only workaround I can think of is making any expression followed by a negative number parse as a subtraction.
[ Parent
| on HN ]
Re:Literals in Programming Languages
by reycharles on Thursday February 28, 2013 @12:17PM
(#5299654)
> Making the minus part of the literal can lead to parsing ambiguity.
Not really. It's done in java. Usually, minus ("-") is parsed as a token and then unary minus on integer literals are transformed to a negative integer literal.
So, -2147483648 is read as MINUS INT_LITERAL and thus transformed into "-2147483648" as an INT_LITERAL, but -(2147483648) should be read as MINUS L_PAREN INT_LITERAL R_PAREN and should thus not be transformed.