[cfe-commits] [Request for approval] Identifier text in raw lexing
Abramo Bagnara
abramo.bagnara at gmail.com
Fri Dec 10 08:41:41 PST 2010
Il 07/12/2010 10:32, Abramo Bagnara ha scritto:
> Il 05/12/2010 08:42, Abramo Bagnara ha scritto:
>> Il 05/12/2010 00:26, Chris Lattner ha scritto:
>>> On Dec 4, 2010, at 2:36 AM, Abramo Bagnara wrote:
>>>> Currently, during lexing in LexingRawMode only the literal text is
>>>> collected (setLiteralData/getLiteralData), while the identifier text is
>>>> lost.
>>>
>>> Hi Abramo,
>>>
>>> I'm not sure what you're trying to accomplish here: it sounds like you want to get the "identifier text" from the token itself without getting the spelling. Is this correct? If so, are you looking for a performance win, a functionality improvement, or something else? What problem are you trying to solve?
>>
>> Yes, the idea is to have access to identifier text just like we have now
>> access to LiteralData.
>>
>> We are looking for a performance win (and secondarily for a simmetric
>> interface wrt literals) for our raw lexer clients (currently they need
>> to use something like the above to get the text for each identifier):
>>
>> token_begin = sm.getSpellingLoc(token_begin);
>>
>> const char* current_char = sm.getCharacterData(token_begin);
>> const char* end = current_char + length;
>>
>> while (current_char < end) {
>> char c = clang::Lexer::getCharAndSizeNoWarn(current_char, length, lo);
>> output += c;
>> current_char += length;
>> }
>
> I've attached the working patch for approval.
Ping.
More information about the cfe-commits
mailing list