Lines Matching refs:TokenInfo
37 struct Parser::TokenInfo { struct in clang::ast_matchers::dynamic::Parser
57 TokenInfo() = default;
65 const char* const Parser::TokenInfo::ID_Bind = "bind";
66 const char *const Parser::TokenInfo::ID_With = "with";
84 const TokenInfo &peekNextToken() const { return NextToken; } in peekNextToken()
87 TokenInfo consumeNextToken() { in consumeNextToken()
88 TokenInfo ThisToken = NextToken; in consumeNextToken()
93 TokenInfo SkipNewlines() { in SkipNewlines()
94 while (NextToken.Kind == TokenInfo::TK_NewLine) in SkipNewlines()
99 TokenInfo consumeNextTokenIgnoreNewlines() { in consumeNextTokenIgnoreNewlines()
101 if (NextToken.Kind == TokenInfo::TK_Eof) in consumeNextTokenIgnoreNewlines()
106 TokenInfo::TokenKind nextTokenKind() const { return NextToken.Kind; } in nextTokenKind()
109 TokenInfo getNextToken() { in getNextToken()
111 TokenInfo Result; in getNextToken()
115 Result.Kind = TokenInfo::TK_CodeCompletion; in getNextToken()
122 Result.Kind = TokenInfo::TK_Eof; in getNextToken()
132 Result.Kind = TokenInfo::TK_Comma; in getNextToken()
137 Result.Kind = TokenInfo::TK_Period; in getNextToken()
144 Result.Kind = TokenInfo::TK_NewLine; in getNextToken()
149 Result.Kind = TokenInfo::TK_OpenParen; in getNextToken()
154 Result.Kind = TokenInfo::TK_CloseParen; in getNextToken()
181 Result.Kind = TokenInfo::TK_CodeCompletion; in getNextToken()
191 Result.Kind = TokenInfo::TK_Literal; in getNextToken()
194 Result.Kind = TokenInfo::TK_Literal; in getNextToken()
197 Result.Kind = TokenInfo::TK_Ident; in getNextToken()
202 Result.Kind = TokenInfo::TK_InvalidChar; in getNextToken()
214 void consumeNumberLiteral(TokenInfo *Result) { in consumeNumberLiteral()
246 Result->Kind = TokenInfo::TK_Literal; in consumeNumberLiteral()
253 Result->Kind = TokenInfo::TK_Literal; in consumeNumberLiteral()
263 Result->Kind = TokenInfo::TK_Error; in consumeNumberLiteral()
270 void consumeStringLiteral(TokenInfo *Result) { in consumeStringLiteral()
283 Result->Kind = TokenInfo::TK_Literal; in consumeStringLiteral()
297 Result->Kind = TokenInfo::TK_Error; in consumeStringLiteral()
319 TokenInfo NextToken;
357 const TokenInfo NameToken = Tokenizer->consumeNextToken(); in parseIdentifierPrefixImpl()
359 if (Tokenizer->nextTokenKind() != TokenInfo::TK_OpenParen) { in parseIdentifierPrefixImpl()
365 if (Tokenizer->nextTokenKind() != TokenInfo::TK_Period) { in parseIdentifierPrefixImpl()
372 TokenInfo ChainCallToken = Tokenizer->consumeNextToken(); in parseIdentifierPrefixImpl()
373 if (ChainCallToken.Kind == TokenInfo::TK_CodeCompletion) { in parseIdentifierPrefixImpl()
378 if (ChainCallToken.Kind != TokenInfo::TK_Ident || in parseIdentifierPrefixImpl()
379 (ChainCallToken.Text != TokenInfo::ID_Bind && in parseIdentifierPrefixImpl()
380 ChainCallToken.Text != TokenInfo::ID_With)) { in parseIdentifierPrefixImpl()
385 if (ChainCallToken.Text == TokenInfo::ID_With) { in parseIdentifierPrefixImpl()
410 if (Tokenizer->nextTokenKind() == TokenInfo::TK_NewLine) { in parseIdentifierPrefixImpl()
419 if ((Tokenizer->nextTokenKind() == TokenInfo::TK_Comma || in parseIdentifierPrefixImpl()
420 Tokenizer->nextTokenKind() == TokenInfo::TK_CloseParen || in parseIdentifierPrefixImpl()
421 Tokenizer->nextTokenKind() == TokenInfo::TK_NewLine || in parseIdentifierPrefixImpl()
422 Tokenizer->nextTokenKind() == TokenInfo::TK_Eof) && in parseIdentifierPrefixImpl()
433 assert(NameToken.Kind == TokenInfo::TK_Ident); in parseIdentifierPrefixImpl()
434 TokenInfo OpenToken = Tokenizer->consumeNextToken(); in parseIdentifierPrefixImpl()
435 if (OpenToken.Kind != TokenInfo::TK_OpenParen) { in parseIdentifierPrefixImpl()
449 const TokenInfo OpenToken = Tokenizer->consumeNextToken(); in parseBindID()
450 const TokenInfo IDToken = Tokenizer->consumeNextTokenIgnoreNewlines(); in parseBindID()
451 const TokenInfo CloseToken = Tokenizer->consumeNextTokenIgnoreNewlines(); in parseBindID()
455 if (OpenToken.Kind != TokenInfo::TK_OpenParen) { in parseBindID()
459 if (IDToken.Kind != TokenInfo::TK_Literal || !IDToken.Value.isString()) { in parseBindID()
463 if (CloseToken.Kind != TokenInfo::TK_CloseParen) { in parseBindID()
471 bool Parser::parseMatcherBuilder(MatcherCtor Ctor, const TokenInfo &NameToken, in parseMatcherBuilder()
472 const TokenInfo &OpenToken, in parseMatcherBuilder()
475 TokenInfo EndToken; in parseMatcherBuilder()
482 while (Tokenizer->nextTokenKind() != TokenInfo::TK_Eof) { in parseMatcherBuilder()
483 if (Tokenizer->nextTokenKind() == TokenInfo::TK_CloseParen) { in parseMatcherBuilder()
490 TokenInfo CommaToken = Tokenizer->consumeNextToken(); in parseMatcherBuilder()
491 if (CommaToken.Kind != TokenInfo::TK_Comma) { in parseMatcherBuilder()
504 if (Tokenizer->peekNextToken().Kind == TokenInfo::TK_CodeCompletion) { in parseMatcherBuilder()
509 TokenInfo NodeMatcherToken = Tokenizer->consumeNextToken(); in parseMatcherBuilder()
511 if (NodeMatcherToken.Kind != TokenInfo::TK_Ident) { in parseMatcherBuilder()
548 if (EndToken.Kind == TokenInfo::TK_Eof) { in parseMatcherBuilder()
563 if (Tokenizer->peekNextToken().Kind == TokenInfo::TK_Period) { in parseMatcherBuilder()
565 TokenInfo ChainCallToken = Tokenizer->consumeNextToken(); in parseMatcherBuilder()
566 if (ChainCallToken.Kind == TokenInfo::TK_CodeCompletion) { in parseMatcherBuilder()
571 if (ChainCallToken.Kind != TokenInfo::TK_Ident || in parseMatcherBuilder()
572 (ChainCallToken.Text != TokenInfo::ID_Bind && in parseMatcherBuilder()
573 ChainCallToken.Text != TokenInfo::ID_With)) { in parseMatcherBuilder()
578 if (ChainCallToken.Text == TokenInfo::ID_Bind) { in parseMatcherBuilder()
592 } else if (ChainCallToken.Text == TokenInfo::ID_With) { in parseMatcherBuilder()
595 if (Tokenizer->nextTokenKind() != TokenInfo::TK_OpenParen) { in parseMatcherBuilder()
596 StringRef ErrTxt = Tokenizer->nextTokenKind() == TokenInfo::TK_Eof in parseMatcherBuilder()
605 TokenInfo WithOpenToken = Tokenizer->consumeNextToken(); in parseMatcherBuilder()
629 bool Parser::parseMatcherExpressionImpl(const TokenInfo &NameToken, in parseMatcherExpressionImpl()
630 const TokenInfo &OpenToken, in parseMatcherExpressionImpl()
643 TokenInfo EndToken; in parseMatcherExpressionImpl()
650 while (Tokenizer->nextTokenKind() != TokenInfo::TK_Eof) { in parseMatcherExpressionImpl()
651 if (Tokenizer->nextTokenKind() == TokenInfo::TK_CloseParen) { in parseMatcherExpressionImpl()
658 const TokenInfo CommaToken = Tokenizer->consumeNextToken(); in parseMatcherExpressionImpl()
659 if (CommaToken.Kind != TokenInfo::TK_Comma) { in parseMatcherExpressionImpl()
683 if (EndToken.Kind == TokenInfo::TK_Eof) { in parseMatcherExpressionImpl()
689 if (Tokenizer->peekNextToken().Kind == TokenInfo::TK_Period) { in parseMatcherExpressionImpl()
691 TokenInfo ChainCallToken = Tokenizer->consumeNextToken(); in parseMatcherExpressionImpl()
692 if (ChainCallToken.Kind == TokenInfo::TK_CodeCompletion) { in parseMatcherExpressionImpl()
697 if (ChainCallToken.Kind != TokenInfo::TK_Ident) { in parseMatcherExpressionImpl()
702 if (ChainCallToken.Text == TokenInfo::ID_With) { in parseMatcherExpressionImpl()
711 if (ChainCallToken.Text != TokenInfo::ID_Bind) { in parseMatcherExpressionImpl()
738 void Parser::addCompletion(const TokenInfo &CompToken, in addCompletion()
763 const TokenInfo CompToken = Tokenizer->consumeNextTokenIgnoreNewlines(); in addExpressionCompletions()
764 assert(CompToken.Kind == TokenInfo::TK_CodeCompletion); in addExpressionCompletions()
788 case TokenInfo::TK_Literal: in parseExpressionImpl()
792 case TokenInfo::TK_Ident: in parseExpressionImpl()
795 case TokenInfo::TK_CodeCompletion: in parseExpressionImpl()
799 case TokenInfo::TK_Eof: in parseExpressionImpl()
804 case TokenInfo::TK_Error: in parseExpressionImpl()
807 case TokenInfo::TK_NewLine: in parseExpressionImpl()
808 case TokenInfo::TK_OpenParen: in parseExpressionImpl()
809 case TokenInfo::TK_CloseParen: in parseExpressionImpl()
810 case TokenInfo::TK_Comma: in parseExpressionImpl()
811 case TokenInfo::TK_Period: in parseExpressionImpl()
812 case TokenInfo::TK_InvalidChar: in parseExpressionImpl()
813 const TokenInfo Token = Tokenizer->consumeNextToken(); in parseExpressionImpl()
815 << (Token.Kind == TokenInfo::TK_NewLine ? "NewLine" : Token.Text); in parseExpressionImpl()
879 if (NT.Kind != TokenInfo::TK_Eof && NT.Kind != TokenInfo::TK_NewLine) { in parseExpression()