Octal-like integer literals

Timon Gehr timon.gehr at gmx.ch
Sat Feb 11 08:37:17 PST 2012


On 02/11/2012 05:00 PM, H. S. Teoh wrote:
> Alright, I'm plodding along slowly with my D lexer, and I'm running into
> an interesting case. According to the spec, int literals that begin with
> '0' are supposed to be octal, with the exception of "0" itself, which is
> decimal 0. DecimalInteger is defined to begin with a non-zero digit
> followed by one or more digits (may be zero).
>
> So how should the lexer treat a literal like "0800" or "0900"?
>
> (Since octal literals are deprecated, I'm leaving them out of my lexer,
> so should 0800 and 0900 be rejected as invalid?)
>
>
> T
>

Octal literals whose value is larger than 7 must be rejected. Octal 
literals with values up to 7 must be accepted.


More information about the Digitalmars-d mailing list