mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Lexer constuctors: allow to create a lexer that scans a subrange without having
to create a parent lexer first. Swift SVN r7085
This commit is contained in:
@@ -199,12 +199,12 @@ std::vector<Token> swift::tokenize(SourceManager &SM, unsigned BufferID,
|
||||
if (Offset == 0 && EndOffset == 0)
|
||||
EndOffset = SM->getMemoryBuffer(BufferID)->getBufferSize();
|
||||
|
||||
Lexer L(SM, BufferID, /*Diags=*/nullptr, /*InSILMode=*/false, KeepComments);
|
||||
Lexer SubLexer(L, Offset, EndOffset);
|
||||
Lexer L(SM, BufferID, /*Diags=*/nullptr, /*InSILMode=*/false, KeepComments,
|
||||
Offset, EndOffset);
|
||||
std::vector<Token> Tokens;
|
||||
do {
|
||||
Tokens.emplace_back();
|
||||
SubLexer.lex(Tokens.back());
|
||||
L.lex(Tokens.back());
|
||||
if (Tokens.back().is(tok::string_literal) && TokenizeInterpolatedString) {
|
||||
Token StrTok = Tokens.back();
|
||||
Tokens.pop_back();
|
||||
|
||||
Reference in New Issue
Block a user