Brian Schott wrote:
On Wednesday, 1 August 2012 at 17:36:16 UTC, Walter Bright wrote:
I suggest proposing the D lexer as an addition to Phobos. But if that
is done, its interface would need to accept a range as input, and its
output should be a range of tokens.
It used to be range-based, but the performance was terrible. The
inability to use slicing on a forward-range of characters and the
gigantic block on KCachegrind labeled "std.utf.decode" were the reasons
that I chose this approach. I wish I had saved the measurements on this....
Ranges are usually taken as template parameters, so you can use static
if to provide different code for arrays and regular ranges.