28-Feb-2013 19:31, Andrei Alexandrescu пишет:
On 2/28/13 5:54 AM, Walter Bright wrote:
On 2/27/2013 11:55 PM, Jonathan M Davis wrote:
Again, please see how lexer.c works. I assure you, there is no double
copying going on, nor is there a double test for the terminating 0.

I know what the lexer does, and remember that it _doesn't_ operate on
ranges,
and there are subtle differences between being able to just use char*
and
trying to handle generic ranges.

Hence the need to invent SentinelInputRange.

I don't think the sentinel input range is a blocker for redoing the
parser (with ranges) in D. This discussion has probably run its course.
The right thing to do at this point is port the lexer and figure what
primitives are necessary from its input.


And it wasn't the problem that std.d.lexer had anyway. Check the latest results.

The merit of sentinel range IMHO is largely in tapping into C-strings and the like more naturally.



--
Dmitry Olshansky

Reply via email to