Lines Matching defs:TokenInfo

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