On 2/28/2013 7:38 AM, Dmitry Olshansky wrote:
28-Feb-2013 14:44, Walter Bright пишет:
On 2/28/2013 12:25 AM, Jacob Carlborg wrote:
On 2013-02-28 08:23, Walter Bright wrote:
There is always a terminating 0, even if the file ends in 0x1a.
(The 0x1A comes from some old editors that end a file with a control Z.)
http://dlang.org/lex.html, "End of File" shows this:
EndOfFile:
physical end of the file
\u0000
\u001A
Doesn't that mean that the input is empty if the file is empty, \u0000
or \u001A
is encountered?
Please follow the source code from file to input to the lexer.
Source as spec is no good. Either change the spec or admit that having a tuple
of sentinels as manifest constant is fine. In any case constant tuples are
easily unrolled into case statements.
The spec is correct, so is the code, and tuple sentinels are entirely
unnecessary.