Changeset View
Changeset View
Standalone View
Standalone View
lib/ASTMatchers/Dynamic/Parser.cpp
Show First 20 Lines • Show All 371 Lines • ▼ Show 20 Lines | while (Tokenizer->nextTokenKind() != TokenInfo::TK_Eof) { | ||||
} | } | ||||
Args.push_back(ArgValue); | Args.push_back(ArgValue); | ||||
SCE.nextArg(); | SCE.nextArg(); | ||||
} | } | ||||
} | } | ||||
if (EndToken.Kind == TokenInfo::TK_Eof) { | if (EndToken.Kind == TokenInfo::TK_Eof) { | ||||
Error->addError(OpenToken.Range, Error->ET_ParserNoCloseParen); | // Just assume they want to finish the expression immediately and did not | ||||
return false; | // have enough trailing right parens. | ||||
} | } | ||||
std::string BindID; | std::string BindID; | ||||
if (Tokenizer->peekNextToken().Kind == TokenInfo::TK_Period) { | if (Tokenizer->peekNextToken().Kind == TokenInfo::TK_Period) { | ||||
// Parse .bind("foo") | // Parse .bind("foo") | ||||
Tokenizer->consumeNextToken(); // consume the period. | Tokenizer->consumeNextToken(); // consume the period. | ||||
const TokenInfo BindToken = Tokenizer->consumeNextToken(); | const TokenInfo BindToken = Tokenizer->consumeNextToken(); | ||||
if (BindToken.Kind == TokenInfo::TK_CodeCompletion) { | if (BindToken.Kind == TokenInfo::TK_CodeCompletion) { | ||||
▲ Show 20 Lines • Show All 223 Lines • Show Last 20 Lines |