std.d.lexer requirements
Walter Bright
newshound2 at digitalmars.com
Fri Aug 3 12:59:59 PDT 2012
On 8/3/2012 6:18 AM, deadalnix wrote:
> lexer can have a parameter that tell if it should build a table of token or
> slice the input. The second is important, for instance for an IDE : lexing will
> occur often, and you prefer slicing here because you already have the source
> file in memory anyway.
A string may span multiple lines - IDEs do not store the text as one string.
> If the lexer allocate chunks, it will reuse the same memory location for the
> same string. Considering the following mecanism to compare slice, this will
> require 2 comparaisons for identifier lexed with that method :
>
> if(a.length != b.length) return false;
> if(a.ptr == b.ptr) return true;
> // Regular char by char comparison.
>
> Is that a suitable option ?
You're talking about doing for strings what is done for identifiers - returning
a unique handle for each. I don't think this works very well for string
literals, as there seem to be few duplicates.
More information about the Digitalmars-d
mailing list