|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
tools/clang/include/clang/Parse/Parser.h 409 const Token &getCurToken() const { return Tok; }
451 PrevTokLocation = Tok.getLocation();
452 PP.Lex(Tok);
457 if (Tok.isNot(Expected))
461 PrevTokLocation = Tok.getLocation();
462 PP.Lex(Tok);
485 if (Tok.is(tok::code_completion))
488 if (Tok.isAnnotation())
511 return Tok.isOneOf(tok::l_paren, tok::r_paren);
515 return Tok.isOneOf(tok::l_square, tok::r_square);
519 return Tok.isOneOf(tok::l_brace, tok::r_brace);
523 return tok::isStringLiteral(Tok.getKind());
528 isTokenBrace() || Tok.is(tok::code_completion) || Tok.isAnnotation();
528 isTokenBrace() || Tok.is(tok::code_completion) || Tok.isAnnotation();
538 Token Next = Tok;
540 PP.Lex(Tok);
545 assert(Tok.isAnnotation() && "wrong consume method");
546 SourceLocation Loc = Tok.getLocation();
547 PrevTokLocation = Tok.getAnnotationEndLoc();
548 PP.Lex(Tok);
556 if (Tok.getKind() == tok::l_paren)
562 PrevTokLocation = Tok.getLocation();
563 PP.Lex(Tok);
571 if (Tok.getKind() == tok::l_square)
578 PrevTokLocation = Tok.getLocation();
579 PP.Lex(Tok);
587 if (Tok.getKind() == tok::l_brace)
594 PrevTokLocation = Tok.getLocation();
595 PP.Lex(Tok);
606 PrevTokLocation = Tok.getLocation();
607 PP.Lex(Tok);
617 assert(Tok.is(tok::code_completion));
618 PrevTokLocation = Tok.getLocation();
619 PP.Lex(Tok);
636 Tok.setKind(tok::eof);
642 tok::TokenKind Kind = Tok.getKind();
748 if (N == 0 || Tok.is(tok::eof)) return Tok;
748 if (N == 0 || Tok.is(tok::eof)) return Tok;
832 if (Tok.getIdentifierInfo() != Ident_vector &&
833 Tok.getIdentifierInfo() != Ident_bool &&
834 (!getLangOpts().AltiVec || Tok.getIdentifierInfo() != Ident_pixel))
845 Tok.getIdentifierInfo() != Ident_vector) return false;
859 if (Tok.isAnnotation())
863 return Tok.getIdentifierInfo() == Ident_instancetype;
898 PrevTok = P.Tok;
918 P.Tok = PrevTok;
1072 return Diag(Tok, DiagID);
1680 tok::TokenKind K = Tok.getKind();
1888 if (Tok.isNot(tok::l_brace))
2397 assert(Tok.is(tok::l_square));
2408 if ((Tok.isNot(tok::l_square) || NextToken().isNot(tok::l_square)) &&
2409 Tok.isNot(tok::kw_alignas))
2465 if (Tok.is(tok::kw___attribute)) {
2475 if (Tok.is(tok::kw___attribute))
2535 if (getLangOpts().MicrosoftExt && Tok.is(tok::l_square))
2544 if (LO.DeclSpecKeyword && Tok.is(tok::kw___declspec))
2629 return isCXX11VirtSpecifier(Tok);
3066 tok::TokenKind Kind = Tok.getKind();
tools/clang/include/clang/Parse/RAIIObjectsForParser.h 413 if (!P.Tok.is(Kind))
428 if (P.Tok.is(Close)) {
431 } else if (P.Tok.is(tok::semi) && P.NextToken().is(Close)) {
tools/clang/lib/Parse/ParseCXXInlineMethods.cpp 29 assert(Tok.isOneOf(tok::l_brace, tok::colon, tok::kw_try, tok::equal) &&
65 SourceLocation KWEndLoc = Tok.getEndLoc().getLocWithOffset(-1);
89 if (Tok.is(tok::comma)) {
139 tok::TokenKind kind = Tok.getKind();
159 while (Tok.is(tok::kw_catch)) {
186 assert(Tok.isOneOf(tok::l_brace, tok::equal) &&
194 tok::TokenKind kind = Tok.getKind();
196 Toks.push_back(Tok);
202 Toks.push_back(Tok);
217 Eof.setLocation(Tok.getLocation());
325 Toks->push_back(Tok); // So that the current token doesn't get lost
332 assert(Tok.is(tok::equal) && "Default argument not starting with '='");
342 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
343 Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
351 if (Tok.isNot(tok::eof) || Tok.getEofData() != Param) {
351 if (Tok.isNot(tok::eof) || Tok.getEofData() != Param) {
356 Diag(Tok.getLocation(), diag::err_default_arg_unparsed)
357 << SourceRange(Tok.getLocation(),
366 while (Tok.isNot(tok::eof))
369 if (Tok.is(tok::eof) && Tok.getEofData() == Param)
369 if (Tok.is(tok::eof) && Tok.getEofData() == Param)
398 Toks->push_back(Tok); // So that the current token doesn't get lost
434 if (Tok.isNot(tok::eof) || Tok.getEofData() != LM.Method)
434 if (Tok.isNot(tok::eof) || Tok.getEofData() != LM.Method)
435 Diag(Tok.getLocation(), diag::err_except_spec_unparsed);
447 while (Tok.isNot(tok::eof))
451 if (Tok.is(tok::eof) && Tok.getEofData() == LM.Method)
451 if (Tok.is(tok::eof) && Tok.getEofData() == LM.Method)
505 LM.Toks.push_back(Tok);
510 assert(Tok.isOneOf(tok::l_brace, tok::colon, tok::kw_try)
519 if (Tok.is(tok::kw_try)) {
522 while (Tok.isNot(tok::eof))
525 if (Tok.is(tok::eof) && Tok.getEofData() == LM.D)
525 if (Tok.is(tok::eof) && Tok.getEofData() == LM.D)
529 if (Tok.is(tok::colon)) {
533 if (!Tok.is(tok::l_brace)) {
537 while (Tok.isNot(tok::eof))
540 if (Tok.is(tok::eof) && Tok.getEofData() == LM.D)
540 if (Tok.is(tok::eof) && Tok.getEofData() == LM.D)
556 while (Tok.isNot(tok::eof))
559 if (Tok.is(tok::eof) && Tok.getEofData() == LM.D)
559 if (Tok.is(tok::eof) && Tok.getEofData() == LM.D)
619 MI.Toks.push_back(Tok);
636 if (Tok.isNot(tok::eof)) {
640 EndLoc = Tok.getLocation();
646 while (Tok.isNot(tok::eof))
650 if (Tok.getEofData() == MI.Field)
668 if (Tok.is(T1) || Tok.is(T2)) {
668 if (Tok.is(T1) || Tok.is(T2)) {
670 Toks.push_back(Tok);
676 switch (Tok.getKind()) {
686 Toks.push_back(Tok);
692 Toks.push_back(Tok);
698 Toks.push_back(Tok);
711 Toks.push_back(Tok);
717 Toks.push_back(Tok);
723 Toks.push_back(Tok);
733 Toks.push_back(Tok);
748 if (Tok.is(tok::kw_try)) {
749 Toks.push_back(Tok);
753 if (Tok.isNot(tok::colon)) {
762 if (Tok.isNot(tok::l_brace))
763 return Diag(Tok.getLocation(), diag::err_expected) << tok::l_brace;
765 Toks.push_back(Tok);
770 Toks.push_back(Tok);
787 if (Tok.is(tok::kw_decltype)) {
788 Toks.push_back(Tok);
790 if (Tok.isNot(tok::l_paren))
791 return Diag(Tok.getLocation(), diag::err_expected_lparen_after)
793 Toks.push_back(Tok);
796 Diag(Tok.getLocation(), diag::err_expected) << tok::r_paren;
803 if (Tok.is(tok::coloncolon)) {
804 Toks.push_back(Tok);
807 if (Tok.is(tok::kw_template)) {
808 Toks.push_back(Tok);
813 if (Tok.is(tok::identifier)) {
814 Toks.push_back(Tok);
819 } while (Tok.is(tok::coloncolon));
821 if (Tok.is(tok::code_completion)) {
822 Toks.push_back(Tok);
824 if (Tok.isOneOf(tok::identifier, tok::coloncolon, tok::kw_decltype)) {
831 if (Tok.is(tok::comma)) {
833 Toks.push_back(Tok);
837 if (Tok.is(tok::less))
852 return Diag(Tok.getLocation(), diag::err_expected) << tok::l_brace;
854 } else if (Tok.isNot(tok::l_paren) && Tok.isNot(tok::l_brace)) {
854 } else if (Tok.isNot(tok::l_paren) && Tok.isNot(tok::l_brace)) {
857 return Diag(Tok.getLocation(), diag::err_expected_either)
860 return Diag(Tok.getLocation(), diag::err_expected) << tok::l_paren;
863 tok::TokenKind kind = Tok.getKind();
864 Toks.push_back(Tok);
866 SourceLocation OpenLoc = Tok.getLocation();
889 !Tok.isOneOf(tok::comma, tok::ellipsis, tok::l_brace)) {
904 Diag(Tok, diag::err_expected) << CloseKind;
910 if (Tok.is(tok::ellipsis)) {
911 Toks.push_back(Tok);
917 if (Tok.is(tok::comma)) {
918 Toks.push_back(Tok);
920 } else if (Tok.is(tok::l_brace)) {
935 Toks.push_back(Tok);
939 return Diag(Tok.getLocation(), diag::err_expected_either) << tok::l_brace
949 assert(Tok.is(tok::question));
950 Toks.push_back(Tok);
953 while (Tok.isNot(tok::colon)) {
960 if (Tok.is(tok::question) && !ConsumeAndStoreConditional(Toks))
965 Toks.push_back(Tok);
991 Buffer[Toks.size() - 1] = Self.Tok;
995 Self.Tok = Toks.front();
1023 switch (Tok.getKind()) {
1054 if (Result == TPResult::Ambiguous && Tok.isNot(tok::semi))
1127 Toks.push_back(Tok);
1129 if (Tok.is(tok::identifier)) {
1130 Toks.push_back(Tok);
1132 if (Tok.is(tok::less)) {
1135 Toks.push_back(Tok);
1144 Toks.push_back(Tok);
1146 switch (Tok.getKind()) {
1152 Toks.push_back(Tok);
1162 Toks.push_back(Tok);
1168 Toks.push_back(Tok);
1174 Toks.push_back(Tok);
1190 Toks.push_back(Tok);
1196 Toks.push_back(Tok);
1202 Toks.push_back(Tok);
1207 Toks.push_back(Tok);
1216 Toks.push_back(Tok);
1225 Toks.push_back(Tok);
tools/clang/lib/Parse/ParseDecl.cpp 150 assert(Tok.is(tok::kw___attribute) && "Not a GNU attribute list!");
152 while (Tok.is(tok::kw___attribute)) {
173 if (Tok.isAnnotation())
175 IdentifierInfo *AttrName = Tok.getIdentifierInfo();
181 if (Tok.isNot(tok::l_paren)) {
206 LA->Toks.push_back(Tok);
213 Eof.setLocation(Tok.getLocation());
215 } while (Tok.is(tok::comma));
219 SourceLocation Loc = Tok.getLocation();
293 assert(Tok.is(tok::identifier) && "expected an identifier");
295 Tok.getLocation(),
296 Tok.getIdentifierInfo());
312 if (Tok.isNot(tok::r_paren))
341 if (ChangeKWThisToIdent && Tok.is(tok::kw_this))
342 Tok.setKind(tok::identifier);
345 if (Tok.is(tok::identifier)) {
365 if (!ArgExprs.empty() ? Tok.is(tok::comma) : Tok.isNot(tok::r_paren)) {
365 if (!ArgExprs.empty() ? Tok.is(tok::comma) : Tok.isNot(tok::r_paren)) {
373 if (ChangeKWThisToIdent && Tok.is(tok::kw_this))
374 Tok.setKind(tok::identifier);
386 } else if (Tok.is(tok::identifier) &&
408 SourceLocation RParen = Tok.getLocation();
438 assert(Tok.is(tok::l_paren) && "Attribute arg list not starting with '('");
488 assert(Tok.is(tok::l_paren) && "Attribute arg list not starting with '('");
530 SourceLocation OpenParenLoc = Tok.getLocation();
552 if (!Tok.is(tok::identifier)) {
554 if (Tok.is(tok::r_paren) && !HasInvalidAccessor &&
561 Diag(Tok.getLocation(), diag::err_ms_property_unknown_accessor);
566 SourceLocation KindLoc = Tok.getLocation();
567 StringRef KindStr = Tok.getIdentifierInfo()->getName();
603 Diag(Tok.getLocation(), diag::err_ms_property_expected_equal)
609 if (!Tok.is(tok::identifier)) {
610 Diag(Tok.getLocation(), diag::err_ms_property_expected_accessor_name);
620 AccessorNames[Kind] = Tok.getIdentifierInfo();
630 if (Tok.is(tok::r_paren))
633 Diag(Tok.getLocation(), diag::err_ms_property_expected_comma_or_rparen);
668 assert(Tok.is(tok::kw___declspec) && "Not a declspec!");
670 while (Tok.is(tok::kw___declspec)) {
679 while (Tok.isNot(tok::r_paren)) {
686 bool IsString = Tok.getKind() == tok::string_literal;
687 if (!IsString && Tok.getKind() != tok::identifier &&
688 Tok.getKind() != tok::kw_restrict) {
689 Diag(Tok, diag::err_ms_declspec_type);
699 StringRef Str = PP.getSpelling(Tok, StrBuffer, &Invalid);
707 AttrName = Tok.getIdentifierInfo();
714 if (Tok.is(tok::l_paren))
718 Diag(Tok.getLocation(), diag::err_expected_lparen_after)
734 switch (Tok.getKind()) {
746 IdentifierInfo *AttrName = Tok.getIdentifierInfo();
759 SourceLocation StartLoc = Tok.getLocation();
772 switch (Tok.getKind()) {
796 while (Tok.is(tok::kw___pascal)) {
797 IdentifierInfo *AttrName = Tok.getIdentifierInfo();
806 while (Tok.is(tok::kw___kernel)) {
807 IdentifierInfo *AttrName = Tok.getIdentifierInfo();
815 IdentifierInfo *AttrName = Tok.getIdentifierInfo();
816 SourceLocation AttrNameLoc = Tok.getLocation();
824 switch (Tok.getKind()) {
828 IdentifierInfo *AttrName = Tok.getIdentifierInfo();
856 Range = SourceRange(Tok.getLocation(), Tok.getEndLoc());
856 Range = SourceRange(Tok.getLocation(), Tok.getEndLoc());
858 if (!Tok.is(tok::numeric_constant)) {
859 Diag(Tok, diag::err_expected_version);
870 Buffer.resize(Tok.getLength()+1);
875 unsigned ActualLength = PP.getSpelling(Tok, ThisTokBegin, &Invalid);
888 Diag(Tok, diag::err_expected_version);
899 Diag(Tok, diag::err_zero_version);
909 Diag(Tok, diag::err_expected_version);
928 Diag(Tok, diag::err_zero_version);
938 Diag(Tok, diag::err_expected_version);
946 Diag(Tok, diag::warn_expected_consistent_version_separator);
957 Diag(Tok, diag::err_expected_version);
1005 Diag(Tok, diag::err_expected) << tok::l_paren;
1010 if (Tok.isNot(tok::identifier)) {
1011 Diag(Tok, diag::err_availability_expected_platform);
1051 if (Tok.isNot(tok::identifier)) {
1052 Diag(Tok, diag::err_availability_expected_change);
1056 IdentifierInfo *Keyword = Tok.getIdentifierInfo();
1092 if (Tok.isNot(tok::equal)) {
1093 Diag(Tok, diag::err_expected_after) << Keyword << tok::equal;
1099 if (Tok.isNot(tok::string_literal)) {
1100 Diag(Tok, diag::err_expected_string_literal)
1129 Tok.is(tok::identifier)) {
1130 IdentifierInfo *NA = Tok.getIdentifierInfo();
1250 if (Tok.isNot(tok::identifier)) {
1251 Diag(Tok, diag::err_external_source_symbol_expected_keyword);
1256 SourceLocation KeywordLoc = Tok.getLocation();
1257 IdentifierInfo *Keyword = Tok.getIdentifierInfo();
1260 Diag(Tok, diag::err_external_source_symbol_duplicate_clause) << Keyword;
1269 Diag(Tok, diag::err_external_source_symbol_expected_keyword);
1287 if (Tok.isNot(tok::string_literal)) {
1288 Diag(Tok, diag::err_expected_string_literal)
1347 Diag(Tok, diag::err_expected) << tok::l_paren;
1352 if (Tok.isNot(tok::identifier)) {
1353 Diag(Tok, diag::err_objcbridge_related_expected_related_class);
1367 if (Tok.is(tok::identifier)) {
1370 Diag(Tok, diag::err_objcbridge_related_selector_name);
1376 if (Tok.is(tok::colon))
1377 Diag(Tok, diag::err_objcbridge_related_selector_name);
1379 Diag(Tok, diag::err_expected) << tok::comma;
1387 if (Tok.is(tok::identifier))
1389 else if (Tok.isNot(tok::r_paren)) {
1390 Diag(Tok, diag::err_expected) << tok::r_paren;
1483 AttrEnd.setLocation(Tok.getLocation());
1489 LA.Toks.push_back(Tok);
1540 Diag(Tok, diag::warn_attribute_no_decl) << LA.AttrName.getName();
1545 Diag(Tok, diag::warn_attribute_on_function_definition)
1553 while (Tok.isNot(tok::eof))
1556 if (Tok.is(tok::eof) && Tok.getEofData() == AttrEnd.getEofData())
1556 if (Tok.is(tok::eof) && Tok.getEofData() == AttrEnd.getEofData())
1567 assert(Tok.is(tok::l_paren) && "Attribute arg list not starting with '('");
1572 if (Tok.isNot(tok::identifier)) {
1573 Diag(Tok, diag::err_expected) << tok::identifier;
1594 if (Tok.isNot(tok::identifier)) {
1595 Diag(Tok, diag::err_expected) << tok::identifier;
1599 IdentifierInfo *Flag = Tok.getIdentifierInfo();
1605 Diag(Tok, diag::err_type_safety_unknown_flag) << Flag;
1631 assert(Tok.is(tok::l_square) && NextToken().is(tok::l_square));
1639 Diag(Tok.getLocation(), diag::err_l_square_l_square_not_attribute);
1647 assert(Tok.is(tok::r_square) && "isCXX11AttributeSpecifier lied");
1662 assert((Tok.is(tok::l_square) && NextToken().is(tok::l_square)) ||
1663 Tok.is(tok::kw_alignas));
1666 SourceLocation Loc = Tok.getLocation();
1754 switch (Tok.getKind()) {
1829 if (Tok.is(tok::semi)) {
1831 DeclEnd = Tok.getLocation();
1854 switch (Tok.getKind()) {
1924 switch (Tok.getKind()) {
1930 if (Tok.isOneOf(tok::comma, tok::l_brace, tok::kw_try)) {
1958 if (Tok.isAtStartOfLine() && NextToken().is(tok::kw_namespace) &&
1967 if (Tok.isAtStartOfLine() &&
1982 if (Tok.isAtStartOfLine() && ParsingInObjCContainer)
2027 if (Tok.is(tok::kw__Noreturn)) {
2036 Fixit &= Tok.isOneOf(tok::semi, tok::l_brace, tok::kw_try);
2058 Diag(Tok, diag::err_function_declared_typedef);
2077 Diag(Tok, diag::err_expected_fn_body);
2082 if (Tok.is(tok::l_brace)) {
2083 Diag(Tok, diag::err_function_definition_not_allowed);
2099 if (FRI && (Tok.is(tok::colon) || isTokIdentifier_in())) {
2105 if (Tok.is(tok::l_brace))
2139 if (Tok.isAtStartOfLine() && ExpectSemi && !MightBeDeclarator(Context)) {
2176 *DeclEnd = Tok.getLocation();
2198 if (Tok.is(tok::kw_asm)) {
2296 if (Tok.is(tok::semi)) {
2311 Diag(Tok, diag::err_template_defn_explicit_instantiation)
2341 if (Tok.is(tok::kw_delete)) {
2347 } else if (Tok.is(tok::kw_default)) {
2357 if (Tok.is(tok::code_completion)) {
2364 PreferredType.enterVariableInit(Tok.getLocation(), ThisDecl);
2369 if (Tok.is(tok::r_paren) && FRI && D.isFirstDeclarator()) {
2393 } else if (Tok.is(tok::l_paren)) {
2412 PreferredType.enterFunctionArgument(Tok.getLocation(), RunSignatureHelp);
2447 } else if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace) &&
2450 Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
2488 Diag(Tok, diag::err_expected_type);
2491 Diag(Tok, diag::err_typename_requires_specqual);
2562 assert(Tok.is(tok::identifier) && "should have identifier");
2564 SourceLocation Loc = Tok.getLocation();
2612 *Tok.getIdentifierInfo(), Tok.getLocation(),
2612 *Tok.getIdentifierInfo(), Tok.getLocation(),
2618 DS.SetRangeEnd(Tok.getLocation());
2634 switch (Actions.isTagName(*Tok.getIdentifierInfo(), getCurScope())) {
2650 IdentifierInfo *TokenName = Tok.getIdentifierInfo();
2656 << FixItHint::CreateInsertion(Tok.getLocation(), FixitTagName);
2706 IdentifierInfo *II = Tok.getIdentifierInfo();
2709 << Tok.getIdentifierInfo() << II
2710 << FixItHint::CreateReplacement(Tok.getLocation(), II->getName());
2711 Tok.setIdentifierInfo(II);
2743 IdentifierInfo *II = Tok.getIdentifierInfo();
2755 DS.SetRangeEnd(Tok.getLocation());
2759 } else if (II != Tok.getIdentifierInfo()) {
2761 Tok.setKind(II->getTokenID());
2768 DS.SetRangeEnd(Tok.getLocation());
2822 SourceLocation TypeLoc = Tok.getLocation();
2824 SourceRange TypeRange(Start, Tok.getLocation());
2846 assert(Tok.isOneOf(tok::kw_alignas, tok::kw__Alignas) &&
2849 IdentifierInfo *KWName = Tok.getIdentifierInfo();
2890 Tok.isOneOf(tok::identifier, tok::coloncolon, tok::kw_decltype,
2897 bool HasScope = Tok.is(tok::annot_cxxscope);
2899 Token AfterScope = HasScope ? NextToken() : Tok;
2904 if (Tok.isOneOf(tok::kw_typename, tok::annot_typename)) {
2929 Tok.getAnnotationValue(), Tok.getAnnotationRange(), SS);
2929 Tok.getAnnotationValue(), Tok.getAnnotationRange(), SS);
3030 DS.SetRangeStart(Tok.getLocation());
3057 if (getLangOpts().MSVCCompat && Tok.is(tok::kw__Atomic) &&
3060 Tok.setKind(tok::identifier);
3062 SourceLocation Loc = Tok.getLocation();
3064 switch (Tok.getKind()) {
3139 if (Tok.is(tok::coloncolon)) // ::new or ::delete
3148 Actions.RestoreNestedNameSpecifierAnnotation(Tok.getAnnotationValue(),
3149 Tok.getAnnotationRange(),
3181 assert(Tok.is(tok::annot_template_id) &&
3190 if (Tok.getAnnotationValue()) {
3191 ParsedType T = getTypeAnnotation(Tok);
3193 Tok.getAnnotationEndLoc(),
3200 DS.SetRangeEnd(Tok.getAnnotationEndLoc());
3250 DS.SetRangeEnd(Tok.getLocation());
3262 if (Tok.getAnnotationValue()) {
3263 ParsedType T = getTypeAnnotation(Tok);
3272 DS.SetRangeEnd(Tok.getAnnotationEndLoc());
3308 if (!getLangOpts().DeclSpecKeyword && Tok.is(tok::identifier) &&
3309 Tok.getIdentifierInfo()->getName().equals("__declspec")) {
3336 if (!Tok.is(tok::identifier))
3366 Actions.isCurrentClassName(*Tok.getIdentifierInfo(), getCurScope()) &&
3371 *Tok.getIdentifierInfo(), Tok.getLocation(), getCurScope(), nullptr,
3371 *Tok.getIdentifierInfo(), Tok.getLocation(), getCurScope(), nullptr,
3394 Actions.isDeductionGuideName(getCurScope(), *Tok.getIdentifierInfo(),
3395 Tok.getLocation()) &&
3405 DS.SetRangeEnd(Tok.getLocation());
3411 if (Tok.is(tok::less) && getLangOpts().ObjC) {
3429 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
3464 IdentifierInfo *AttrName = Tok.getIdentifierInfo();
3465 SourceLocation AttrNameLoc = Tok.getLocation();
3509 DS.getAttributes().addNew(Tok.getIdentifierInfo(), Loc, nullptr, Loc,
3522 Diag(Tok, diag::ext_thread_before) << "extern";
3534 Diag(Tok, diag::ext_thread_before) << "static";
3545 Diag(Tok, diag::ext_auto_storage_class)
3556 Diag(Tok, diag::ext_auto_type);
3582 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
3582 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
3597 PrevSpec = Tok.getIdentifierInfo()->getNameStart();
3610 if (Tok.is(tok::l_paren)) {
3616 ConsumedEnd = Tok.getLocation();
3618 CloseParenLoc = Tok.getLocation();
3625 Diag(Tok.getLocation(), diag::warn_cxx2a_compat_explicit_bool);
3633 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
3633 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
3640 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
3640 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
3698 Diag(Tok, diag::ext_c99_feature) << Tok.getName();
3698 Diag(Tok, diag::ext_c99_feature) << Tok.getName();
3704 Diag(Tok, diag::ext_c99_feature) << Tok.getName();
3704 Diag(Tok, diag::ext_c99_feature) << Tok.getName();
3785 if (Tok.is(tok::kw__Bool) && !getLangOpts().C99)
3786 Diag(Tok, diag::ext_c99_feature) << Tok.getName();
3786 Diag(Tok, diag::ext_c99_feature) << Tok.getName();
3788 if (Tok.is(tok::kw_bool) &&
3794 Tok.setKind(tok::identifier);
3827 Tok.getIdentifierInfo()->revertTokenIDToIdentifier();
3848 tok::TokenKind Kind = Tok.getKind();
3893 if (!Tok.is(tok::kw_typename))
3932 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
3932 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
3949 PrevSpec = Tok.getIdentifierInfo()->getNameStart();
3973 SourceLocation StartLoc = Tok.getLocation();
3992 DS.SetRangeEnd(ConsumedEnd.isValid() ? ConsumedEnd : Tok.getLocation());
4046 if (Tok.is(tok::kw___extension__)) {
4063 if (Tok.is(tok::semi)) {
4085 if (Tok.isNot(tok::colon)) {
4090 DeclaratorInfo.D.SetIdentifier(nullptr, Tok.getLocation());
4141 while (!tryParseMisplacedModuleImport() && Tok.isNot(tok::r_brace) &&
4142 Tok.isNot(tok::eof)) {
4146 if (Tok.is(tok::semi)) {
4152 if (Tok.is(tok::kw__Static_assert)) {
4158 if (Tok.is(tok::annot_pragma_pack)) {
4163 if (Tok.is(tok::annot_pragma_align)) {
4168 if (Tok.is(tok::annot_pragma_openmp)) {
4176 if (tok::isPragmaAnnotation(Tok.getKind())) {
4177 Diag(Tok.getLocation(), diag::err_pragma_misplaced_in_decl)
4184 if (!Tok.is(tok::at)) {
4200 if (!Tok.isObjCAtKeyword(tok::objc_defs)) {
4201 Diag(Tok, diag::err_unexpected_at);
4207 if (!Tok.is(tok::identifier)) {
4208 Diag(Tok, diag::err_expected) << tok::identifier;
4213 Actions.ActOnDefs(getCurScope(), TagDecl, Tok.getLocation(),
4214 Tok.getIdentifierInfo(), Fields);
4223 if (Tok.is(tok::r_brace)) {
4281 if (Tok.is(tok::code_completion)) {
4297 if (Tok.isOneOf(tok::kw_class, tok::kw_struct)) {
4298 Diag(Tok, getLangOpts().CPlusPlus11 ? diag::warn_cxx98_compat_scoped_enum
4300 IsScopedUsingClassTag = Tok.is(tok::kw_class);
4338 if (Spec.isSet() && Tok.isNot(tok::identifier)) {
4339 Diag(Tok, diag::err_expected) << tok::identifier;
4340 if (Tok.isNot(tok::l_brace)) {
4352 if (Tok.isNot(tok::identifier) && Tok.isNot(tok::l_brace) &&
4352 if (Tok.isNot(tok::identifier) && Tok.isNot(tok::l_brace) &&
4353 !(AllowDeclaration && Tok.is(tok::colon))) {
4354 Diag(Tok, diag::err_expected_either) << tok::identifier << tok::l_brace;
4364 if (Tok.is(tok::identifier)) {
4365 Name = Tok.getIdentifierInfo();
4372 Diag(Tok, diag::err_scoped_enum_missing_identifier);
4386 if (AllowDeclaration && Tok.is(tok::colon)) {
4472 } else if (Tok.is(tok::l_brace)) {
4474 Diag(Tok.getLocation(), diag::err_friend_decl_defines_type)
4483 (Tok.is(tok::semi) ||
4484 (Tok.isAtStartOfLine() &&
4487 if (Tok.isNot(tok::semi)) {
4490 PP.EnterToken(Tok, /*IsReinject=*/true);
4491 Tok.setKind(tok::semi);
4508 Diag(Tok, diag::err_enum_template);
4529 Diag(Tok, diag::err_enumerator_unnamed_no_def);
4539 if (!Name && TUK == Sema::TUK_Definition && Tok.is(tok::l_brace) &&
4578 Diag(Tok, diag::err_expected_type_name_after_typename);
4601 if (Tok.is(tok::l_brace) && TUK != Sema::TUK_Reference) {
4610 if (Tok.is(tok::l_brace) && TUK != Sema::TUK_Reference) {
4646 if (Tok.is(tok::r_brace) && !getLangOpts().CPlusPlus)
4647 Diag(Tok, diag::err_empty_enum);
4655 while (Tok.isNot(tok::r_brace)) {
4658 if (Tok.isNot(tok::identifier)) {
4659 Diag(Tok.getLocation(), diag::err_expected) << tok::identifier;
4665 IdentifierInfo *Ident = Tok.getIdentifierInfo();
4674 Diag(Tok.getLocation(), getLangOpts().CPlusPlus17
4702 if (Tok.is(tok::identifier)) {
4713 if (Tok.isNot(tok::r_brace) && !TryConsumeToken(tok::comma, CommaLoc)) {
4715 Diag(Tok.getLocation(), diag::err_expected_either) << tok::r_brace
4718 Diag(Tok.getLocation(), diag::err_expected_end_of_enumerator);
4728 if (Tok.is(tok::r_brace) && CommaLoc.isValid()) {
4770 PP.EnterToken(Tok, /*IsReinject=*/true);
4771 Tok.setKind(tok::semi);
4830 switch (Tok.getKind()) {
4842 if (Tok.is(tok::identifier))
4960 switch (Tok.getKind()) {
4980 if (Tok.is(tok::identifier))
5162 if (Tok.is(tok::identifier)) {
5166 } else if (Tok.is(tok::annot_template_id)) {
5178 if (Tok.isNot(tok::l_paren)) {
5186 if (Tok.is(tok::r_paren) ||
5187 (Tok.is(tok::ellipsis) && NextToken().is(tok::r_paren))) {
5216 else if (Tok.is(tok::identifier) ||
5217 (Tok.is(tok::annot_cxxscope) && NextToken().is(tok::identifier))) {
5222 if (Tok.is(tok::annot_cxxscope))
5229 switch (Tok.getKind()) {
5252 IsConstructor = Tok.is(tok::arrow);
5255 if (Tok.is(tok::colon) || Tok.is(tok::kw_try)) {
5255 if (Tok.is(tok::colon) || Tok.is(tok::kw_try)) {
5261 if (Tok.is(tok::semi) || Tok.is(tok::l_brace)) {
5261 if (Tok.is(tok::semi) || Tok.is(tok::l_brace)) {
5317 SourceLocation Loc = Tok.getLocation();
5319 switch (Tok.getKind()) {
5343 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
5343 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
5408 DS.getAttributes().addNew(Tok.getIdentifierInfo(), Loc, nullptr, Loc,
5416 Diag(Tok, diag::err_attributes_not_allowed);
5440 Diag(Tok, DiagID) << PrevSpec;
5527 (Tok.is(tok::coloncolon) || Tok.is(tok::kw_decltype) ||
5527 (Tok.is(tok::coloncolon) || Tok.is(tok::kw_decltype) ||
5528 (Tok.is(tok::identifier) &&
5530 Tok.is(tok::annot_cxxscope))) {
5538 if (Tok.isNot(tok::star)) {
5569 tok::TokenKind Kind = Tok.getKind();
5741 if (Tok.is(tok::l_square) && !D.mayOmitIdentifier() &&
5771 D.SetIdentifier(nullptr, Tok.getLocation());
5785 if (Tok.is(tok::ellipsis) && D.getCXXScopeSpec().isEmpty() &&
5794 if (isPtrOperatorToken(Tok.getKind(), getLangOpts(), D.getContext())) {
5809 if (Tok.isOneOf(tok::identifier, tok::kw_operator, tok::annot_template_id,
5840 D.SetIdentifier(nullptr, Tok.getLocation());
5863 D.SetIdentifier(nullptr, Tok.getLocation());
5866 } else if (Tok.is(tok::identifier) && D.mayHaveIdentifier()) {
5869 assert(Tok.getIdentifierInfo() && "Not an identifier?");
5870 D.SetIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
5870 D.SetIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
5871 D.SetRangeEnd(Tok.getLocation());
5874 } else if (Tok.is(tok::identifier) && !D.mayHaveIdentifier()) {
5893 !isCXX11VirtSpecifier(Tok))
5897 Diag(Tok.getLocation(), diag::err_unexpected_unqualified_id)
5898 << FixItHint::CreateRemoval(Tok.getLocation());
5899 D.SetIdentifier(nullptr, Tok.getLocation());
5905 if (Tok.is(tok::l_paren)) {
5913 D.SetIdentifier(nullptr, Tok.getLocation());
5939 D.SetIdentifier(nullptr, Tok.getLocation());
5947 if (Tok.getKind() == tok::annot_pragma_parser_crash)
5949 if (Tok.is(tok::l_square))
5955 Tok.getIdentifierInfo() &&
5956 Tok.getIdentifierInfo()->isCPlusPlusKeyword(getLangOpts())) {
5957 Diag(getMissingDeclaratorIdLoc(D, Tok.getLocation()),
5959 << Tok.getIdentifierInfo()
5962 D.SetIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
5962 D.SetIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
5963 D.SetRangeEnd(Tok.getLocation());
5967 Diag(getMissingDeclaratorIdLoc(D, Tok.getLocation()),
5972 if (Tok.isOneOf(tok::period, tok::arrow))
5973 Diag(Tok, diag::err_invalid_operator_on_type) << Tok.is(tok::arrow);
5973 Diag(Tok, diag::err_invalid_operator_on_type) << Tok.is(tok::arrow);
5976 if (Tok.isAtStartOfLine() && Loc.isValid())
5980 Diag(getMissingDeclaratorIdLoc(D, Tok.getLocation()),
5985 Diag(getMissingDeclaratorIdLoc(D, Tok.getLocation()),
5989 D.SetIdentifier(nullptr, Tok.getLocation());
6002 if (Tok.is(tok::l_paren)) {
6028 } else if (Tok.is(tok::l_square)) {
6037 assert(Tok.is(tok::l_square));
6053 while (Tok.isNot(tok::r_square)) {
6055 if (Tok.is(tok::comma))
6058 if (Tok.is(tok::identifier)) {
6063 Diag(Tok, diag::err_expected_comma_or_rsquare);
6068 if (Tok.is(tok::comma))
6070 else if (Tok.isNot(tok::identifier))
6075 if (Tok.isNot(tok::identifier)) {
6076 Diag(Tok, diag::err_expected) << tok::identifier;
6080 Bindings.push_back({Tok.getIdentifierInfo(), Tok.getLocation()});
6080 Bindings.push_back({Tok.getIdentifierInfo(), Tok.getLocation()});
6084 if (Tok.isNot(tok::r_square))
6091 Diag(Tok.getLocation(), diag::ext_decomp_decl_empty);
6131 if (Tok.is(tok::kw___attribute)) {
6143 if (Tok.is(tok::kw___pascal))
6156 } else if (Tok.is(tok::r_paren) || // 'int()' is a function.
6157 (getLangOpts().CPlusPlus && Tok.is(tok::ellipsis) &&
6198 D.SetIdentifier(nullptr, Tok.getLocation());
6269 Diag(Tok, diag::err_argument_required_after_attribute);
6283 if (Tok.isNot(tok::r_paren))
6287 Diag(Tok, diag::err_argument_required_after_attribute);
6391 if (getLangOpts().CPlusPlus11 && Tok.is(tok::arrow)) {
6392 Diag(Tok, diag::warn_cxx98_compat_trailing_return_type);
6395 LocalEndLoc = Tok.getLocation();
6439 if (Tok.isOneOf(tok::amp, tok::ampamp)) {
6440 Diag(Tok, getLangOpts().CPlusPlus11 ?
6444 RefQualifierIsLValueRef = Tok.is(tok::amp);
6458 && Tok.is(tok::identifier)
6462 && (TryAnnotateTypeOrScopeToken() || !Tok.is(tok::annot_typename))
6475 && (!Tok.is(tok::eof) &&
6496 Diag(Tok, diag::ext_ident_list_in_param);
6503 if (Tok.isNot(tok::identifier)) {
6504 Diag(Tok, diag::err_expected) << tok::identifier;
6511 IdentifierInfo *ParmII = Tok.getIdentifierInfo();
6514 if (Actions.getTypeName(*ParmII, Tok.getLocation(), getCurScope()))
6515 Diag(Tok, diag::err_unexpected_typedef_ident) << ParmII;
6519 Diag(Tok, diag::err_param_redefinition) << ParmII;
6523 Tok.getLocation(),
6585 SourceLocation DSStart = Tok.getLocation();
6628 if (Tok.is(tok::ellipsis) &&
6642 if (Tok.is(tok::equal)) {
6643 SourceLocation EqualLoc = Tok.getLocation();
6672 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
6673 Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
6745 if (Tok.getKind() == tok::r_square) {
6756 } else if (Tok.getKind() == tok::numeric_constant &&
6759 ExprResult ExprRes(Actions.ActOnNumericConstant(Tok, getCurScope()));
6772 } else if (Tok.getKind() == tok::code_completion) {
6799 if (Tok.is(tok::star) && GetLookAheadToken(1).is(tok::r_square)) {
6807 } else if (Tok.isNot(tok::r_square)) {
6852 assert(Tok.is(tok::l_square) && "Missing opening bracket");
6855 SourceLocation StartBracketLoc = Tok.getLocation();
6858 while (Tok.is(tok::l_square)) {
6865 if (Tok.is(tok::semi))
6868 SourceLocation SuggestParenLoc = Tok.getLocation();
6944 assert(Tok.is(tok::kw_typeof) && "Not a typeof specifier");
6945 Token OpTok = Tok;
6948 const bool hasParens = Tok.is(tok::l_paren);
6964 DS.SetRangeEnd(Tok.getLocation());
7010 assert(Tok.is(tok::kw__Atomic) && NextToken().is(tok::l_paren) &&
7059 Tok.setKind(tok::kw___vector);
7063 Tok.setKind(tok::kw___vector);
7067 Tok.setKind(tok::kw___vector);
7078 if (Tok.getIdentifierInfo() == Ident_vector) {
7108 } else if ((Tok.getIdentifierInfo() == Ident_pixel) &&
7112 } else if ((Tok.getIdentifierInfo() == Ident_bool) &&
tools/clang/lib/Parse/ParseDeclCXX.cpp 61 assert(Tok.is(tok::kw_namespace) && "Not a namespace!");
65 if (Tok.is(tok::code_completion)) {
79 Diag(Tok.getLocation(), getLangOpts().CPlusPlus17
83 attrLoc = Tok.getLocation();
87 if (Tok.is(tok::identifier)) {
88 Ident = Tok.getIdentifierInfo();
90 while (Tok.is(tok::coloncolon) &&
98 if (Tok.is(tok::kw_inline)) {
104 Info.Ident = Tok.getIdentifierInfo();
116 if (Tok.is(tok::kw___attribute)) {
117 attrLoc = Tok.getLocation();
121 if (Tok.is(tok::equal)) {
123 Diag(Tok, diag::err_expected) << tok::identifier;
140 Diag(Tok, diag::err_expected) << tok::l_brace;
142 Diag(Tok, diag::err_expected_either) << tok::identifier << tok::l_brace;
172 Token rBraceToken = Tok;
242 while (!tryParseMisplacedModuleImport() && Tok.isNot(tok::r_brace) &&
243 Tok.isNot(tok::eof)) {
281 assert(Tok.is(tok::equal) && "Not equal token");
285 if (Tok.is(tok::code_completion)) {
299 if (Tok.isNot(tok::identifier)) {
300 Diag(Tok, diag::err_expected_namespace_name);
314 IdentifierInfo *Ident = Tok.getIdentifierInfo();
318 DeclEnd = Tok.getLocation();
343 Tok.is(tok::l_brace) ? Tok.getLocation() : SourceLocation());
343 Tok.is(tok::l_brace) ? Tok.getLocation() : SourceLocation());
348 if (Tok.isNot(tok::l_brace)) {
370 switch (Tok.getKind()) {
417 assert(Tok.is(tok::kw_export));
423 Tok.is(tok::l_brace) ? Tok.getLocation() : SourceLocation());
423 Tok.is(tok::l_brace) ? Tok.getLocation() : SourceLocation());
425 if (Tok.isNot(tok::l_brace)) {
440 if (Tok.is(tok::r_brace) && getLangOpts().ModulesTS) {
442 << SourceRange(ExportLoc, Tok.getLocation());
445 while (!tryParseMisplacedModuleImport() && Tok.isNot(tok::r_brace) &&
446 Tok.isNot(tok::eof)) {
465 assert(Tok.is(tok::kw_using) && "Not using token");
471 if (Tok.is(tok::code_completion)) {
478 while (Tok.is(tok::kw_template)) {
485 if (Tok.is(tok::kw_namespace)) {
520 assert(Tok.is(tok::kw_namespace) && "Not 'namespace' token");
525 if (Tok.is(tok::code_completion)) {
543 if (Tok.isNot(tok::identifier)) {
544 Diag(Tok, diag::err_expected_namespace_name);
559 NamespcName = Tok.getIdentifierInfo();
564 if (Tok.is(tok::kw___attribute)) {
570 DeclEnd = Tok.getLocation();
593 if (Tok.is(tok::kw___super)) {
594 Diag(Tok.getLocation(), diag::err_super_in_using_declaration);
623 Tok.is(tok::identifier) &&
626 D.SS.isNotEmpty() && LastII == Tok.getIdentifierInfo() &&
637 /*AllowConstructorName=*/!(Tok.is(tok::identifier) &&
645 Diag(Tok.getLocation(), getLangOpts().CPlusPlus17 ?
686 if (Tok.is(tok::equal)) {
697 Tok.getLocation(),
763 Diag(Tok.getLocation(), getLangOpts().CPlusPlus17 ?
768 DeclEnd = Tok.getLocation();
786 Diag(Tok.getLocation(), getLangOpts().CPlusPlus11 ?
840 DeclEnd = Tok.getLocation();
864 assert(Tok.isOneOf(tok::kw_static_assert, tok::kw__Static_assert) &&
867 if (Tok.is(tok::kw__Static_assert) && !getLangOpts().C11)
868 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
868 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
869 if (Tok.is(tok::kw_static_assert))
870 Diag(Tok, diag::warn_cxx98_compat_static_assert);
876 Diag(Tok, diag::err_expected) << tok::l_paren;
890 if (Tok.is(tok::r_paren)) {
891 Diag(Tok, getLangOpts().CPlusPlus17
896 : FixItHint::CreateInsertion(Tok.getLocation(), ", \"\""));
904 Diag(Tok, diag::err_expected_string_literal)
919 DeclEnd = Tok.getLocation();
934 assert(Tok.isOneOf(tok::kw_decltype, tok::annot_decltype)
938 SourceLocation StartLoc = Tok.getLocation();
941 if (Tok.is(tok::annot_decltype)) {
942 Result = getExprAnnotation(Tok);
943 EndLoc = Tok.getAnnotationEndLoc();
950 if (Tok.getIdentifierInfo()->isStr("decltype"))
951 Diag(Tok, diag::warn_cxx98_compat_decltype);
959 return T.getOpenLocation() == Tok.getLocation() ?
964 if (Tok.is(tok::kw_auto)) {
968 Diag(Tok.getLocation(),
990 if (PP.isBacktrackEnabled() && Tok.is(tok::semi)) {
995 assert(Tok.is(tok::semi));
997 EndLoc = Tok.getLocation();
1046 PP.EnterToken(Tok, /*IsReinject*/true);
1048 Tok.setKind(tok::annot_decltype);
1049 setExprAnnotation(Tok,
1053 Tok.setAnnotationEndLoc(EndLoc);
1054 Tok.setLocation(StartLoc);
1055 PP.AnnotateCachedTokens(Tok);
1059 assert(Tok.is(tok::kw___underlying_type) &&
1110 if (Tok.is(tok::kw_typename)) {
1111 Diag(Tok, diag::err_expected_class_name_not_template)
1112 << FixItHint::CreateRemoval(Tok.getLocation());
1121 BaseLoc = Tok.getLocation();
1126 if (Tok.isOneOf(tok::kw_decltype, tok::annot_decltype)) {
1140 if (Tok.is(tok::annot_template_id)) {
1141 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
1147 assert(Tok.is(tok::annot_typename) && "template-id -> type failed");
1148 ParsedType Type = getTypeAnnotation(Tok);
1149 EndLocation = Tok.getAnnotationEndLoc();
1160 if (Tok.isNot(tok::identifier)) {
1161 Diag(Tok, diag::err_expected_class_name);
1165 IdentifierInfo *Id = Tok.getIdentifierInfo();
1168 if (Tok.is(tok::less)) {
1200 if (Tok.isNot(tok::annot_typename))
1205 EndLocation = Tok.getAnnotationEndLoc();
1206 ParsedType Type = getTypeAnnotation(Tok);
1242 while (Tok.isOneOf(tok::kw___single_inheritance,
1245 IdentifierInfo *AttrName = Tok.getIdentifierInfo();
1257 switch (Tok.getKind()) {
1409 if (Tok.is(tok::code_completion)) {
1436 if (Tok.isOneOf(tok::kw___single_inheritance,
1448 SourceLocation AttrFixitLoc = Tok.getLocation();
1451 Tok.isNot(tok::identifier) &&
1452 !Tok.isAnnotation() &&
1453 Tok.getIdentifierInfo() &&
1454 Tok.isOneOf(tok::kw___is_abstract,
1536 Tok.is(tok::kw__Atomic) &&
1539 Tok, ShouldChangeAtomicToIdentifier);
1555 if (Tok.isNot(tok::identifier) && Tok.isNot(tok::annot_template_id)) {
1555 if (Tok.isNot(tok::identifier) && Tok.isNot(tok::annot_template_id)) {
1556 Diag(Tok, diag::err_expected) << tok::identifier;
1599 if (Tok.is(tok::identifier)) {
1600 Name = Tok.getIdentifierInfo();
1603 if (Tok.is(tok::less) && getLangOpts().CPlusPlus) {
1618 } else if (Tok.is(tok::annot_template_id)) {
1619 TemplateId = takeTemplateIdAnnotation(Tok);
1686 else if (Tok.is(tok::l_brace) ||
1687 (getLangOpts().CPlusPlus && Tok.is(tok::colon)) ||
1693 Diag(Tok.getLocation(), diag::err_friend_decl_defines_type)
1715 if (Tok.is(tok::l_square) && NextToken().is(tok::l_square)) {
1719 } else if (Tok.is(tok::kw_alignas) && NextToken().is(tok::l_paren)) {
1729 if (Tok.isOneOf(tok::l_brace, tok::colon))
1736 (Tok.is(tok::semi) ||
1737 (Tok.isAtStartOfLine() && !isValidAfterTypeSpecifier(false)))) {
1739 if (Tok.isNot(tok::semi)) {
1744 PP.EnterToken(Tok, /*IsReinject*/true);
1745 Tok.setKind(tok::semi);
1791 if (TUK == Sema::TUK_Definition && Tok.is(tok::colon))
1914 Diag(Tok, diag::err_template_defn_explicit_instantiation)
1952 assert(Tok.is(tok::l_brace) ||
1953 (getLangOpts().CPlusPlus && Tok.is(tok::colon)) ||
2014 if (Tok.isNot(tok::semi)) {
2021 PP.EnterToken(Tok, /*IsReinject=*/true);
2022 Tok.setKind(tok::semi);
2035 assert(Tok.is(tok::colon) && "Not a base clause");
2076 SourceLocation StartLoc = Tok.getLocation();
2096 if (Tok.is(tok::kw_virtual)) {
2115 if (getLangOpts().MSVCCompat && Tok.is(tok::kw__Atomic) &&
2117 Tok.setKind(tok::identifier);
2149 switch (Tok.getKind()) {
2253 Diag(Tok.getLocation(), diag::err_friend_decl_spec)
2255 << FixItHint::CreateRemoval(Tok.getLocation())
2264 if (VS.SetSpecifier(Specifier, Tok.getLocation(), PrevSpec))
2265 Diag(Tok.getLocation(), diag::err_duplicate_virt_specifier)
2267 << FixItHint::CreateRemoval(Tok.getLocation());
2271 Diag(Tok.getLocation(), diag::err_override_control_interface)
2274 Diag(Tok.getLocation(), diag::ext_ms_sealed_keyword);
2276 Diag(Tok.getLocation(), diag::ext_warn_gnu_final);
2278 Diag(Tok.getLocation(),
2306 if (Tok.isNot(tok::colon))
2309 DeclaratorInfo.SetIdentifier(nullptr, Tok.getLocation());
2326 if (Tok.is(tok::kw_asm)) {
2463 if (Tok.is(tok::at)) {
2465 Diag(Tok, diag::err_at_defs_cxx);
2467 Diag(Tok, diag::err_at_in_class);
2485 Tok.isOneOf(tok::identifier, tok::coloncolon, tok::kw___super)) {
2490 if (Tok.isNot(tok::annot_cxxscope))
2536 Tok.isOneOf(tok::kw_static_assert, tok::kw__Static_assert)) {
2542 if (Tok.is(tok::kw_template)) {
2553 if (Tok.is(tok::kw___extension__)) {
2572 if (Tok.is(tok::kw_using)) {
2579 while (Tok.is(tok::kw_template)) {
2585 if (Tok.is(tok::kw_namespace)) {
2650 if (Tok.isNot(tok::equal))
2694 if (Tok.is(tok::l_brace) && !getLangOpts().CPlusPlus11) {
2697 if (Tok.isOneOf(tok::l_brace, tok::colon, tok::kw_try)) {
2699 } else if (Tok.is(tok::equal)) {
2753 if (Tok.is(tok::semi))
2767 if (Tok.isOneOf(tok::equal, tok::l_brace) && PureSpecLoc.isInvalid()) {
2780 Diag(Tok, getLangOpts().CPlusPlus2a
2783 HasInClassInit = Tok.is(tok::equal) ? ICIS_CopyInit : ICIS_ListInit;
2840 Diag(Tok, getLangOpts().CPlusPlus11
2850 Diag(Tok, diag::err_incomplete_array_member_init);
2898 if (Tok.isAtStartOfLine() &&
2958 assert(Tok.isOneOf(tok::equal, tok::l_brace)
2964 if (Tok.is(tok::kw_delete)) {
2979 } else if (Tok.is(tok::kw_default)) {
2981 Diag(Tok, diag::err_default_delete_in_multiple_declaration)
2990 Diag(Tok, diag::err_ms_property_initializer) << PD;
3000 if (getLangOpts().CPlusPlus && Tok.is(tok::identifier)) {
3012 if (Tok.isNot(tok::colon) && Tok.isNot(tok::l_brace))
3012 if (Tok.isNot(tok::colon) && Tok.isNot(tok::l_brace))
3019 if (Tok.is(tok::colon)) {
3032 if (!Tok.is(tok::l_brace)) {
3040 assert(Tok.is(tok::l_brace));
3047 if (Tok.is(tok::kw___attribute))
3056 switch (Tok.getKind()) {
3107 SourceLocation ASLoc = Tok.getLocation();
3108 unsigned TokLength = Tok.getLength();
3143 if (tok::isPragmaAnnotation(Tok.getKind())) {
3144 Diag(Tok.getLocation(), diag::err_pragma_misplaced_in_decl)
3219 if (getLangOpts().CPlusPlus && Tok.is(tok::identifier)) {
3220 VirtSpecifiers::Specifier Specifier = isCXX11VirtSpecifier(Tok);
3254 if (!Tok.is(tok::colon) && !Tok.is(tok::l_brace)) {
3254 if (!Tok.is(tok::colon) && !Tok.is(tok::l_brace)) {
3261 if (Tok.is(tok::colon)) {
3266 if (!Tok.is(tok::l_brace)) {
3269 if (Tok.isAtStartOfLine()) {
3270 switch (Tok.getKind()) {
3296 PP.EnterToken(Tok, /*IsReinject*/true);
3297 Tok.setKind(tok::l_brace);
3306 assert(Tok.is(tok::l_brace));
3327 while (!tryParseMisplacedModuleImport() && Tok.isNot(tok::r_brace) &&
3328 Tok.isNot(tok::eof)) {
3382 assert(Tok.is(tok::kw_namespace));
3388 Diag(Tok.getLocation(),
3392 PP.EnterToken(Tok, /*IsReinject*/ true);
3394 Tok.startToken();
3395 Tok.setLocation(PP.getLocForEndOfToken(PrevTokLocation));
3396 Tok.setKind(tok::semi);
3397 PP.EnterToken(Tok, /*IsReinject*/ true);
3399 Tok.setKind(tok::r_brace);
3424 assert(Tok.is(tok::colon) &&
3436 if (Tok.is(tok::code_completion)) {
3448 if (Tok.is(tok::comma))
3450 else if (Tok.is(tok::l_brace))
3455 Tok.isOneOf(tok::identifier, tok::coloncolon)) {
3462 Diag(Tok.getLocation(), diag::err_expected_either) << tok::l_brace
3493 SourceLocation IdLoc = Tok.getLocation();
3499 if (Tok.is(tok::identifier)) {
3502 II = Tok.getIdentifierInfo();
3504 } else if (Tok.is(tok::annot_decltype)) {
3511 TemplateIdAnnotation *TemplateId = Tok.is(tok::annot_template_id)
3512 ? takeTemplateIdAnnotation(Tok)
3518 assert(Tok.is(tok::annot_typename) && "template-id -> type failed");
3519 TemplateTypeTy = getTypeAnnotation(Tok);
3524 Diag(Tok, diag::err_expected_member_or_base_name);
3530 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
3531 Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
3544 } else if(Tok.is(tok::l_paren)) {
3558 if (Tok.isNot(tok::r_paren) &&
3560 PreferredType.enterFunctionArgument(Tok.getLocation(),
3581 return Diag(Tok, diag::err_expected_either) << tok::l_paren << tok::l_brace;
3583 return Diag(Tok, diag::err_expected) << tok::l_paren;
3607 if (Tok.isNot(tok::kw_throw) && Tok.isNot(tok::kw_noexcept))
3607 if (Tok.isNot(tok::kw_throw) && Tok.isNot(tok::kw_noexcept))
3611 bool IsNoexcept = Tok.is(tok::kw_noexcept);
3612 Token StartTok = Tok;
3616 if (!Tok.is(tok::l_paren)) {
3619 Diag(Tok, diag::warn_cxx98_compat_noexcept_decl);
3624 Diag(Tok, diag::err_expected_lparen_after) << "throw";
3631 ExceptionSpecTokens->push_back(Tok); // '('
3643 if (Tok.is(tok::kw_throw)) {
3652 if (Tok.isNot(tok::kw_noexcept))
3655 Diag(Tok, diag::warn_cxx98_compat_noexcept_decl);
3663 if (Tok.is(tok::l_paren)) {
3688 if (Tok.is(tok::kw_throw)) {
3689 Diag(Tok.getLocation(), diag::err_dynamic_and_noexcept_specification);
3694 Diag(Tok.getLocation(), diag::err_dynamic_and_noexcept_specification);
3729 assert(Tok.is(tok::kw_throw) && "expected throw");
3734 Diag(Tok, diag::err_expected_lparen_after) << "throw";
3741 if (Tok.is(tok::ellipsis)) {
3753 while (Tok.isNot(tok::r_paren)) {
3756 if (Tok.is(tok::ellipsis)) {
3786 assert(Tok.is(tok::arrow) && "expected arrow");
3863 switch (Tok.getKind()) {
3866 if (!Tok.isAnnotation()) {
3867 if (IdentifierInfo *II = Tok.getIdentifierInfo()) {
3878 if (Tok.getLocation().isMacroID()) {
3881 PP.getSourceManager().getExpansionLoc(Tok.getLocation());
3886 PP.getSourceManager().getExpansionLoc(Tok.getEndLoc()));
3887 Diag(Tok, diag::warn_wrong_clang_attr_namespace)
3911 PP.getSourceManager().getSpellingLoc(Tok.getLocation());
3960 assert(Tok.is(tok::l_paren) && "Not a C++11 attribute argument list");
3961 SourceLocation LParenLoc = Tok.getLocation();
4045 if (Tok.is(tok::kw_alignas)) {
4046 Diag(Tok.getLocation(), diag::warn_cxx98_compat_alignas);
4051 assert(Tok.is(tok::l_square) && NextToken().is(tok::l_square) &&
4054 Diag(Tok.getLocation(), diag::warn_cxx98_compat_attribute);
4061 if (Tok.is(tok::kw_using)) {
4062 Diag(Tok.getLocation(), getLangOpts().CPlusPlus17
4069 Diag(Tok.getLocation(), diag::err_expected) << tok::identifier;
4073 Diag(Tok.getLocation(), diag::err_expected) << tok::colon;
4078 while (Tok.isNot(tok::r_square)) {
4098 Diag(Tok.getLocation(), diag::err_expected) << tok::identifier;
4123 if (Tok.is(tok::l_paren))
4135 Diag(Tok, diag::err_cxx11_attribute_forbids_ellipsis)
4142 *endLoc = Tok.getLocation();
4155 SourceLocation StartLoc = Tok.getLocation(), Loc;
4168 SourceLocation StartLoc = Tok.getLocation();
4185 if (Tok.is(tok::l_square)) {
4191 assert(Tok.is(tok::kw_alignas) && "not an attribute specifier");
4205 assert(Tok.is(tok::identifier) && "Not a Microsoft attribute list");
4206 IdentifierInfo *UuidIdent = Tok.getIdentifierInfo();
4209 SourceLocation UuidLoc = Tok.getLocation();
4215 Diag(Tok, diag::err_expected) << tok::l_paren;
4220 if (Tok.is(tok::string_literal)) {
4241 SourceLocation StartLoc = Tok.getLocation();
4242 while (Tok.isNot(tok::r_paren)) {
4243 if (Tok.hasLeadingSpace() || Tok.isAtStartOfLine()) {
4243 if (Tok.hasLeadingSpace() || Tok.isAtStartOfLine()) {
4244 Diag(Tok, diag::err_attribute_uuid_malformed_guid);
4249 SpellingBuffer.resize(Tok.getLength() + 1);
4251 StringRef TokSpelling = PP.getSpelling(Tok, SpellingBuffer, &Invalid);
4261 if (Tok.hasLeadingSpace() || Tok.isAtStartOfLine()) {
4261 if (Tok.hasLeadingSpace() || Tok.isAtStartOfLine()) {
4262 Diag(Tok, diag::err_attribute_uuid_malformed_guid);
4298 assert(Tok.is(tok::l_square) && "Not a Microsoft attribute list");
4308 if (Tok.isNot(tok::identifier)) // ']', but also eof
4310 if (Tok.getIdentifierInfo()->getName() == "uuid")
4319 } while (Tok.is(tok::l_square));
4331 Diag(Tok, diag::err_expected) << tok::l_brace;
4351 while (Tok.isNot(tok::r_brace) && !isEofOrEom()) {
4353 if (Tok.isOneOf(tok::kw___if_exists, tok::kw___if_not_exists)) {
4360 if (Tok.is(tok::semi)) {
4369 SourceLocation ASLoc = Tok.getLocation();
4371 if (Tok.is(tok::colon))
4372 Actions.ActOnAccessSpecifier(AS, ASLoc, Tok.getLocation(),
4375 Diag(Tok, diag::err_expected) << tok::colon;
tools/clang/lib/Parse/ParseExpr.cpp 160 if (Tok.is(tok::code_completion)) {
162 PreferredType.get(Tok.getLocation()));
167 if (Tok.is(tok::kw_throw))
169 if (Tok.is(tok::kw_co_yield))
245 tok::TokenKind K = Tok.getKind();
268 prec::Level NextTokPrec = getBinOpPrecedence(Tok.getKind(),
284 Token OpToken = Tok;
288 return ExprError(Diag(Tok, diag::err_opencl_logical_exclusive_or));
304 PP.EnterToken(Tok, /*IsReinject*/true);
305 Tok = OpToken;
311 if (isFoldOperator(NextTokPrec) && Tok.is(tok::ellipsis)) {
314 PP.EnterToken(Tok, /*IsReinject*/true);
315 Tok = OpToken;
325 Tok.isOneOf(tok::colon, tok::r_square) &&
327 PP.EnterToken(Tok, /*IsReinject*/true);
328 Tok = OpToken;
335 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
337 SourceLocation BraceLoc = Tok.getLocation();
345 } else if (Tok.isNot(tok::colon)) {
358 Diag(Tok, diag::ext_gnu_conditional_expr);
372 SourceLocation FILoc = Tok.getLocation();
390 Diag(Tok, diag::err_expected)
393 ColonLoc = Tok.getLocation();
397 PreferredType.enterBinary(Actions, Tok.getLocation(), LHS.get(),
411 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
431 NextTokPrec = getBinOpPrecedence(Tok.getKind(), GreaterThanIsOperator,
443 Diag(Tok, diag::err_init_list_bin_op)
444 << /*LHS*/0 << PP.getSpelling(Tok) << Actions.getExprRange(RHS.get());
465 NextTokPrec = getBinOpPrecedence(Tok.getKind(), GreaterThanIsOperator,
539 Diag(Tok, diag::err_expected_expression);
768 tok::TokenKind SavedKind = Tok.getKind();
823 Res = Actions.ActOnNumericConstant(Tok, /*UDLScope*/getCurScope());
837 Diag(Tok, diag::warn_cxx98_compat_nullptr);
841 Res = getExprAnnotation(Tok);
843 if (!Res.isInvalid() && Tok.is(tok::less))
863 assert(Tok.isNot(tok::kw_decltype) && Tok.isNot(tok::kw___super));
863 assert(Tok.isNot(tok::kw_decltype) && Tok.isNot(tok::kw___super));
880 Tok.is(tok::identifier) &&
881 Tok.getIdentifierInfo()->hasRevertedTokenIDToIdentifier()) {
882 IdentifierInfo *II = Tok.getIdentifierInfo();
951 Tok.setKind(Known->second);
963 if (!Tok.is(tok::identifier))
970 IdentifierInfo &II = *Tok.getIdentifierInfo();
974 if (getLangOpts().ObjC && Tok.is(tok::period) &&
980 if (Tok.is(tok::code_completion) && &II != Ident_super) {
987 if (Tok.isNot(tok::identifier) &&
988 !(getLangOpts().CPlusPlus && Tok.is(tok::kw_class))) {
989 Diag(Tok, diag::err_expected_property_name);
992 IdentifierInfo &PropertyName = *Tok.getIdentifierInfo();
1006 ((Tok.is(tok::identifier) &&
1008 Tok.is(tok::code_completion))) {
1020 ((Tok.is(tok::identifier) && !InMessageExpression) ||
1021 Tok.is(tok::code_completion))) {
1023 if (Tok.is(tok::code_completion) ||
1061 /*Next=*/Tok,
1065 if (Tok.isOneOf(tok::periodstar, tok::arrowstar)) {
1069 Validator.WantRemainingKeywords = Tok.isNot(tok::r_paren);
1073 getCurScope(), ScopeSpec, TemplateKWLoc, Name, Tok.is(tok::l_paren),
1076 Tok.is(tok::r_paren) ? nullptr : &Replacement);
1082 if (!Res.isInvalid() && Tok.is(tok::less))
1091 Res = Actions.ActOnCharacterConstant(Tok, /*UDLScope*/getCurScope());
1101 Res = Actions.ActOnPredefinedExpr(Tok.getLocation(), SavedKind);
1115 return ParseAvailabilityCheckExpr(Tok.getLocation());
1135 Token SavedTok = Tok;
1138 PreferredType.enterUnary(Actions, Tok.getLocation(), SavedTok.getKind(),
1161 PreferredType.enterUnary(Actions, Tok.getLocation(), tok::amp, SavedLoc);
1176 PreferredType.enterUnary(Actions, Tok.getLocation(), SavedKind, SavedLoc);
1202 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
1202 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
1215 if (Tok.isNot(tok::identifier))
1216 return ExprError(Diag(Tok, diag::err_expected) << tok::identifier);
1219 return ExprError(Diag(Tok, diag::err_address_of_label_outside_fn));
1222 LabelDecl *LD = Actions.LookupOrCreateLabel(Tok.getIdentifierInfo(),
1223 Tok.getLocation());
1224 Res = Actions.ActOnAddrLabel(AmpAmpLoc, Tok.getLocation(), LD);
1249 ParsedType Type = getTypeAnnotation(Tok);
1253 DS.SetRangeStart(Tok.getLocation());
1254 DS.SetRangeEnd(Tok.getLastLoc());
1258 DS.SetTypeSpecType(TST_typename, Tok.getAnnotationEndLoc(),
1301 Diag(Tok, diag::err_expected_expression);
1311 if (!Actions.isSimpleTypeSpecifier(Tok.getKind()))
1323 if (Tok.isNot(tok::l_paren) &&
1324 (!getLangOpts().CPlusPlus11 || Tok.isNot(tok::l_brace)))
1325 return ExprError(Diag(Tok, diag::err_expected_lparen_after_type)
1328 if (Tok.is(tok::l_brace))
1329 Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
1340 if (!Tok.is(tok::annot_cxxscope))
1366 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
1389 if (!Tok.is(tok::coloncolon))
1395 if (Tok.is(tok::kw_new))
1397 if (Tok.is(tok::kw_delete))
1406 return ParseCXXNewExpression(false, Tok.getLocation());
1409 return ParseCXXDeleteExpression(false, Tok.getLocation());
1412 Diag(Tok, diag::warn_cxx98_compat_noexcept_expr);
1455 PreferredType.get(Tok.getLocation()));
1534 switch (Tok.getKind()) {
1540 getCurScope(), LHS, PreferredType.get(Tok.getLocation()));
1566 if (getLangOpts().ObjC && Tok.isAtStartOfLine() &&
1582 PreferredType.enterSubscript(Actions, Tok.getLocation(), LHS.get());
1583 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
1584 Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
1589 if (!Tok.is(tok::colon)) {
1593 if (Tok.is(tok::colon)) {
1596 if (Tok.isNot(tok::r_square))
1602 SourceLocation RLoc = Tok.getLocation();
1608 Tok.is(tok::r_square)) {
1629 tok::TokenKind OpKind = Tok.getKind();
1652 Diag(Tok, diag::err_expected) << tok::greatergreatergreater;
1689 if (Tok.isNot(tok::r_paren)) {
1691 PreferredType.enterFunctionArgument(Tok.getLocation(),
1712 } else if (Tok.isNot(tok::r_paren)) {
1732 ArgExprs, Tok.getLocation(),
1743 tok::TokenKind OpKind = Tok.getKind();
1751 PreferredType.enterMemAccess(Actions, Tok.getLocation(), OrigLHS);
1756 if (BaseType && Tok.is(tok::l_paren) &&
1778 if (Tok.is(tok::code_completion)) {
1800 PreferredType.get(Tok.getLocation()));
1822 Tok.is(tok::kw_class)) {
1830 IdentifierInfo *Id = Tok.getIdentifierInfo();
1850 if (!LHS.isInvalid() && Tok.is(tok::less))
1857 LHS = Actions.ActOnPostfixUnaryOp(getCurScope(), Tok.getLocation(),
1858 Tok.getKind(), LHS.get());
1903 if (Tok.isNot(tok::l_paren)) {
1927 Diag(Tok, diag::err_expected_after) << OpTok.getIdentifierInfo()
1939 SourceLocation LParenLoc = Tok.getLocation(), RParenLoc;
1981 assert(Tok.isOneOf(tok::kw_sizeof, tok::kw___alignof, tok::kw_alignof,
1985 Token OpTok = Tok;
1989 if (Tok.is(tok::ellipsis) && OpTok.is(tok::kw_sizeof)) {
1994 if (Tok.is(tok::l_paren)) {
1998 if (Tok.is(tok::identifier)) {
1999 Name = Tok.getIdentifierInfo();
2006 Diag(Tok, diag::err_expected_parameter_pack);
2009 } else if (Tok.is(tok::identifier)) {
2010 Name = Tok.getIdentifierInfo();
2019 Diag(Tok, diag::err_sizeof_parameter_pack);
2102 const IdentifierInfo *BuiltinII = Tok.getIdentifierInfo();
2104 tok::TokenKind T = Tok.getKind();
2108 if (Tok.isNot(tok::l_paren))
2109 return ExprError(Diag(Tok, diag::err_expected_after) << BuiltinII
2129 if (Tok.isNot(tok::r_paren)) {
2130 Diag(Tok, diag::err_expected) << tok::r_paren;
2141 SourceLocation TypeLoc = Tok.getLocation();
2154 if (Tok.isNot(tok::identifier)) {
2155 Diag(Tok, diag::err_expected) << tok::identifier;
2165 Comps.back().U.IdentInfo = Tok.getIdentifierInfo();
2170 if (Tok.is(tok::period)) {
2176 if (Tok.isNot(tok::identifier)) {
2177 Diag(Tok, diag::err_expected) << tok::identifier;
2181 Comps.back().U.IdentInfo = Tok.getIdentifierInfo();
2184 } else if (Tok.is(tok::l_square)) {
2204 if (Tok.isNot(tok::r_paren)) {
2246 if (Tok.isNot(tok::r_paren)) {
2247 Diag(Tok, diag::err_expected) << tok::r_paren;
2273 if (Tok.isNot(tok::r_paren)) {
2274 Diag(Tok, diag::err_expected) << tok::r_paren;
2302 if (Tok.isNot(tok::r_paren)) {
2303 Diag(Tok, diag::err_expected) << tok::r_paren;
2317 if (Tok.isNot(tok::r_paren)) {
2318 Diag(Tok, diag::err_expected) << tok::r_paren;
2378 assert(Tok.is(tok::l_paren) && "Not a paren expr!");
2385 PreferredType.enterParenExpr(Tok.getLocation(), OpenLoc);
2391 if (Tok.is(tok::code_completion)) {
2393 getCurScope(), PreferredType.get(Tok.getLocation()),
2401 Tok.isOneOf(tok::kw___bridge,
2407 StringRef BridgeCastName = Tok.getName();
2419 if (ExprType >= CompoundStmt && Tok.is(tok::l_brace)) {
2420 Diag(Tok, diag::ext_gnu_statement_expr);
2443 Result = Actions.ActOnStmtExpr(OpenLoc, Stmt.get(), Tok.getLocation());
2449 tok::TokenKind tokenKind = Tok.getKind();
2476 PreferredType.enterTypeCast(Tok.getLocation(), Ty.get().get());
2511 if (!DeclaratorInfo.isInvalidType() && Tok.is(tok::identifier) &&
2527 if (Tok.is(tok::l_brace)) {
2537 if (Tok.is(tok::l_paren)) {
2598 if (Tok.is(tok::identifier) && getLangOpts().ObjC &&
2599 Tok.getIdentifierInfo() == Ident_super &&
2602 Diag(Tok.getLocation(), diag::err_illegal_super_cast)
2607 PreferredType.enterTypeCast(Tok.getLocation(), CastTy.get());
2621 Diag(Tok, diag::err_expected_lbrace_in_compound_literal);
2624 } else if (ExprType >= FoldExpr && Tok.is(tok::ellipsis) &&
2639 isFoldOperator(Tok.getKind()) && NextToken().is(tok::ellipsis)) {
2645 Result = Actions.ActOnParenListExpr(OpenLoc, Tok.getLocation(),
2658 if (ExprType >= FoldExpr && isFoldOperator(Tok.getKind()) &&
2666 if (!Result.isInvalid() && Tok.is(tok::r_paren))
2668 Actions.ActOnParenExpr(OpenLoc, Tok.getLocation(), Result.get());
2694 assert(Tok.is(tok::l_brace) && "Not a compound literal!");
2719 StringToks.push_back(Tok);
2743 assert(Tok.is(tok::kw__Generic) && "_Generic keyword expected");
2745 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
2745 Diag(Tok, diag::ext_c11_feature) << Tok.getName();
2776 if (Tok.is(tok::kw_default)) {
2780 Diag(Tok, diag::err_duplicate_default_assoc);
2842 Kind = Tok.getKind();
2847 assert(Tok.is(tok::ellipsis) && "not a fold-expression");
2851 if (Tok.isNot(tok::r_paren)) {
2852 if (!isFoldOperator(Tok.getKind()))
2853 return Diag(Tok.getLocation(), diag::err_expected_fold_operator);
2855 if (Kind != tok::unknown && Tok.getKind() != Kind)
2856 Diag(Tok.getLocation(), diag::err_fold_operator_mismatch)
2858 Kind = Tok.getKind();
2908 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
2909 Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
2914 if (Tok.is(tok::ellipsis))
2923 if (Tok.isNot(tok::comma))
2926 Token Comma = Tok;
2960 if (Tok.isNot(tok::comma))
2964 Token Comma = Tok;
2978 if (Tok.is(tok::code_completion)) {
3009 assert(Tok.is(tok::caret) && "block literal starts with ^");
3031 ParamInfo.SetSourceRange(SourceRange(Tok.getLocation(), Tok.getLocation()));
3031 ParamInfo.SetSourceRange(SourceRange(Tok.getLocation(), Tok.getLocation()));
3035 if (Tok.is(tok::l_paren)) {
3055 } else if (!Tok.is(tok::l_brace)) {
3089 if (!Tok.is(tok::l_brace)) {
3091 Diag(Tok, diag::err_expected_expression);
3110 tok::TokenKind Kind = Tok.getKind();
3160 if (Tok.is(tok::star)) {
3164 if (Tok.is(tok::code_completion)) {
3169 if (Tok.isNot(tok::identifier)) {
3170 Diag(Tok, diag::err_avail_query_expected_platform_name);
3198 assert(Tok.is(tok::kw___builtin_available) ||
3199 Tok.isObjCAtKeyword(tok::objc_available));
tools/clang/lib/Parse/ParseExprCXX.cpp 91 TemplateName.setIdentifier(&II, Tok.getLocation());
153 if (Tok.is(tok::annot_cxxscope)) {
156 Actions.RestoreNestedNameSpecifierAnnotation(Tok.getAnnotationValue(),
157 Tok.getAnnotationRange(),
163 if (Tok.is(tok::annot_template_id)) {
166 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
182 if (Tok.is(tok::coloncolon)) {
201 if (Tok.is(tok::kw___super)) {
203 if (!Tok.is(tok::coloncolon)) {
204 Diag(Tok.getLocation(), diag::err_expected_coloncolon_after_super);
212 Tok.isOneOf(tok::kw_decltype, tok::annot_decltype)) {
214 SourceLocation DeclLoc = Tok.getLocation();
236 if (Tok.is(tok::code_completion)) {
246 SS.setEndLoc(Tok.getLocation());
269 if (Tok.is(tok::kw_template)) {
280 if (Tok.is(tok::identifier)) {
282 TemplateName.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
282 TemplateName.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
284 } else if (Tok.is(tok::kw_operator)) {
311 if (Tok.isNot(tok::less)) {
331 if (Tok.is(tok::annot_template_id) && NextToken().is(tok::coloncolon)) {
339 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
351 assert(Tok.is(tok::coloncolon) && "NextToken() not working properly!");
380 if (Tok.isNot(tok::identifier))
383 IdentifierInfo &II = *Tok.getIdentifierInfo();
390 Sema::NestedNameSpecInfo IdInfo(&II, Tok.getLocation(), Next.getLocation(),
412 Token Identifier = Tok; // Stash away the identifier.
447 Token Identifier = Tok;
449 assert(Tok.isOneOf(tok::coloncolon, tok::colon) &&
451 Token ColonColon = Tok;
463 PP.EnterToken(Tok, /*IsReinject*/ true);
465 Tok = Identifier;
481 TemplateName.setIdentifier(&II, Tok.getLocation());
521 Diag(Tok.getLocation(), DiagID)
523 << FixItHint::CreateInsertion(Tok.getLocation(), "template ");
526 getCurScope(), SS, Tok.getLocation(), TemplateName, ObjectType,
549 if (CheckForDestructor && Tok.is(tok::tilde))
561 switch (Tok.getKind()) {
563 NamedDecl *ND = getNonTypeAnnotation(Tok);
565 E = Actions.ActOnNameClassifiedAsNonType(getCurScope(), SS, ND, Loc, Tok);
570 IdentifierInfo *II = getIdentifierAnnotation(Tok);
586 IdentifierInfo *II = getIdentifierAnnotation(Tok);
609 getCurScope(), SS, TemplateKWLoc, Name, Tok.is(tok::l_paren),
615 if (!E.isInvalid() && !E.isUnset() && Tok.is(tok::less))
744 && Tok.is(tok::l_square)
821 assert(Tok.is(tok::l_square) && "Lambda expressions begin with '['.");
850 if (Tok.is(tok::amp) &&
855 if (!Tok.getIdentifierInfo()) {
860 } else if (Tok.is(tok::equal)) {
867 while (Tok.isNot(tok::r_square)) {
869 if (Tok.isNot(tok::comma)) {
874 if (Tok.is(tok::code_completion) &&
883 Diag(Tok.getLocation(), diag::err_expected_comma_or_rsquare);
889 if (Tok.is(tok::code_completion)) {
910 SourceLocation LocStart = Tok.getLocation();
912 if (Tok.is(tok::star)) {
914 if (Tok.is(tok::kw_this)) {
919 Diag(Tok.getLocation(), diag::err_expected_star_this_capture);
922 } else if (Tok.is(tok::kw_this)) {
928 if (Tok.is(tok::amp)) {
932 if (Tok.is(tok::code_completion)) {
942 if (Tok.is(tok::identifier)) {
943 Id = Tok.getIdentifierInfo();
945 } else if (Tok.is(tok::kw_this)) {
948 Diag(Tok.getLocation(), diag::err_this_captured_by_reference);
952 Diag(Tok.getLocation(), diag::err_expected_capture);
958 if (Tok.is(tok::l_paren)) {
978 } else if (Tok.isOneOf(tok::l_brace, tok::equal)) {
992 } else if (Tok.is(tok::l_brace)) {
1018 SourceLocation StartLoc = Tok.getLocation();
1024 if (Tok.getLocation() != StartLoc) {
1029 Tok.setLocation(StartLoc);
1030 Tok.setKind(tok::annot_primary_expr);
1031 setExprAnnotation(Tok, Init);
1032 Tok.setAnnotationEndLoc(PP.getLastCachedTokenLocation());
1033 PP.AnnotateCachedTokens(Tok);
1045 if (Tentative && Tok.is(tok::identifier) &&
1237 SourceLocation DeclLoc = Tok.getLocation();
1257 const bool HasExplicitTemplateParams = Tok.is(tok::less);
1261 Diag(Tok, getLangOpts().CPlusPlus2a
1284 if (Tok.is(tok::l_paren)) {
1298 if (Tok.isNot(tok::r_paren)) {
1358 if (Tok.is(tok::arrow)) {
1359 FunLocalRangeEnd = Tok.getLocation();
1385 } else if (Tok.isOneOf(tok::kw_mutable, tok::arrow, tok::kw___attribute,
1387 (Tok.is(tok::l_square) && NextToken().is(tok::l_square))) {
1391 switch (Tok.getKind()) {
1401 Diag(Tok, diag::err_lambda_missing_parens)
1403 << FixItHint::CreateInsertion(Tok.getLocation(), "() ");
1412 if (Tok.is(tok::kw_mutable)) {
1421 if (Tok.is(tok::arrow)) {
1462 if (!Tok.is(tok::l_brace)) {
1463 Diag(Tok, diag::err_expected_lambda_body);
1489 tok::TokenKind Kind = Tok.getKind();
1501 SourceLocation LAngleBracketLoc = Tok.getLocation();
1505 if (Tok.is(tok::l_square) && Tok.getLength() == 2) {
1505 if (Tok.is(tok::l_square) && Tok.getLength() == 2) {
1507 if (Next.is(tok::colon) && areTokensAdjacent(Tok, Next))
1508 FixDigraph(*this, PP, Tok, Next, Kind, /*AtDigraph*/true);
1522 SourceLocation RAngleBracketLoc = Tok.getLocation();
1554 assert(Tok.is(tok::kw_typeid) && "Not 'typeid'!");
1621 assert(Tok.is(tok::kw___uuidof) && "Not '__uuidof'!");
1693 if (Tok.is(tok::identifier)) {
1694 FirstTypeName.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
1694 FirstTypeName.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
1696 assert(Tok.is(tok::coloncolon) &&"ParseOptionalCXXScopeSpecifier fail");
1698 } else if (Tok.is(tok::annot_template_id)) {
1702 (TemplateIdAnnotation *)Tok.getAnnotationValue());
1704 assert(Tok.is(tok::coloncolon) &&"ParseOptionalCXXScopeSpecifier fail");
1711 assert(Tok.is(tok::tilde) && "ParseOptionalCXXScopeSpecifier fail");
1714 if (Tok.is(tok::kw_decltype) && !FirstTypeName.isValid() && SS.isEmpty()) {
1723 if (!Tok.is(tok::identifier)) {
1724 Diag(Tok, diag::err_destructor_tilde_identifier);
1730 IdentifierInfo *Name = Tok.getIdentifierInfo();
1736 if (Tok.is(tok::less) &&
1754 tok::TokenKind Kind = Tok.getKind();
1763 assert(Tok.is(tok::kw_throw) && "Not throw!");
1769 switch (Tok.getKind()) { // FIXME: move this predicate somewhere common.
1790 assert(Tok.is(tok::kw_co_yield) && "Not co_yield!");
1793 ExprResult Expr = Tok.is(tok::l_brace) ? ParseBraceInitializer()
1806 assert(Tok.is(tok::kw_this) && "Not 'this'!");
1829 assert((Tok.is(tok::l_paren) ||
1830 (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)))
1833 if (Tok.is(tok::l_brace)) {
1845 PreferredType.enterTypeCast(Tok.getLocation(), TypeRep.get());
1858 if (Tok.isNot(tok::r_paren)) {
1860 PreferredType.enterFunctionArgument(Tok.getLocation(),
1915 PreferredType.enterCondition(Actions, Tok.getLocation());
1917 if (Tok.is(tok::code_completion)) {
1927 Diag(Tok.getLocation(), getLangOpts().CPlusPlus17
1940 if (InitStmt && Tok.is(tok::semi)) {
1942 SourceLocation SemiLoc = Tok.getLocation();
1943 if (!Tok.hasLeadingEmptyMacro() && !SemiLoc.isMacroID()) {
1958 if (InitStmt && Tok.is(tok::semi)) {
1970 SourceLocation DeclStart = Tok.getLocation(), DeclEnd;
1980 SourceLocation DeclStart = Tok.getLocation(), DeclEnd;
1983 FRI->LoopVar = Actions.ActOnDeclStmt(DG, DeclStart, Tok.getLocation());
2002 if (Tok.is(tok::kw_asm)) {
2030 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
2031 Diag(Tok.getLocation(),
2035 PreferredType.enterVariableInit(Tok.getLocation(), DeclOut);
2037 } else if (Tok.is(tok::l_paren)) {
2085 DS.SetRangeStart(Tok.getLocation());
2088 SourceLocation Loc = Tok.getLocation();
2092 switch (Tok.getKind()) {
2101 if (getTypeAnnotation(Tok))
2103 getTypeAnnotation(Tok), Policy);
2107 DS.SetRangeEnd(Tok.getAnnotationEndLoc());
2252 assert(Tok.is(tok::less) && "Expected '<' to finish parsing a template-id");
2443 assert(Tok.is(tok::kw_operator) && "Expected 'operator' keyword");
2452 switch (Tok.getKind()) {
2455 bool isNew = Tok.getKind() == tok::kw_new;
2459 if (Tok.is(tok::l_square) &&
2538 Diag(Tok.getLocation(), diag::warn_cxx98_compat_literal_operator);
2548 if (!Tok.is(tok::string_literal) && !DiagId) {
2552 DiagLoc = Tok.getLocation();
2555 Toks.push_back(Tok);
2573 } else if (Tok.is(tok::identifier)) {
2574 II = Tok.getIdentifierInfo();
2578 Diag(Tok.getLocation(), diag::err_expected) << tok::identifier;
2684 if (Tok.is(tok::kw_template)) {
2698 if (Tok.is(tok::identifier)) {
2700 IdentifierInfo *Id = Tok.getIdentifierInfo();
2732 if (Tok.is(tok::less))
2748 if (Tok.is(tok::annot_template_id)) {
2749 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
2798 if (Tok.is(tok::kw_operator)) {
2810 Tok.is(tok::less))
2826 (AllowDestructorName || SS.isSet()) && Tok.is(tok::tilde)) {
2835 if (SS.isEmpty() && Tok.is(tok::kw_decltype)) {
2847 if (Tok.isNot(tok::identifier)) {
2848 Diag(Tok, diag::err_destructor_tilde_identifier);
2868 if (Tok.isNot(tok::identifier) || NextToken().is(tok::coloncolon) ||
2877 << FixItHint::CreateInsertion(Tok.getLocation(), "~");
2885 IdentifierInfo *ClassName = Tok.getIdentifierInfo();
2888 if (Tok.is(tok::less)) {
2907 Diag(Tok, diag::err_expected_unqualified_id)
2942 assert(Tok.is(tok::kw_new) && "expected 'new' token");
2954 if (Tok.is(tok::l_paren)) {
2977 if (Tok.is(tok::l_paren)) {
3016 if (Tok.is(tok::l_paren)) {
3022 if (Tok.isNot(tok::r_paren)) {
3034 PreferredType.enterFunctionArgument(Tok.getLocation(),
3052 } else if (Tok.is(tok::l_brace) && getLangOpts().CPlusPlus11) {
3053 Diag(Tok.getLocation(),
3075 while (Tok.is(tok::l_square)) {
3084 First ? (Tok.is(tok::r_square) ? ExprResult() : ParseExpression())
3150 assert(Tok.is(tok::kw_delete) && "Expected 'delete' keyword");
3155 if (Tok.is(tok::l_square) && NextToken().is(tok::r_square)) {
3172 SourceLocation LSquareLoc = Tok.getLocation();
3180 if (Tok.is(tok::l_brace)) {
3183 RBraceLoc = Tok.getLocation();
3281 tok::TokenKind Kind = Tok.getKind();
3300 if (Tok.is(tok::ellipsis)) {
3340 ArrayTypeTrait ATT = ArrayTypeTraitFromTokKind(Tok.getKind());
3383 ExpressionTrait ET = ExpressionTraitFromTokKind(Tok.getKind());
3444 if (Tok.is(tok::l_brace)) {
3448 if (Tok.is(tok::l_paren) && NextToken().is(tok::r_paren)) {
3471 AttrEnd.setLocation(Tok.getLocation());
3476 Toks.push_back(Tok);
3500 assert(Tok.is(tok::eof) && Tok.getEofData() == AttrEnd.getEofData());
3500 assert(Tok.is(tok::eof) && Tok.getEofData() == AttrEnd.getEofData());
3533 if (!Result.isInvalid() && Tok.is(tok::r_paren))
3535 Tok.getLocation(), Result.get());
3539 while (Tok.isNot(tok::eof))
3541 assert(Tok.getEofData() == AttrEnd.getEofData());
3548 assert(Tok.is(tok::eof) && Tok.getEofData() == AttrEnd.getEofData());
3548 assert(Tok.is(tok::eof) && Tok.getEofData() == AttrEnd.getEofData());
3570 Diag(Tok.getLocation(), diag::err_expected) << tok::comma;
tools/clang/lib/Parse/ParseInit.cpp 26 switch (Tok.getKind()) {
100 return Tok.is(tok::equal);
163 if (Tok.is(tok::identifier)) {
164 const IdentifierInfo *FieldName = Tok.getIdentifierInfo();
172 assert(Tok.is(tok::colon) && "MayBeDesignationStart not working properly!");
191 while (Tok.is(tok::period) || Tok.is(tok::l_square)) {
191 while (Tok.is(tok::period) || Tok.is(tok::l_square)) {
192 if (Tok.is(tok::period)) {
196 if (Tok.isNot(tok::identifier)) {
197 Diag(Tok.getLocation(), diag::err_expected_field_designator);
201 Desig.AddDesignator(Designator::getField(Tok.getIdentifierInfo(), DotLoc,
202 Tok.getLocation()));
208 assert(Tok.is(tok::l_square) && "Unexpected token!");
241 if (Tok.is(tok::identifier) && Tok.getIdentifierInfo() == Ident_super &&
241 if (Tok.is(tok::identifier) && Tok.getIdentifierInfo() == Ident_super &&
272 } else if (getLangOpts().ObjC && Tok.is(tok::identifier)) {
273 IdentifierInfo *II = Tok.getIdentifierInfo();
274 SourceLocation IILoc = Tok.getLocation();
296 if (Tok.is(tok::less)) {
342 if (getLangOpts().ObjC && Tok.isNot(tok::ellipsis) &&
343 Tok.isNot(tok::r_square)) {
344 CheckArrayDesignatorSyntax(*this, Tok.getLocation(), Desig);
350 if (Tok.isNot(tok::ellipsis)) {
354 Diag(Tok, diag::ext_gnu_array_range);
379 if (Tok.is(tok::equal)) {
388 if (Tok.is(tok::l_brace) && getLangOpts().CPlusPlus11) {
400 Diag(Tok, diag::ext_gnu_missing_equal_designator)
401 << FixItHint::CreateInsertion(Tok.getLocation(), "= ");
402 return Actions.ActOnDesignatedInitializer(Desig, Tok.getLocation(),
406 Diag(Tok, diag::err_expected_equal_designator);
434 if (Tok.is(tok::r_brace)) {
450 if (getLangOpts().MicrosoftExt && (Tok.is(tok::kw___if_exists) ||
451 Tok.is(tok::kw___if_not_exists))) {
453 if (Tok.isNot(tok::comma)) break;
456 if (Tok.is(tok::r_brace)) break;
470 if (Tok.is(tok::ellipsis))
489 if (Tok.isNot(tok::comma)) {
496 if (Tok.isNot(tok::comma)) break;
502 if (Tok.is(tok::r_brace)) break;
526 Diag(Tok, diag::err_expected) << tok::l_brace;
556 if (Tok.is(tok::ellipsis))
565 if (Tok.is(tok::comma)) {
570 if (Tok.is(tok::r_brace))
tools/clang/lib/Parse/ParseObjc.cpp 29 if (Tok.is(tok::kw___attribute)) {
31 Diag(Tok, diag::err_objc_postfix_attribute_hint)
34 Diag(Tok, diag::err_objc_postfix_attribute);
51 if (Tok.is(tok::code_completion)) {
58 switch (Tok.getObjCKeywordID()) {
142 ClassNames.push_back(Tok.getIdentifierInfo());
143 ClassLocs.push_back(Tok.getLocation());
148 if (Tok.is(tok::less))
214 assert(Tok.isObjCAtKeyword(tok::objc_interface) &&
220 if (Tok.is(tok::code_completion)) {
232 IdentifierInfo *nameId = Tok.getIdentifierInfo();
242 if (Tok.is(tok::less))
246 if (Tok.is(tok::l_paren) &&
254 if (Tok.is(tok::code_completion)) {
261 if (Tok.is(tok::identifier)) {
262 categoryId = Tok.getIdentifierInfo();
266 Diag(Tok, diag::err_expected)
279 if (Tok.is(tok::less) &&
290 if (Tok.is(tok::l_brace))
305 if (Tok.is(tok::colon)) { // a super class is specified.
309 if (Tok.is(tok::code_completion)) {
317 superClassId = Tok.getIdentifierInfo();
321 if (Tok.is(tok::less)) {
327 if (Tok.is(tok::eof))
344 } else if (protocols.empty() && Tok.is(tok::less) &&
351 if (Tok.isNot(tok::less))
361 if (Tok.is(tok::l_brace))
424 assert(Tok.is(tok::less) && "Not at the beginning of a type parameter list");
453 if (Tok.is(tok::kw___covariant) || Tok.is(tok::kw___contravariant)) {
453 if (Tok.is(tok::kw___covariant) || Tok.is(tok::kw___contravariant)) {
454 variance = Tok.is(tok::kw___covariant)
469 if (!Tok.is(tok::identifier)) {
471 if (Tok.is(tok::code_completion)) {
481 Diag(Tok, diag::err_objc_expected_type_parameter);
486 IdentifierInfo *paramName = Tok.getIdentifierInfo();
523 if (Tok.is(tok::greater))
533 if (Tok.is(tok::greater))
542 if (Tok.isNot(tok::colon) && Tok.isNot(tok::l_paren)) {
542 if (Tok.isNot(tok::colon) && Tok.isNot(tok::l_paren)) {
603 if (Tok.isOneOf(tok::minus, tok::plus)) {
612 if (Tok.is(tok::semi))
617 if (Tok.is(tok::l_paren)) {
618 Diag(Tok, diag::err_expected_minus_or_plus);
619 ParseObjCMethodDecl(Tok.getLocation(),
625 if (Tok.is(tok::semi)) {
637 if (Tok.is(tok::code_completion)) {
645 if (Tok.isNot(tok::at)) {
649 if (Tok.is(tok::r_brace))
657 if (Tok.isOneOf(tok::kw_static_assert, tok::kw__Static_assert)) {
670 if (Tok.is(tok::code_completion)) {
675 tok::ObjCKeywordKind DirectiveKind = Tok.getObjCKeywordID();
679 AtEnd.setEnd(Tok.getLocation());
682 Diag(Tok, diag::err_objc_unknown_at);
723 if (Tok.is(tok::l_paren)) {
724 LParenLoc = Tok.getLocation();
779 if (Tok.is(tok::code_completion)) {
782 } else if (Tok.isObjCAtKeyword(tok::objc_end)) {
785 Diag(Tok, diag::err_objc_missing_end)
786 << FixItHint::CreateInsertion(Tok.getLocation(), "\n@end\n");
789 AtEnd.setBegin(Tok.getLocation());
790 AtEnd.setEnd(Tok.getLocation());
842 assert(Tok.getKind() == tok::l_paren);
847 if (Tok.is(tok::code_completion)) {
851 const IdentifierInfo *II = Tok.getIdentifierInfo();
893 if (Tok.is(tok::code_completion)) {
905 Diag(Tok, diag::err_objc_expected_selector_for_getter_setter)
928 Tok.getLocation());
930 DS.setNullability(Tok.getLocation(), NullabilityKind::NonNull);
935 Tok.getLocation());
937 DS.setNullability(Tok.getLocation(), NullabilityKind::Nullable);
942 Tok.getLocation());
944 DS.setNullability(Tok.getLocation(), NullabilityKind::Unspecified);
949 Tok.getLocation());
951 DS.setNullability(Tok.getLocation(), NullabilityKind::Unspecified);
963 if (Tok.isNot(tok::comma))
984 assert(Tok.isOneOf(tok::minus, tok::plus) && "expected +/-");
986 tok::TokenKind methodType = Tok.getKind();
1005 switch (Tok.getKind()) {
1010 SelectorLoc = Tok.getLocation();
1023 std::string ThisTok(PP.getSpelling(Tok));
1026 Tok.setKind(tok::identifier);
1103 IdentifierInfo *II = Tok.getIdentifierInfo();
1115 return (getLangOpts().ObjC && Tok.is(tok::identifier) &&
1116 Tok.getIdentifierInfo() == ObjCTypeQuals[objc_in]);
1144 if (Tok.is(tok::code_completion)) {
1150 if (Tok.isNot(tok::identifier))
1153 const IdentifierInfo *II = Tok.getIdentifierInfo();
1190 DS.setNullability(Tok.getLocation(), Nullability);
1241 assert(Tok.is(tok::l_paren) && "expected (");
1250 SourceLocation TypeStartLoc = Tok.getLocation();
1285 if (Tok.is(tok::r_paren))
1287 else if (Tok.getLocation() == TypeStartLoc) {
1289 Diag(Tok, diag::err_expected_type);
1333 if (Tok.is(tok::code_completion)) {
1343 if (Tok.is(tok::l_paren))
1353 if (Tok.is(tok::code_completion)) {
1365 if (!SelIdent && Tok.isNot(tok::colon)) { // missing selector name.
1366 Diag(Tok, diag::err_expected_selector_for_method)
1367 << SourceRange(mLoc, Tok.getLocation());
1374 if (Tok.isNot(tok::colon)) {
1382 getCurScope(), mLoc, Tok.getLocation(), mType, DSRet, ReturnType,
1405 if (Tok.is(tok::l_paren)) // Parse the argument type if present.
1418 if (Tok.is(tok::code_completion)) {
1431 ArgInfo.Name = Tok.getIdentifierInfo();
1432 ArgInfo.NameLoc = Tok.getLocation();
1443 if (Tok.is(tok::code_completion)) {
1454 if (!SelIdent && Tok.isNot(tok::colon))
1457 SourceLocation ColonLoc = Tok.getLocation();
1470 while (Tok.is(tok::comma)) {
1472 if (Tok.is(tok::ellipsis)) {
1478 Diag(Tok, diag::warn_cstyle_param);
1506 getCurScope(), mLoc, Tok.getLocation(), mType, DSRet, ReturnType, KeyLocs,
1523 assert(Tok.is(tok::less) && "expected <");
1530 if (Tok.is(tok::code_completion)) {
1540 ProtocolIdents.push_back(std::make_pair(Tok.getIdentifierInfo(),
1541 Tok.getLocation()));
1542 ProtocolLocs.push_back(Tok.getLocation());
1561 assert(Tok.is(tok::less) && "Protocol qualifiers start with '<'");
1599 assert(Tok.is(tok::less) && "Not at the start of type args or protocols");
1612 if (Tok.is(tok::identifier) &&
1616 identifiers.push_back(Tok.getIdentifierInfo());
1621 if (Tok.is(tok::code_completion)) {
1718 Token CurTypeTok = Tok;
1777 assert(Tok.is(tok::less));
1790 if (Tok.is(tok::eof)) // Nothing else to do here...
1796 if ((consumeLastToken && Tok.is(tok::less)) ||
1807 Diag(Tok, diag::err_objc_type_args_after_protocols)
1825 assert(Tok.is(tok::less));
1840 if (Tok.is(tok::eof))
1847 endLoc = Tok.getLocation();
1903 assert(Tok.is(tok::l_brace) && "expected {");
1912 while (Tok.isNot(tok::r_brace) && !isEofOrEom()) {
1916 if (Tok.is(tok::semi)) {
1923 if (Tok.is(tok::code_completion)) {
1928 switch (Tok.getObjCKeywordID()) {
1933 visibility = Tok.getObjCKeywordID();
1938 Diag(Tok, diag::err_objc_unexpected_atend);
1939 Tok.setLocation(Tok.getLocation().getLocWithOffset(-1));
1939 Tok.setLocation(Tok.getLocation().getLocWithOffset(-1));
1940 Tok.setKind(tok::at);
1941 Tok.setLength(1);
1942 PP.EnterToken(Tok, /*IsReinject*/true);
1948 Diag(Tok, diag::err_objc_illegal_visibility_spec);
1953 if (Tok.is(tok::code_completion)) {
1962 if (Tok.isOneOf(tok::kw_static_assert, tok::kw__Static_assert)) {
1985 if (Tok.is(tok::semi)) {
1988 Diag(Tok, diag::err_expected_semi_decl_list);
2016 assert(Tok.isObjCAtKeyword(tok::objc_protocol) &&
2020 if (Tok.is(tok::code_completion)) {
2031 IdentifierInfo *protocolName = Tok.getIdentifierInfo();
2041 if (Tok.is(tok::comma)) { // list of forward declarations.
2052 ProtocolRefs.push_back(IdentifierLocPair(Tok.getIdentifierInfo(),
2053 Tok.getLocation()));
2056 if (Tok.isNot(tok::comma))
2071 if (Tok.is(tok::less) &&
2098 assert(Tok.isObjCAtKeyword(tok::objc_implementation) &&
2104 if (Tok.is(tok::code_completion)) {
2115 IdentifierInfo *nameId = Tok.getIdentifierInfo();
2121 if (Tok.is(tok::less)) {
2124 SourceLocation diagLoc = Tok.getLocation();
2136 if (Tok.is(tok::l_paren)) {
2142 if (Tok.is(tok::code_completion)) {
2148 if (Tok.is(tok::identifier)) {
2149 categoryId = Tok.getIdentifierInfo();
2152 Diag(Tok, diag::err_expected)
2156 if (Tok.isNot(tok::r_paren)) {
2157 Diag(Tok, diag::err_expected) << tok::r_paren;
2162 if (Tok.is(tok::less)) { // we have illegal '<' try to recover
2163 Diag(Tok, diag::err_unexpected_protocol_qualifier);
2184 superClassId = Tok.getIdentifierInfo();
2190 if (Tok.is(tok::l_brace)) // we have ivars
2192 else if (Tok.is(tok::less)) { // we have illegal '<' try to recover
2193 Diag(Tok, diag::err_unexpected_protocol_qualifier);
2226 assert(Tok.isObjCAtKeyword(tok::objc_end) &&
2239 finish(P.Tok.getLocation());
2241 P.Diag(P.Tok, diag::err_objc_missing_end)
2242 << FixItHint::CreateInsertion(P.Tok.getLocation(), "\n@end\n");
2279 assert(Tok.isObjCAtKeyword(tok::objc_compatibility_alias) &&
2284 IdentifierInfo *aliasId = Tok.getIdentifierInfo();
2288 IdentifierInfo *classId = Tok.getIdentifierInfo();
2307 assert(Tok.isObjCAtKeyword(tok::objc_synthesize) &&
2312 if (Tok.is(tok::code_completion)) {
2318 if (Tok.isNot(tok::identifier)) {
2319 Diag(Tok, diag::err_synthesized_property_name);
2325 IdentifierInfo *propertyId = Tok.getIdentifierInfo();
2330 if (Tok.is(tok::code_completion)) {
2338 propertyIvar = Tok.getIdentifierInfo();
2345 if (Tok.isNot(tok::comma))
2361 assert(Tok.isObjCAtKeyword(tok::objc_dynamic) &&
2366 if (Tok.is(tok::l_paren)) {
2368 const IdentifierInfo *II = Tok.getIdentifierInfo();
2371 Diag(Tok, diag::err_objc_expected_property_attr) << II;
2377 if (Tok.isNot(tok::r_paren)) {
2378 Diag(Tok, diag::err_expected) << tok::r_paren;
2390 if (Tok.is(tok::code_completion)) {
2401 IdentifierInfo *propertyId = Tok.getIdentifierInfo();
2409 if (Tok.isNot(tok::comma))
2423 if (Tok.isNot(tok::semi)) {
2441 if (Tok.isNot(tok::l_paren)) {
2442 Diag(Tok, diag::err_expected_lparen_after) << "@synchronized";
2450 if (Tok.is(tok::r_paren)) {
2454 Diag(Tok, diag::err_expected) << tok::r_paren;
2461 if (Tok.isNot(tok::l_brace)) {
2463 Diag(Tok, diag::err_expected) << tok::l_brace;
2482 body = Actions.ActOnNullStmt(Tok.getLocation());
2502 if (Tok.isNot(tok::l_brace)) {
2503 Diag(Tok, diag::err_expected) << tok::l_brace;
2512 TryBody = Actions.ActOnNullStmt(Tok.getLocation());
2514 while (Tok.is(tok::at)) {
2524 if (Tok.isObjCAtKeyword(tok::objc_catch)) {
2527 if (Tok.is(tok::l_paren)) {
2532 if (Tok.isNot(tok::ellipsis)) {
2546 if (Tok.is(tok::r_paren))
2552 if (Tok.is(tok::l_brace))
2555 Diag(Tok, diag::err_expected) << tok::l_brace;
2557 CatchBody = Actions.ActOnNullStmt(Tok.getLocation());
2573 assert(Tok.isObjCAtKeyword(tok::objc_finally) && "Lookahead confused?");
2581 Actions.ActOnCapturedRegionStart(Tok.getLocation(), getCurScope(),
2585 if (Tok.is(tok::l_brace))
2588 Diag(Tok, diag::err_expected) << tok::l_brace;
2591 FinallyBody = Actions.ActOnNullStmt(Tok.getLocation());
2620 if (Tok.isNot(tok::l_brace)) {
2621 Diag(Tok, diag::err_expected) << tok::l_brace;
2632 AutoreleasePoolBody = Actions.ActOnNullStmt(Tok.getLocation());
2650 Toks.push_back(Tok);
2651 if (Tok.is(tok::kw_try)) {
2653 if (Tok.is(tok::colon)) {
2654 Toks.push_back(Tok);
2656 while (Tok.isNot(tok::l_brace)) {
2661 Toks.push_back(Tok); // also store '{'
2663 else if (Tok.is(tok::colon)) {
2666 while (Tok.isNot(tok::l_brace)) {
2670 Toks.push_back(Tok); // also store '{'
2675 while (Tok.is(tok::kw_catch)) {
2686 PrettyDeclStackTraceEntry CrashInfo(Actions.Context, MDecl, Tok.getLocation(),
2690 if (Tok.is(tok::semi)) {
2692 Diag(Tok, diag::warn_semicolon_before_method_body)
2693 << FixItHint::CreateRemoval(Tok.getLocation());
2699 if (Tok.isNot(tok::l_brace)) {
2700 Diag(Tok, diag::err_expected_method_body);
2706 if (Tok.isNot(tok::l_brace))
2727 if (Tok.is(tok::code_completion)) {
2733 if (Tok.isObjCAtKeyword(tok::objc_try))
2736 if (Tok.isObjCAtKeyword(tok::objc_throw))
2739 if (Tok.isObjCAtKeyword(tok::objc_synchronized))
2742 if (Tok.isObjCAtKeyword(tok::objc_autoreleasepool))
2745 if (Tok.isObjCAtKeyword(tok::objc_import) &&
2748 return Actions.ActOnNullStmt(Tok.getLocation());
2767 switch (Tok.getKind()) {
2775 tok::TokenKind Kind = Tok.getKind();
2778 if (!Tok.is(tok::numeric_constant)) {
2785 Diag(Tok, diag::err_nsnumber_nonliteral_unary)
2790 ExprResult Lit(Actions.ActOnNumericConstant(Tok));
2834 if (Tok.getIdentifierInfo() == nullptr)
2837 switch (Tok.getIdentifierInfo()->getObjCKeywordID()) {
2853 char ch = Tok.getIdentifierInfo()->getNameStart()[0];
2860 SourceLocation kwLoc = Tok.getLocation();
2896 if (Tok.isOneOf(tok::identifier, tok::coloncolon, tok::kw_typename,
2900 if (!Actions.isSimpleTypeSpecifier(Tok.getKind())) {
2922 if (Tok.is(tok::l_paren)) {
2967 assert(Tok.is(tok::l_square) && getLangOpts().ObjC &&
2980 if (Tok.is(tok::annot_typename))
2981 Type = getTypeAnnotation(Tok);
2982 else if (Tok.is(tok::identifier))
2983 Type = Actions.getTypeName(*Tok.getIdentifierInfo(), Tok.getLocation(),
2983 Type = Actions.getTypeName(*Tok.getIdentifierInfo(), Tok.getLocation(),
2991 if (Tok.is(tok::identifier))
2994 return Tok.is(tok::annot_typename);
3011 assert(Tok.is(tok::l_square) && "'[' expected");
3014 if (Tok.is(tok::code_completion)) {
3029 if (Tok.is(tok::identifier) && Tok.getIdentifierInfo() == Ident_super &&
3029 if (Tok.is(tok::identifier) && Tok.getIdentifierInfo() == Ident_super &&
3051 if (Tok.is(tok::identifier)) {
3052 IdentifierInfo *Name = Tok.getIdentifierInfo();
3053 SourceLocation NameLoc = Tok.getLocation();
3072 if (Tok.is(tok::less)) {
3151 if (Tok.is(tok::code_completion)) {
3173 if (Tok.is(tok::colon)) {
3189 if (Tok.is(tok::code_completion)) {
3208 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
3209 Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
3227 if (Tok.is(tok::code_completion)) {
3246 if (!selIdent && Tok.isNot(tok::colon))
3251 while (Tok.is(tok::comma)) {
3255 if (Tok.is(tok::colon))
3258 if (Tok.is(tok::colon)) {
3273 Diag(Tok, diag::err_expected) << tok::identifier; // missing selector name.
3282 if (Tok.isNot(tok::r_square)) {
3283 Diag(Tok, diag::err_expected)
3284 << (Tok.is(tok::identifier) ? tok::colon : tok::r_square);
3323 while (Tok.is(tok::at)) {
3328 return ExprError(Diag(Tok, diag::err_objc_concat_string));
3355 ExprResult Lit(Actions.ActOnCharacterConstant(Tok));
3369 ExprResult Lit(Actions.ActOnNumericConstant(Tok));
3382 if (Tok.isNot(tok::l_paren))
3383 return ExprError(Diag(Tok, diag::err_expected_lparen_after) << "@");
3407 while (Tok.isNot(tok::r_square)) {
3423 if (Tok.is(tok::ellipsis))
3430 if (Tok.is(tok::comma))
3432 else if (Tok.isNot(tok::r_square))
3433 return ExprError(Diag(Tok, diag::err_expected_either) << tok::r_square
3449 while (Tok.isNot(tok::r_brace)) {
3498 if (!TryConsumeToken(tok::comma) && Tok.isNot(tok::r_brace))
3499 return ExprError(Diag(Tok, diag::err_expected_either) << tok::r_brace
3516 assert(Tok.isObjCAtKeyword(tok::objc_encode) && "Not an @encode expression!");
3520 if (Tok.isNot(tok::l_paren))
3521 return ExprError(Diag(Tok, diag::err_expected_lparen_after) << "@encode");
3543 if (Tok.isNot(tok::l_paren))
3544 return ExprError(Diag(Tok, diag::err_expected_lparen_after) << "@protocol");
3552 IdentifierInfo *protocolId = Tok.getIdentifierInfo();
3567 if (Tok.isNot(tok::l_paren))
3568 return ExprError(Diag(Tok, diag::err_expected_lparen_after) << "@selector");
3575 bool HasOptionalParen = Tok.is(tok::l_paren);
3579 if (Tok.is(tok::code_completion)) {
3587 Tok.isNot(tok::colon) && Tok.isNot(tok::coloncolon))
3587 Tok.isNot(tok::colon) && Tok.isNot(tok::coloncolon))
3588 return ExprError(Diag(Tok, diag::err_expected) << tok::identifier);
3593 if (Tok.isNot(tok::r_paren)) {
3602 if (Tok.is(tok::r_paren))
3605 if (Tok.is(tok::code_completion)) {
3615 if (!SelIdent && Tok.isNot(tok::colon) && Tok.isNot(tok::coloncolon))
3615 if (!SelIdent && Tok.isNot(tok::colon) && Tok.isNot(tok::coloncolon))
3619 if (HasOptionalParen && Tok.is(tok::r_paren))
3639 SourceLocation OrigLoc = Tok.getLocation();
3652 LM.Toks.push_back(Tok);
3658 assert(Tok.isOneOf(tok::l_brace, tok::kw_try, tok::colon) &&
3671 if (Tok.is(tok::kw_try))
3674 if (Tok.is(tok::colon))
3681 if (Tok.getLocation() != OrigLoc) {
3687 if (PP.getSourceManager().isBeforeInTranslationUnit(Tok.getLocation(),
3689 while (Tok.getLocation() != OrigLoc && Tok.isNot(tok::eof))
3689 while (Tok.getLocation() != OrigLoc && Tok.isNot(tok::eof))
tools/clang/lib/Parse/ParseOpenMP.cpp 247 if (Name.isEmpty() && Tok.is(tok::annot_pragma_openmp_end))
253 if (!IsCorrect && Tok.is(tok::annot_pragma_openmp_end))
258 if (Tok.is(tok::colon) || Tok.is(tok::annot_pragma_openmp_end)) {
258 if (Tok.is(tok::colon) || Tok.is(tok::annot_pragma_openmp_end)) {
259 Diag(Tok.getLocation(), diag::err_expected_type);
263 if (!IsCorrect && Tok.is(tok::annot_pragma_openmp_end))
285 if (Tok.is(tok::colon) || Tok.is(tok::annot_pragma_openmp_end))
285 if (Tok.is(tok::colon) || Tok.is(tok::annot_pragma_openmp_end))
291 if (Tok.is(tok::annot_pragma_openmp_end)) {
292 Diag(Tok.getLocation(), diag::err_expected_type);
296 } while (Tok.isNot(tok::annot_pragma_openmp_end));
303 if (!IsCorrect && Tok.is(tok::annot_pragma_openmp_end))
310 if (Tok.is(tok::annot_pragma_openmp_end)) {
311 Diag(Tok.getLocation(), diag::err_expected_expression);
333 if (CombinerResult.isInvalid() && Tok.isNot(tok::r_paren) &&
334 Tok.isNot(tok::annot_pragma_openmp_end)) {
341 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
343 if (Tok.is(tok::identifier) &&
344 Tok.getIdentifierInfo()->isStr("initializer")) {
347 Diag(Tok.getLocation(), diag::err_expected) << "'initializer'";
358 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
367 if (Tok.is(tok::identifier) &&
368 Tok.getIdentifierInfo()->isStr("omp_priv")) {
384 if (InitializerResult.isInvalid() && Tok.isNot(tok::r_paren) &&
385 Tok.isNot(tok::annot_pragma_openmp_end)) {
413 if (Tok.is(tok::code_completion)) {
429 } else if (Tok.is(tok::l_paren)) {
446 PreferredType.enterFunctionArgument(Tok.getLocation(),
455 SourceLocation RLoc = Tok.getLocation();
467 } else if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) {
469 Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
507 if (Tok.isNot(tok::identifier) && Tok.isNot(tok::kw_default)) {
507 if (Tok.isNot(tok::identifier) && Tok.isNot(tok::kw_default)) {
508 Diag(Tok.getLocation(), diag::err_omp_mapper_illegal_identifier);
511 MapperId = DeclNames.getIdentifier(Tok.getIdentifierInfo());
522 if (!IsCorrect && Tok.is(tok::annot_pragma_openmp_end))
552 SourceLocation Loc = Tok.getLocation();
564 while (Tok.isNot(tok::annot_pragma_openmp_end)) {
565 OpenMPClauseKind CKind = Tok.isAnnotation()
567 : getOpenMPClauseKind(PP.getSpelling(Tok));
576 if (Tok.is(tok::comma))
581 Diag(Tok, diag::err_omp_expected_clause)
611 Diag(Tok.getLocation(), diag::err_omp_mapper_expected_declarator);
759 PP.EnterToken(Tok, /*IsReinject*/ true);
780 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
781 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
783 while (Tok.isNot(tok::annot_pragma_openmp_end))
919 if (!Tok.is(tok::identifier)) {
920 Diag(Tok.getLocation(), diag::err_omp_declare_variant_no_ctx_selector)
925 StringRef CtxSelectorSetName = PP.getSpelling(Tok, Buffer);
926 auto Res = UsedCtxSets.try_emplace(CtxSelectorSetName, Tok.getLocation());
930 Diag(Tok.getLocation(), diag::err_omp_declare_variant_ctx_set_mutiple_use)
938 if (Tok.isNot(tok::equal)) {
939 Diag(Tok.getLocation(), diag::err_omp_declare_variant_equal_expected)
969 const Token PrevTok = Tok;
970 if (!TryConsumeToken(tok::comma) && Tok.isNot(tok::r_brace))
971 Diag(Tok, diag::err_omp_expected_comma_brace)
974 } while (Tok.is(tok::identifier));
979 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::annot_pragma_openmp_end))
979 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::annot_pragma_openmp_end))
981 } while (Tok.isAnyIdentifier());
989 PP.EnterToken(Tok, /*IsReinject*/ true);
1005 if (!Tok.is(tok::annot_pragma_openmp_end))
1014 Ptr, AssociatedFunction.get(), SourceRange(Loc, Tok.getLocation()));
1017 OpenMPClauseKind CKind = Tok.isAnnotation()
1019 : getOpenMPClauseKind(PP.getSpelling(Tok));
1021 Diag(Tok.getLocation(), diag::err_omp_declare_variant_wrong_clause)
1054 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1055 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
1061 while (Tok.isNot(tok::annot_pragma_openmp_end))
1125 while (Tok.isNot(tok::annot_pragma_openmp_end)) {
1127 if (Tok.is(tok::identifier)) {
1128 IdentifierInfo *II = Tok.getIdentifierInfo();
1136 Diag(Tok, diag::err_omp_declare_target_unexpected_clause)
1181 if (Tok.is(tok::comma))
1205 Diag(Tok, diag::err_expected_end_declare_target);
1210 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1211 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
1250 assert(Tok.is(tok::annot_pragma_openmp) && "Not an OpenMP directive!");
1264 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1265 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
1282 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1286 while (Tok.isNot(tok::annot_pragma_openmp_end)) {
1288 Tok.isAnnotation() ? OMPC_unknown
1289 : getOpenMPClauseKind(PP.getSpelling(Tok));
1298 if (Tok.is(tok::annot_pragma_openmp_end)) {
1303 if (Tok.is(tok::comma))
1309 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1310 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
1327 if (Tok.is(tok::annot_pragma_openmp_end)) {
1328 Diag(Tok, diag::err_omp_expected_clause)
1332 while (Tok.isNot(tok::annot_pragma_openmp_end)) {
1333 OpenMPClauseKind CKind = Tok.isAnnotation()
1335 : getOpenMPClauseKind(PP.getSpelling(Tok));
1344 if (Tok.is(tok::annot_pragma_openmp_end)) {
1349 if (Tok.is(tok::comma))
1355 Diag(Tok, diag::err_omp_expected_clause)
1368 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1369 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
1371 while (Tok.isNot(tok::annot_pragma_openmp_end))
1395 Toks.push_back(Tok);
1397 while(Tok.isNot(tok::annot_pragma_openmp_end)) {
1398 Toks.push_back(Tok);
1401 Toks.push_back(Tok);
1405 if (Tok.is(tok::annot_pragma_openmp)) {
1407 } else if (Tok.isNot(tok::r_brace) && !isEofOrEom()) {
1433 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1445 while (DKind != OMPD_end_declare_target && Tok.isNot(tok::eof) &&
1446 Tok.isNot(tok::r_brace)) {
1462 if (Tok.isAnnotation() && Tok.is(tok::annot_pragma_openmp)) {
1462 if (Tok.isAnnotation() && Tok.is(tok::annot_pragma_openmp)) {
1478 Diag(Tok, diag::err_omp_unknown_directive);
1531 Diag(Tok, diag::err_omp_unexpected_directive)
1535 while (Tok.isNot(tok::annot_pragma_openmp_end))
1582 assert(Tok.is(tok::annot_pragma_openmp) && "Not an OpenMP directive!");
1603 Diag(Tok, diag::err_omp_immediate_directive)
1612 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1613 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
1619 Directive = Actions.ActOnDeclStmt(Res, Loc, Tok.getLocation());
1628 Diag(Tok, diag::err_omp_immediate_directive)
1636 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1640 while (Tok.isNot(tok::annot_pragma_openmp_end)) {
1642 Tok.isAnnotation() ? OMPC_unknown
1643 : getOpenMPClauseKind(PP.getSpelling(Tok));
1652 if (Tok.is(tok::annot_pragma_openmp_end)) {
1657 if (Tok.is(tok::comma))
1663 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1664 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
1671 Directive = Actions.ActOnDeclStmt(Res, Loc, Tok.getLocation());
1682 if (Tok.isNot(tok::annot_pragma_openmp_end)) {
1683 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
1685 while (Tok.isNot(tok::annot_pragma_openmp_end))
1689 Directive = Actions.ActOnDeclStmt(Res, Loc, Tok.getLocation());
1700 Directive = Actions.ActOnDeclStmt(Res, Loc, Tok.getLocation());
1711 PP.EnterToken(Tok, /*IsReinject*/ true);
1724 Diag(Tok, diag::err_omp_immediate_directive)
1777 if (Tok.isAnyIdentifier()) {
1779 DeclarationNameInfo(Tok.getIdentifierInfo(), Tok.getLocation());
1779 DeclarationNameInfo(Tok.getIdentifierInfo(), Tok.getLocation());
1782 Diag(Tok, diag::err_omp_expected_identifier_for_critical);
1788 if (Tok.isNot(tok::annot_pragma_openmp_end))
1799 while (Tok.isNot(tok::annot_pragma_openmp_end)) {
1801 Tok.isAnnotation()
1804 : getOpenMPClauseKind(PP.getSpelling(Tok));
1816 if (Tok.is(tok::comma))
1821 EndLoc = Tok.getLocation();
1869 Diag(Tok, diag::err_omp_unexpected_directive)
1874 Diag(Tok, diag::err_omp_unknown_directive);
1899 while (Tok.isNot(tok::r_paren) && Tok.isNot(tok::annot_pragma_openmp_end)) {
1899 while (Tok.isNot(tok::r_paren) && Tok.isNot(tok::annot_pragma_openmp_end)) {
1903 Token PrevTok = Tok;
1916 } else if (Tok.isNot(tok::comma) && Tok.isNot(tok::r_paren) &&
1916 } else if (Tok.isNot(tok::comma) && Tok.isNot(tok::r_paren) &&
1917 Tok.isNot(tok::annot_pragma_openmp_end)) {
1928 if (Tok.is(tok::comma)) {
1934 Diag(Tok, diag::err_expected) << tok::identifier;
1967 Diag(Tok, diag::err_omp_unexpected_clause) << getOpenMPClauseName(CKind)
2011 Diag(Tok, diag::err_omp_more_one_clause)
2033 Diag(Tok, diag::err_omp_more_one_clause)
2048 Diag(Tok, diag::err_omp_more_one_clause)
2079 Diag(Tok, diag::err_omp_more_one_clause)
2109 Diag(Tok, diag::warn_omp_extra_tokens_at_eol)
2117 Diag(Tok, diag::err_omp_unexpected_clause)
2135 SourceLocation ELoc = Tok.getLocation();
2142 RLoc = Tok.getLocation();
2186 SourceLocation LLoc = Tok.getLocation();
2244 SourceLocation Loc = Tok.getLocation();
2249 return Actions.ActOnOpenMPClause(Kind, Loc, Tok.getLocation());
2287 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok));
2287 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok));
2291 KLoc[Modifier1] = Tok.getLocation();
2292 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2292 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2293 Tok.isNot(tok::annot_pragma_openmp_end))
2295 if (Tok.is(tok::comma)) {
2299 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok));
2299 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok));
2303 KLoc[Modifier2] = Tok.getLocation();
2304 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2304 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2305 Tok.isNot(tok::annot_pragma_openmp_end))
2309 if (Tok.is(tok::colon))
2312 Diag(Tok, diag::warn_pragma_expected_colon) << "schedule modifier";
2314 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok));
2314 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok));
2317 KLoc[ScheduleKind] = Tok.getLocation();
2318 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2318 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2319 Tok.isNot(tok::annot_pragma_openmp_end))
2324 Tok.is(tok::comma))
2328 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok)));
2328 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok)));
2329 KLoc.push_back(Tok.getLocation());
2330 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2330 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2331 Tok.isNot(tok::annot_pragma_openmp_end))
2333 if (Arg.back() == OMPC_DIST_SCHEDULE_static && Tok.is(tok::comma))
2338 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok)));
2338 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok)));
2339 KLoc.push_back(Tok.getLocation());
2340 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2340 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2341 Tok.isNot(tok::annot_pragma_openmp_end))
2344 if (Tok.is(tok::colon))
2347 Diag(Tok, diag::warn_pragma_expected_colon) << "defaultmap modifier";
2350 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok)));
2350 Kind, Tok.isAnnotation() ? "" : PP.getSpelling(Tok)));
2351 KLoc.push_back(Tok.getLocation());
2352 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2352 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::comma) &&
2353 Tok.isNot(tok::annot_pragma_openmp_end))
2357 KLoc.push_back(Tok.getLocation());
2362 if (Tok.is(tok::colon) && getLangOpts().OpenMP > 40) {
2378 SourceLocation ELoc = Tok.getLocation();
2386 SourceLocation RLoc = Tok.getLocation();
2471 if (Tok.isNot(tok::identifier) && Tok.isNot(tok::kw_default)) {
2471 if (Tok.isNot(tok::identifier) && Tok.isNot(tok::kw_default)) {
2472 Diag(Tok.getLocation(), diag::err_omp_mapper_illegal_identifier);
2479 DeclNames.getIdentifier(Tok.getIdentifierInfo()), Tok.getLocation());
2479 DeclNames.getIdentifier(Tok.getIdentifierInfo()), Tok.getLocation());
2494 Data.MapTypeModifiersLoc.push_back(Tok.getLocation());
2498 Data.MapTypeModifiersLoc.push_back(Tok.getLocation());
2506 if (Tok.is(tok::comma)) {
2507 Diag(Tok, diag::err_omp_map_type_modifier_missing);
2514 Diag(Tok, diag::err_omp_unknown_map_type_modifier);
2582 if (Tok.is(tok::colon))
2585 Diag(Tok, diag::warn_pragma_expected_colon) << "reduction identifier";
2594 Kind, Tok.is(tok::identifier) ? PP.getSpelling(Tok) : ""));
2594 Kind, Tok.is(tok::identifier) ? PP.getSpelling(Tok) : ""));
2595 Data.DepLinMapLoc = Tok.getLocation();
2609 if (Tok.is(tok::colon)) {
2612 Diag(Tok, DKind == OMPD_ordered ? diag::warn_pragma_expected_colon_r_paren
2618 if (Tok.is(tok::identifier) && PP.LookAhead(0).is(tok::l_paren)) {
2620 getOpenMPSimpleClauseType(Kind, PP.getSpelling(Tok)));
2632 Data.DepLinMapLoc = Tok.getLocation();
2639 if (Tok.is(tok::colon))
2657 if (Tok.is(tok::colon))
2660 if (Tok.is(tok::identifier)) {
2664 getOpenMPSimpleClauseType(Kind, PP.getSpelling(Tok)));
2669 getOpenMPSimpleClauseType(Kind, PP.getSpelling(Tok)));
2677 if (Tok.isNot(tok::colon)) {
2679 Diag(Tok, diag::warn_pragma_expected_colon) << ")";
2684 if (Tok.is(tok::colon))
2697 if (Tok.is(tok::colon)) {
2722 while (IsComma || (Tok.isNot(tok::r_paren) && Tok.isNot(tok::colon) &&
2722 while (IsComma || (Tok.isNot(tok::r_paren) && Tok.isNot(tok::colon) &&
2723 Tok.isNot(tok::annot_pragma_openmp_end))) {
2735 IsComma = Tok.is(tok::comma);
2738 else if (Tok.isNot(tok::r_paren) &&
2739 Tok.isNot(tok::annot_pragma_openmp_end) &&
2740 (!MayHaveTail || Tok.isNot(tok::colon)))
2741 Diag(Tok, diag::err_omp_expected_punc)
2752 const bool MustHaveTail = MayHaveTail && Tok.is(tok::colon);
2754 Data.ColonLoc = Tok.getLocation();
2767 Data.RLoc = Tok.getLocation();
2827 SourceLocation Loc = Tok.getLocation();
tools/clang/lib/Parse/ParsePragma.cpp 498 assert(Tok.is(tok::annot_pragma_unused));
500 Actions.ActOnPragmaUnused(Tok, getCurScope(), UnusedLoc);
505 assert(Tok.is(tok::annot_pragma_vis));
507 static_cast<IdentifierInfo *>(Tok.getAnnotationValue());
521 assert(Tok.is(tok::annot_pragma_pack));
523 static_cast<PragmaPackInfo *>(Tok.getAnnotationValue());
524 SourceLocation PragmaLoc = Tok.getLocation();
541 assert(Tok.is(tok::annot_pragma_msstruct));
543 reinterpret_cast<uintptr_t>(Tok.getAnnotationValue()));
549 assert(Tok.is(tok::annot_pragma_align));
552 reinterpret_cast<uintptr_t>(Tok.getAnnotationValue()));
553 Actions.ActOnPragmaOptionsAlign(Kind, Tok.getLocation());
560 assert(Tok.is(tok::annot_pragma_dump));
562 reinterpret_cast<IdentifierInfo *>(Tok.getAnnotationValue());
563 Actions.ActOnPragmaDump(getCurScope(), Tok.getLocation(), II);
568 assert(Tok.is(tok::annot_pragma_weak));
570 Actions.ActOnPragmaWeakID(Tok.getIdentifierInfo(), PragmaLoc,
571 Tok.getLocation());
576 assert(Tok.is(tok::annot_pragma_weakalias));
578 IdentifierInfo *WeakName = Tok.getIdentifierInfo();
579 SourceLocation WeakNameLoc = Tok.getLocation();
581 IdentifierInfo *AliasName = Tok.getIdentifierInfo();
582 SourceLocation AliasNameLoc = Tok.getLocation();
590 assert(Tok.is(tok::annot_pragma_redefine_extname));
592 IdentifierInfo *RedefName = Tok.getIdentifierInfo();
593 SourceLocation RedefNameLoc = Tok.getLocation();
595 IdentifierInfo *AliasName = Tok.getIdentifierInfo();
596 SourceLocation AliasNameLoc = Tok.getLocation();
603 assert(Tok.is(tok::annot_pragma_fp_contract));
606 reinterpret_cast<uintptr_t>(Tok.getAnnotationValue()));
626 assert(Tok.is(tok::annot_pragma_fenv_access));
629 reinterpret_cast<uintptr_t>(Tok.getAnnotationValue()));
651 assert(Tok.is(tok::annot_pragma_captured));
654 if (Tok.isNot(tok::l_brace)) {
655 PP.Diag(Tok, diag::err_expected) << tok::l_brace;
659 SourceLocation Loc = Tok.getLocation();
685 assert(Tok.is(tok::annot_pragma_opencl_extension));
686 OpenCLExtData *Data = static_cast<OpenCLExtData*>(Tok.getAnnotationValue());
689 SourceLocation NameLoc = Tok.getLocation();
724 assert(Tok.is(tok::annot_pragma_ms_pointers_to_members));
727 reinterpret_cast<uintptr_t>(Tok.getAnnotationValue()));
733 assert(Tok.is(tok::annot_pragma_ms_vtordisp));
734 uintptr_t Value = reinterpret_cast<uintptr_t>(Tok.getAnnotationValue());
743 assert(Tok.is(tok::annot_pragma_ms_pragma));
746 (std::pair<std::unique_ptr<Token[]>, size_t> *)Tok.getAnnotationValue();
750 assert(Tok.isAnyIdentifier());
751 StringRef PragmaName = Tok.getIdentifierInfo()->getName();
752 PP.Lex(Tok); // pragma kind
768 while (Tok.isNot(tok::eof))
769 PP.Lex(Tok);
770 PP.Lex(Tok);
776 if (Tok.isNot(tok::l_paren)) {
780 PP.Lex(Tok); // (
782 if (Tok.isNot(tok::string_literal)) {
798 while (Tok.is(tok::comma)) {
799 PP.Lex(Tok); // ,
803 if (Tok.is(tok::kw_long) || Tok.is(tok::kw_short)) {
803 if (Tok.is(tok::kw_long) || Tok.is(tok::kw_short)) {
804 PP.Lex(Tok); // long/short
808 if (!Tok.isAnyIdentifier()) {
815 Tok.getIdentifierInfo()->getName())
829 << PragmaName << Tok.getIdentifierInfo()->getName();
834 PP.Lex(Tok); // Identifier
840 if (Tok.isNot(tok::r_paren)) {
844 PP.Lex(Tok); // )
845 if (Tok.isNot(tok::eof)) {
850 PP.Lex(Tok); // eof
857 if (Tok.isNot(tok::l_paren)) {
861 PP.Lex(Tok); // (
864 if (Tok.isAnyIdentifier()) {
865 StringRef PushPop = Tok.getIdentifierInfo()->getName();
877 PP.Lex(Tok); // push | pop
878 if (Tok.is(tok::comma)) {
879 PP.Lex(Tok); // ,
881 if (Tok.isAnyIdentifier()) {
882 SlotLabel = Tok.getIdentifierInfo()->getName();
883 PP.Lex(Tok); // identifier
884 if (Tok.is(tok::comma))
885 PP.Lex(Tok);
886 else if (Tok.isNot(tok::r_paren)) {
892 } else if (Tok.isNot(tok::r_paren)) {
900 if (Tok.isNot(tok::r_paren)) {
901 if (Tok.isNot(tok::string_literal)) {
922 if (Tok.isNot(tok::r_paren)) {
926 PP.Lex(Tok); // )
927 if (Tok.isNot(tok::eof)) {
932 PP.Lex(Tok); // eof
952 if (Tok.isAnyIdentifier()) {
953 auto *II = Tok.getIdentifierInfo();
965 Toks[0].setLocation(Tok.getLocation());
970 PP.Lex(Tok);
972 } else if (Tok.is(tok::string_literal)) {
1019 assert(Tok.is(tok::annot_pragma_loop_hint));
1021 static_cast<PragmaLoopHintInfo *>(Tok.getAnnotationValue());
1111 Diag(Tok.getLocation(), diag::warn_pragma_extra_tokens_at_eol)
1124 if (Tok.isNot(tok::eof)) {
1125 Diag(Tok.getLocation(), diag::warn_pragma_extra_tokens_at_eol)
1127 while (Tok.isNot(tok::eof))
1213 if (getIdentifier(Tok) == "any") {
1222 StringRef Name = getIdentifier(Tok);
1224 Diag(Tok, diag::err_pragma_attribute_expected_subject_identifier);
1231 Diag(Tok, diag::err_pragma_attribute_unknown_subject_rule) << Name;
1249 RuleLoc, Tok.is(tok::comma) ? Tok.getLocation() : RuleLoc));
1249 RuleLoc, Tok.is(tok::comma) ? Tok.getLocation() : RuleLoc));
1255 StringRef SubRuleName = getIdentifier(Tok);
1258 Tok.getLocation());
1267 SubRuleName = getIdentifier(Tok);
1288 SubRuleName, Tok.getLocation());
1294 SourceLocation RuleEndLoc = Tok.getLocation();
1304 RuleLoc, Tok.is(tok::comma) ? Tok.getLocation() : RuleEndLoc));
1304 RuleLoc, Tok.is(tok::comma) ? Tok.getLocation() : RuleEndLoc));
1400 assert(Tok.is(tok::annot_pragma_attribute) &&
1402 SourceLocation PragmaLoc = Tok.getLocation();
1403 auto *Info = static_cast<PragmaAttributeInfo *>(Tok.getAnnotationValue());
1432 if (Tok.is(tok::l_square) && NextToken().is(tok::l_square)) {
1435 } else if (Tok.is(tok::kw___attribute)) {
1443 if (Tok.isNot(tok::identifier)) {
1444 Diag(Tok, diag::err_pragma_attribute_expected_attribute_name);
1448 IdentifierInfo *AttrName = Tok.getIdentifierInfo();
1451 if (Tok.isNot(tok::l_paren))
1464 } else if (Tok.is(tok::kw___declspec)) {
1467 Diag(Tok, diag::err_pragma_attribute_expected_attribute_syntax);
1468 if (Tok.getIdentifierInfo()) {
1472 Tok.getIdentifierInfo(), /*ScopeName=*/nullptr,
1474 SourceLocation InsertStartLoc = Tok.getLocation();
1476 if (Tok.is(tok::l_paren)) {
1479 if (Tok.isNot(tok::r_paren))
1482 Diag(Tok, diag::note_pragma_attribute_use_attribute_kw)
1484 << FixItHint::CreateInsertion(Tok.getEndLoc(), "))");
1522 if (Tok.isNot(tok::identifier)) {
1529 const IdentifierInfo *II = Tok.getIdentifierInfo();
1558 if (Tok.isNot(tok::eof)) {
1559 Diag(Tok, diag::err_pragma_attribute_extra_tokens_after_attribute);
2752 assert(Tok.is(tok::annot_pragma_fp));
2754 reinterpret_cast<TokFPAnnotValue *>(Tok.getAnnotationValue());
tools/clang/lib/Parse/ParseStmt.cpp 162 tok::TokenKind Kind = Tok.getKind();
194 if (Tok.is(tok::semi))
200 if (Tok.isNot(tok::identifier))
213 SourceLocation DeclStart = Tok.getLocation(), DeclEnd;
228 if (Tok.is(tok::r_brace)) {
229 Diag(Tok, diag::err_expected_statement);
237 GNUAttributeLoc = Tok.getLocation();
250 bool HasLeadingEmptyMacro = Tok.hasLeadingEmptyMacro();
356 Diag(Tok, diag::err_pragma_fp_contract_scope);
362 Diag(Tok, diag::err_pragma_fp_scope);
428 Token OldToken = Tok;
430 ExprStatementTokLoc = Tok.getLocation();
439 if (Tok.is(tok::semi))
444 if (Tok.is(tok::colon) && getCurScope()->isSwitchScope() &&
470 assert(Tok.is(tok::kw___try) && "Expected '__try'");
473 if (Tok.isNot(tok::l_brace))
474 return StmtError(Diag(Tok, diag::err_expected) << tok::l_brace);
483 if (Tok.is(tok::identifier) &&
484 Tok.getIdentifierInfo() == getSEHExceptKeyword()) {
487 } else if (Tok.is(tok::kw___finally)) {
491 return StmtError(Diag(Tok, diag::err_seh_expected_handler));
544 if (Tok.isNot(tok::l_brace))
545 return StmtError(Diag(Tok, diag::err_expected) << tok::l_brace);
565 if (Tok.isNot(tok::l_brace))
566 return StmtError(Diag(Tok, diag::err_expected) << tok::l_brace);
598 assert(Tok.is(tok::identifier) && Tok.getIdentifierInfo() &&
598 assert(Tok.is(tok::identifier) && Tok.getIdentifierInfo() &&
605 Token IdentTok = Tok; // Save the whole token.
608 assert(Tok.is(tok::colon) && "Not a label!");
615 if (Tok.is(tok::kw___attribute)) {
626 if (!getLangOpts().CPlusPlus || Tok.is(tok::semi))
640 Diag(Tok, diag::err_expected_after) << "__attribute__" << tok::semi;
668 assert((MissingCase || Tok.is(tok::kw_case)) && "Not a case stmt!");
704 if (Tok.is(tok::code_completion)) {
779 } while (Tok.is(tok::kw_case));
784 if (Tok.isNot(tok::r_brace)) {
816 assert(Tok.is(tok::kw_default) && "Not a default stmt!");
841 if (Tok.isNot(tok::r_brace)) {
889 assert(Tok.is(tok::l_brace) && "Not a compount stmt!");
905 switch (Tok.getKind()) {
962 if (!Tok.is(tok::semi))
965 SourceLocation StartLoc = Tok.getLocation();
968 while (Tok.is(tok::semi) && !Tok.hasLeadingEmptyMacro() &&
968 while (Tok.is(tok::semi) && !Tok.hasLeadingEmptyMacro() &&
969 Tok.getLocation().isValid() && !Tok.getLocation().isMacroID()) {
969 Tok.getLocation().isValid() && !Tok.getLocation().isMacroID()) {
970 EndLoc = Tok.getLocation();
1014 Tok.getLocation(),
1035 while (Tok.is(tok::kw___label__)) {
1040 if (Tok.isNot(tok::identifier)) {
1041 Diag(Tok, diag::err_expected) << tok::identifier;
1045 IdentifierInfo *II = Tok.getIdentifierInfo();
1056 StmtResult R = Actions.ActOnDeclStmt(Res, LabelLoc, Tok.getLocation());
1067 while (!tryParseMisplacedModuleImport() && Tok.isNot(tok::r_brace) &&
1068 Tok.isNot(tok::eof)) {
1069 if (Tok.is(tok::annot_pragma_unused)) {
1078 if (Tok.isNot(tok::kw___extension__)) {
1086 while (Tok.is(tok::kw___extension__))
1099 SourceLocation DeclStart = Tok.getLocation(), DeclEnd;
1125 SourceLocation CloseLoc = Tok.getLocation();
1171 if (Cond.isInvalid() && Tok.isNot(tok::r_paren)) {
1175 if (Tok.isNot(tok::r_paren))
1185 while (Tok.is(tok::r_paren)) {
1186 Diag(Tok, diag::err_extraneous_rparen_in_condition)
1187 << FixItHint::CreateRemoval(Tok.getLocation());
1203 assert(Tok.is(tok::kw_if) && "Not an if stmt!");
1207 if (Tok.is(tok::kw_constexpr)) {
1208 Diag(Tok, getLangOpts().CPlusPlus17 ? diag::warn_cxx14_compat_constexpr_if
1214 if (Tok.isNot(tok::l_paren)) {
1215 Diag(Tok, diag::err_expected_lparen_after) << "if";
1266 ParseScope InnerScope(this, Scope::DeclScope, C99orCXX, Tok.is(tok::l_brace));
1269 SourceLocation ThenStmtLoc = Tok.getLocation();
1289 if (Tok.is(tok::kw_else)) {
1291 *TrailingElseLoc = Tok.getLocation();
1294 ElseStmtLoc = Tok.getLocation();
1306 Tok.is(tok::l_brace));
1316 } else if (Tok.is(tok::code_completion)) {
1351 assert(Tok.is(tok::kw_switch) && "Not a switch stmt!");
1354 if (Tok.isNot(tok::l_paren)) {
1355 Diag(Tok, diag::err_expected_lparen_after) << "switch";
1394 if (Tok.is(tok::l_brace)) {
1414 ParseScope InnerScope(this, Scope::DeclScope, C99orCXX, Tok.is(tok::l_brace));
1436 assert(Tok.is(tok::kw_while) && "Not a while stmt!");
1437 SourceLocation WhileLoc = Tok.getLocation();
1440 if (Tok.isNot(tok::l_paren)) {
1441 Diag(Tok, diag::err_expected_lparen_after) << "while";
1485 ParseScope InnerScope(this, Scope::DeclScope, C99orCXX, Tok.is(tok::l_brace));
1505 assert(Tok.is(tok::kw_do) && "Not a do stmt!");
1527 ParseScope InnerScope(this, Scope::DeclScope, C99orCXX, Tok.is(tok::l_brace));
1535 if (Tok.isNot(tok::kw_while)) {
1537 Diag(Tok, diag::err_expected_while);
1545 if (Tok.isNot(tok::l_paren)) {
1546 Diag(Tok, diag::err_expected_lparen_after) << "do/while";
1573 assert(Tok.is(tok::identifier));
1583 bool Result = Tok.is(tok::colon);
1614 assert(Tok.is(tok::kw_for) && "Not a for stmt!");
1618 if (Tok.is(tok::kw_co_await))
1621 if (Tok.isNot(tok::l_paren)) {
1622 Diag(Tok, diag::err_expected_lparen_after) << "for";
1663 if (Tok.is(tok::code_completion)) {
1677 if (Tok.is(tok::semi)) { // for (;
1680 SourceLocation SemiLoc = Tok.getLocation();
1681 if (!Tok.hasLeadingEmptyMacro() && !SemiLoc.isMacroID())
1684 } else if (getLangOpts().CPlusPlus && Tok.is(tok::identifier) &&
1687 IdentifierInfo *Name = Tok.getIdentifierInfo();
1692 if (Tok.is(tok::l_brace))
1709 Diag(Tok, diag::ext_c99_variable_decl_in_for_loop);
1710 Diag(Tok, diag::warn_gcc_variable_decl_in_for_loop);
1717 SourceLocation DeclStart = Tok.getLocation(), DeclEnd;
1721 FirstPart = Actions.ActOnDeclStmt(DG, DeclStart, Tok.getLocation());
1727 } else if (Tok.is(tok::semi)) { // for (int x = 4;
1734 if (Tok.is(tok::code_completion)) {
1741 Diag(Tok, diag::err_expected_semi_for);
1760 getLangOpts().CPlusPlus11 && !ForEach && Tok.is(tok::colon);
1765 if (Tok.is(tok::semi)) {
1770 if (Tok.is(tok::code_completion)) {
1776 } else if (getLangOpts().CPlusPlus11 && Tok.is(tok::colon) && FirstPart.get()) {
1779 Diag(Tok, diag::err_for_range_expected_decl)
1785 Diag(Tok, diag::err_expected_semi_for);
1789 if (Tok.is(tok::semi))
1800 if (Tok.is(tok::semi)) { // for (...;;
1802 } else if (Tok.is(tok::r_paren)) {
1842 if (Tok.isNot(tok::semi)) {
1844 Diag(Tok, diag::err_expected_semi_for);
1850 if (Tok.is(tok::semi)) {
1854 if (Tok.isNot(tok::r_paren)) { // for (...;...;)
1912 Tok.is(tok::l_brace));
1953 assert(Tok.is(tok::kw_goto) && "Not a goto stmt!");
1957 if (Tok.is(tok::identifier)) {
1958 LabelDecl *LD = Actions.LookupOrCreateLabel(Tok.getIdentifierInfo(),
1959 Tok.getLocation());
1960 Res = Actions.ActOnGotoStmt(GotoLoc, Tok.getLocation(), LD);
1962 } else if (Tok.is(tok::star)) {
1964 Diag(Tok, diag::ext_gnu_indirect_goto);
1973 Diag(Tok, diag::err_expected) << tok::identifier;
2009 assert((Tok.is(tok::kw_return) || Tok.is(tok::kw_co_return)) &&
2009 assert((Tok.is(tok::kw_return) || Tok.is(tok::kw_co_return)) &&
2011 bool IsCoreturn = Tok.is(tok::kw_co_return);
2015 if (Tok.isNot(tok::semi)) {
2017 PreferredType.enterReturn(Actions, Tok.getLocation());
2019 if (Tok.is(tok::code_completion) && !IsCoreturn) {
2021 PreferredType.get(Tok.getLocation()));
2026 if (Tok.is(tok::l_brace) && getLangOpts().CPlusPlus) {
2054 while (Tok.is(tok::annot_pragma_loop_hint)) {
2077 assert(Tok.is(tok::l_brace));
2078 SourceLocation LBraceLoc = Tok.getLocation();
2110 assert(Tok.is(tok::kw_try) && "Expected 'try'");
2117 if (Tok.is(tok::colon))
2128 SourceLocation LBraceLoc = Tok.getLocation();
2152 bool IsTryCatch = Tok.is(tok::kw_try);
2170 while (IsTryCatch && Tok.is(tok::kw_catch)) {
2187 assert(Tok.is(tok::kw_try) && "Expected 'try'");
2210 if (Tok.isNot(tok::l_brace))
2211 return StmtError(Diag(Tok, diag::err_expected) << tok::l_brace);
2222 if ((Tok.is(tok::identifier) &&
2223 Tok.getIdentifierInfo() == getSEHExceptKeyword()) ||
2224 Tok.is(tok::kw___finally)) {
2227 if(Tok.getIdentifierInfo() == getSEHExceptKeyword()) {
2250 if (Tok.isNot(tok::kw_catch))
2251 return StmtError(Diag(Tok, diag::err_expected_catch));
2252 while (Tok.is(tok::kw_catch)) {
2277 assert(Tok.is(tok::kw_catch) && "Expected 'catch'");
2295 if (Tok.isNot(tok::ellipsis)) {
2315 if (Tok.isNot(tok::l_brace))
2316 return StmtError(Diag(Tok, diag::err_expected) << tok::l_brace);
2336 if (!Tok.is(tok::l_brace)) {
2337 Diag(Tok, diag::err_expected) << tok::l_brace;
2357 Diag(Tok, diag::err_expected) << tok::l_brace;
2375 while (Tok.isNot(tok::r_brace)) {
2393 if (!(Tok.is(tok::kw_for) || Tok.is(tok::kw_while) || Tok.is(tok::kw_do))) {
2393 if (!(Tok.is(tok::kw_for) || Tok.is(tok::kw_while) || Tok.is(tok::kw_do))) {
2393 if (!(Tok.is(tok::kw_for) || Tok.is(tok::kw_while) || Tok.is(tok::kw_do))) {
2394 Diag(Tok, diag::err_opencl_unroll_hint_on_non_loop);
tools/clang/lib/Parse/ParseStmtAsm.cpp 213 LineToks.push_back(Tok);
232 if (Tok.is(tok::kw_this)) {
249 while (Result.isUsable() && Tok.is(tok::period)) {
254 IdentifierInfo *Id = Tok.getIdentifierInfo();
257 Tok.getLocation());
262 if (Tok.is(EndOfStream)) {
265 while (LineToks[LineIndex].getLocation() != Tok.getLocation()) {
273 if (Invalid || Tok.is(EndOfStream)) {
285 assert(Tok.is(EndOfStream));
409 if (Tok.is(tok::l_brace)) {
425 SourceLocation TokLoc = Tok.getLocation();
431 if (!InAsmComment && Tok.is(tok::l_brace)) {
433 SkippedStartOfLine = Tok.isAtStartOfLine();
434 AsmToks.push_back(Tok);
438 TokLoc = Tok.getLocation();
441 } else if (!InAsmComment && Tok.is(tok::semi)) {
462 bool isAsm = Tok.is(tok::kw_asm);
473 SkippedStartOfLine = Tok.isAtStartOfLine();
474 } else if (Tok.is(tok::semi)) {
480 } else if (!InAsmComment && Tok.is(tok::r_brace)) {
488 if (!InAsmComment && BraceNesting && Tok.is(tok::r_brace) &&
491 SkippedStartOfLine = Tok.isAtStartOfLine();
494 Tok.clearFlag(Token::LeadingSpace);
495 AsmToks.push_back(Tok);
505 TokLoc = Tok.getLocation();
515 PP.Lex(Tok);
520 Tok.setFlag(Token::StartOfLine);
521 AsmToks.push_back(Tok);
524 TokLoc = Tok.getLocation();
532 Diag(Tok, diag::err_expected) << tok::r_brace;
539 Diag(Tok, diag::err_expected) << tok::l_brace;
690 assert(Tok.is(tok::kw_asm) && "Not an asm stmt");
693 if (getLangOpts().AsmBlocks && !isGCCAsmStatement(Tok)) {
699 SourceLocation Loc = Tok.getLocation();
716 if (Tok.is(tok::kw_goto)) {
721 if (Tok.isNot(tok::l_paren)) {
722 Diag(Tok, diag::err_expected_lparen_after) << "asm";
750 if (Tok.is(tok::r_paren)) {
762 if (Tok.is(tok::colon) || Tok.is(tok::coloncolon)) {
762 if (Tok.is(tok::colon) || Tok.is(tok::coloncolon)) {
764 AteExtraColon = Tok.is(tok::coloncolon);
767 if (!AteExtraColon && isGotoAsm && Tok.isNot(tok::colon)) {
768 Diag(Tok, diag::err_asm_goto_cannot_have_output);
780 if (AteExtraColon || Tok.is(tok::colon) || Tok.is(tok::coloncolon)) {
780 if (AteExtraColon || Tok.is(tok::colon) || Tok.is(tok::coloncolon)) {
785 AteExtraColon = Tok.is(tok::coloncolon);
799 if (AteExtraColon || Tok.is(tok::colon) || Tok.is(tok::coloncolon)) {
799 if (AteExtraColon || Tok.is(tok::colon) || Tok.is(tok::coloncolon)) {
803 AteExtraColon = Tok.is(tok::coloncolon);
821 if (!isGotoAsm && (Tok.isNot(tok::r_paren) || AteExtraColon)) {
822 Diag(Tok, diag::err_expected) << tok::r_paren;
829 if (AteExtraColon || Tok.is(tok::colon)) {
834 if (Tok.isNot(tok::identifier)) {
835 Diag(Tok, diag::err_expected) << tok::identifier;
839 LabelDecl *LD = Actions.LookupOrCreateLabel(Tok.getIdentifierInfo(),
840 Tok.getLocation());
841 Names.push_back(Tok.getIdentifierInfo());
847 Actions.ActOnAddrLabel(Tok.getLocation(), Tok.getLocation(), LD);
847 Actions.ActOnAddrLabel(Tok.getLocation(), Tok.getLocation(), LD);
855 Diag(Tok, diag::err_expected) << tok::colon;
883 if (!isTokenStringLiteral() && Tok.isNot(tok::l_square))
888 if (Tok.is(tok::l_square)) {
892 if (Tok.isNot(tok::identifier)) {
893 Diag(Tok, diag::err_expected) << tok::identifier;
898 IdentifierInfo *II = Tok.getIdentifierInfo();
913 if (Tok.isNot(tok::l_paren)) {
914 Diag(Tok, diag::err_expected_lparen_after) << "asm operand";
tools/clang/lib/Parse/ParseTemplate.cpp 31 if (Tok.is(tok::kw_template) && NextToken().isNot(tok::less)) {
66 assert(Tok.isOneOf(tok::kw_export, tok::kw_template) &&
111 Diag(Tok.getLocation(), diag::err_expected_template);
148 } while (Tok.isOneOf(tok::kw_export, tok::kw_template));
154 if (Tok.is(tok::kw_concept))
183 if (Tok.is(tok::kw_static_assert)) {
185 Diag(Tok.getLocation(), diag::err_templated_invalid_declaration)
201 if (Tok.is(tok::kw_using)) {
216 if (Tok.is(tok::semi)) {
245 if (Tok.is(tok::semi))
267 Diag(Tok, diag::err_function_definition_not_allowed);
286 Diag(Tok, diag::err_template_defn_explicit_instantiation) << 0;
318 if (Tok.is(tok::comma)) {
319 Diag(Tok, diag::err_multiple_template_declarators)
344 assert(Tok.is(tok::kw_concept) &&
351 Diag(Tok.getLocation(), diag::ext_concept_legacy_bool_keyword) <<
392 Diag(Tok.getLocation(), diag::err_expected) << tok::equal;
404 DeclEnd = Tok.getLocation();
426 Diag(Tok.getLocation(), diag::err_expected_less_after) << "template";
432 if (!Tok.is(tok::greater) && !Tok.is(tok::greatergreater))
432 if (!Tok.is(tok::greater) && !Tok.is(tok::greatergreater))
435 if (Tok.is(tok::greatergreater)) {
441 Tok.setKind(tok::greater);
442 RAngleLoc = Tok.getLocation();
443 Tok.setLocation(Tok.getLocation().getLocWithOffset(1));
443 Tok.setLocation(Tok.getLocation().getLocWithOffset(1));
445 Diag(Tok.getLocation(), diag::err_expected) << tok::greater;
475 if (Tok.is(tok::comma)) {
477 } else if (Tok.isOneOf(tok::greater, tok::greatergreater)) {
484 Diag(Tok.getLocation(), diag::err_expected_comma_greater);
496 if (Tok.is(tok::kw_class)) {
530 if (Tok.isNot(tok::kw_typename) && Tok.isNot(tok::kw_typedef))
530 if (Tok.isNot(tok::kw_typename) && Tok.isNot(tok::kw_typedef))
583 if (Tok.is(tok::kw_typedef)) {
584 Diag(Tok.getLocation(), diag::err_expected_template_parameter);
586 Diag(Tok.getLocation(), diag::note_meant_to_use_typename)
588 Tok.getLocation(), Tok.getEndLoc()),
588 Tok.getLocation(), Tok.getEndLoc()),
591 Tok.setKind(tok::kw_typename);
597 if (Tok.is(tok::kw_template))
616 assert(Tok.isOneOf(tok::kw_class, tok::kw_typename) &&
620 bool TypenameKeyword = Tok.is(tok::kw_typename);
633 SourceLocation NameLoc = Tok.getLocation();
635 if (Tok.is(tok::identifier)) {
636 ParamName = Tok.getIdentifierInfo();
638 } else if (Tok.isOneOf(tok::equal, tok::comma, tok::greater,
643 Diag(Tok.getLocation(), diag::err_expected) << tok::identifier;
679 assert(Tok.is(tok::kw_template) && "Expected 'template' keyword");
699 bool Replace = Tok.isOneOf(tok::kw_typename, tok::kw_struct);
700 const Token &Next = Tok.is(tok::kw_struct) ? NextToken() : Tok;
700 const Token &Next = Tok.is(tok::kw_struct) ? NextToken() : Tok;
701 if (Tok.is(tok::kw_typename)) {
702 Diag(Tok.getLocation(),
707 ? FixItHint::CreateReplacement(Tok.getLocation(), "class")
711 Diag(Tok.getLocation(), diag::err_class_on_template_template_param)
712 << (Replace ? FixItHint::CreateReplacement(Tok.getLocation(), "class")
713 : FixItHint::CreateInsertion(Tok.getLocation(), "class "));
715 Diag(Tok.getLocation(), diag::err_class_on_template_template_param);
730 SourceLocation NameLoc = Tok.getLocation();
732 if (Tok.is(tok::identifier)) {
733 ParamName = Tok.getIdentifierInfo();
735 } else if (Tok.isOneOf(tok::equal, tok::comma, tok::greater,
740 Diag(Tok.getLocation(), diag::err_expected) << tok::identifier;
763 Diag(Tok.getLocation(),
795 Diag(Tok.getLocation(), diag::err_expected_template_parameter);
875 switch (Tok.getKind()) {
877 Diag(Tok.getLocation(), diag::err_expected) << tok::greater;
883 RAngleLoc = Tok.getLocation();
904 areTokensAdjacent(Tok, NextToken())) {
924 SourceLocation TokLoc = Tok.getLocation();
936 areTokensAdjacent(Tok, Next);
959 (Tok.is(tok::greatergreater) || Tok.is(tok::greatergreatergreater)))
959 (Tok.is(tok::greatergreater) || Tok.is(tok::greatergreatergreater)))
961 else if (Tok.is(tok::greaterequal))
977 bool CachingTokens = PP.IsPreviousCachedToken(Tok);
979 Token Greater = Tok;
984 unsigned OldLength = Tok.getLength();
987 OldLength += Tok.getLength();
990 Tok.setKind(RemainingToken);
991 Tok.setLength(OldLength - GreaterLength);
997 AfterGreaterLoc = PP.SplitToken(AfterGreaterLoc, Tok.getLength());
998 Tok.setLocation(AfterGreaterLoc);
1007 PP.ReplacePreviousCachedToken({Greater, Tok});
1016 PP.EnterToken(Tok, /*IsReinject=*/true);
1017 Tok = Greater;
1040 assert(Tok.is(tok::less) && "Must have already parsed the template-name");
1049 if (!Tok.isOneOf(tok::greater, tok::greatergreater,
1111 assert(Template && Tok.is(tok::less) &&
1150 Tok.setKind(tok::annot_typename);
1151 setTypeAnnotation(Tok, Type.get());
1153 Tok.setLocation(SS.getBeginLoc());
1155 Tok.setLocation(TemplateKWLoc);
1157 Tok.setLocation(TemplateNameLoc);
1161 Tok.setKind(tok::annot_template_id);
1177 Tok.setAnnotationValue(TemplateId);
1179 Tok.setLocation(TemplateKWLoc);
1181 Tok.setLocation(TemplateNameLoc);
1185 Tok.setAnnotationEndLoc(RAngleLoc);
1189 PP.AnnotateCachedTokens(Tok);
1205 assert(Tok.is(tok::annot_template_id) && "Requires template-id tokens");
1207 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
1229 Tok.setKind(tok::annot_typename);
1230 setTypeAnnotation(Tok, Type.isInvalid() ? nullptr : Type.get());
1232 Tok.setLocation(TemplateId->SS.getBeginLoc());
1237 PP.AnnotateCachedTokens(Tok);
1247 if (!Tok.is(tok::identifier) && !Tok.is(tok::coloncolon) &&
1247 if (!Tok.is(tok::identifier) && !Tok.is(tok::coloncolon) &&
1248 !Tok.is(tok::annot_cxxscope))
1268 if (SS.isSet() && Tok.is(tok::kw_template)) {
1273 if (Tok.is(tok::identifier)) {
1276 Name.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
1276 Name.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
1285 if (isEndOfTemplateArgument(Tok) &&
1292 } else if (Tok.is(tok::identifier)) {
1296 Name.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
1296 Name.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
1301 if (isEndOfTemplateArgument(Tok)) {
1366 SourceLocation Loc = Tok.getLocation();
1498 LPT.Toks.push_back(Tok);
1503 assert(Tok.isOneOf(tok::l_brace, tok::colon, tok::kw_try) &&
1517 if (Tok.is(tok::kw_try)) {
1520 if (Tok.is(tok::colon))
1525 if (Tok.is(tok::l_brace)) {
1548 tok::TokenKind kind = Tok.getKind();
1556 while (Tok.is(tok::kw_catch)) {
1588 assert(Tok.is(tok::less) && "not at a potential angle bracket");
1633 (Tok.hasLeadingSpace() ? AngleBracketTracker::SpaceBeforeLess
1635 AngleBrackets.add(*this, PotentialTemplateName.get(), Tok.getLocation(),
1653 if (OpToken.is(tok::greater) && Tok.is(tok::l_paren) &&
tools/clang/lib/Parse/ParseTentative.cpp 50 switch (Tok.getKind()) {
155 switch (Tok.getKind()) {
166 if (Tok.isNot(tok::l_paren))
189 while (Tok.isOneOf(tok::l_square, tok::kw___attribute, tok::kw___declspec,
191 if (Tok.is(tok::l_square)) {
197 if (Tok.isNot(tok::l_paren))
205 if (Tok.isOneOf(tok::identifier, tok::coloncolon, tok::kw_decltype,
209 if (Tok.is(tok::annot_cxxscope))
211 if (Tok.is(tok::identifier))
213 else if (Tok.is(tok::annot_template_id))
225 if (getLangOpts().ObjC && Tok.is(tok::less))
248 if (Tok.isNot(tok::l_paren)) {
261 if (Tok.isNot(tok::semi) && (!AllowForRangeDecl || Tok.isNot(tok::colon)))
261 if (Tok.isNot(tok::semi) && (!AllowForRangeDecl || Tok.isNot(tok::colon)))
302 if (Tok.isOneOf(tok::kw_asm, tok::kw___attribute))
306 if (Tok.is(tok::l_paren)) {
311 } else if (Tok.is(tok::l_brace)) {
315 } else if (Tok.is(tok::equal) || isTokIdentifier_in()) {
375 if (P.Tok.is(tok::question))
377 else if (P.Tok.is(tok::colon)) {
394 if (P.Tok.isNot(tok::r_paren))
396 if (P.Tok.isNot(tok::semi))
478 assert(Tok.is(tok::l_paren) && "Expected '('");
488 if (Tok.isOneOf(tok::equal, tok::kw_asm, tok::kw___attribute) ||
489 (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace))) {
495 if (State.CanBeForRangeDecl && Tok.is(tok::colon))
509 if (Tok.is(tok::l_paren)) {
519 if (State.CanBeCondition && Tok.is(tok::r_paren))
521 else if (State.CanBeInitStatement && Tok.is(tok::semi))
570 assert(Tok.is(tok::l_paren) && "Expected '('");
582 if (Context == TypeIdInParens && Tok.is(tok::r_paren)) {
591 (Tok.isOneOf(tok::greater, tok::comma) ||
593 (Tok.isOneOf(tok::greatergreater,
595 (Tok.is(tok::ellipsis) &&
646 if (Tok.is(tok::kw_alignas))
649 if (Tok.isNot(tok::l_square) || NextToken().isNot(tok::l_square))
669 IsAttribute &= Tok.is(tok::r_square);
706 if (Tok.is(tok::r_square))
729 while (Tok.isNot(tok::r_square)) {
730 if (Tok.is(tok::comma)) {
745 if (Tok.is(tok::coloncolon)) {
754 if (Tok.is(tok::l_paren)) {
770 if (Tok.is(tok::r_square)) {
772 IsAttribute = Tok.is(tok::r_square);
788 if (Tok.isOneOf(tok::coloncolon, tok::identifier))
792 if (Tok.isOneOf(tok::star, tok::amp, tok::caret, tok::ampamp) ||
793 (Tok.is(tok::annot_cxxscope) && NextToken().is(tok::star))) {
796 while (Tok.isOneOf(tok::kw_const, tok::kw_volatile, tok::kw_restrict,
825 assert(Tok.is(tok::kw_operator));
829 switch (Tok.getKind()) {
832 if (Tok.is(tok::l_square) && NextToken().is(tok::r_square)) {
869 FoundUDSuffix |= Tok.hasUDSuffix();
874 if (Tok.is(tok::identifier))
964 if (Tok.is(tok::ellipsis))
967 if ((Tok.isOneOf(tok::identifier, tok::kw_operator) ||
968 (Tok.is(tok::annot_cxxscope) && (NextToken().is(tok::identifier) ||
972 if (Tok.is(tok::annot_cxxscope))
974 else if (Tok.is(tok::identifier))
975 TentativelyDeclaredIdentifiers.push_back(Tok.getIdentifierInfo());
976 if (Tok.is(tok::kw_operator)) {
981 } else if (Tok.is(tok::l_paren)) {
984 (Tok.is(tok::r_paren) || // 'int()' is a function.
986 (Tok.is(tok::ellipsis) && NextToken().is(tok::r_paren)) ||
997 if (Tok.isOneOf(tok::kw___attribute, tok::kw___declspec, tok::kw___cdecl,
1004 if (Tok.isNot(tok::r_paren))
1018 if (Tok.is(tok::l_paren)) {
1030 } else if (Tok.is(tok::l_square)) {
1315 switch (Tok.getKind()) {
1346 if (Tok.isNot(tok::identifier))
1358 assert(Tok.isNot(tok::identifier) &&
1370 if (Tok.is(tok::identifier))
1507 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
1522 assert(Tok.is(tok::annot_typename));
1530 if (!Tok.is(tok::annot_typename)) {
1533 if (Tok.is(tok::annot_cxxscope) && NextToken().is(tok::identifier)) {
1535 Actions.RestoreNestedNameSpecifierAnnotation(Tok.getAnnotationValue(),
1536 Tok.getAnnotationRange(),
1542 bool isIdentifier = Tok.is(tok::identifier);
1562 if (((Tok.is(tok::amp) || Tok.is(tok::star)) &&
1562 if (((Tok.is(tok::amp) || Tok.is(tok::star)) &&
1565 (Tok.is(tok::ampamp) && NextToken().is(tok::greater)))
1583 if (Tok.isNot(tok::identifier))
1600 assert(Tok.isNot(tok::annot_cxxscope) ||
1637 bool isFollowedByParen = Tok.is(tok::l_paren);
1638 bool isFollowedByBrace = Tok.is(tok::l_brace);
1700 bool isFollowedByParen = Tok.is(tok::l_paren);
1701 bool isFollowedByBrace = Tok.is(tok::l_brace);
1729 switch (Tok.getKind()) {
1789 assert(Tok.is(tok::kw_typeof) && "Expected 'typeof'!");
1792 assert(Tok.is(tok::l_paren) && "Expected '('");
1804 assert(Tok.is(tok::less) && "Expected '<' for qualifier list");
1807 if (Tok.isNot(tok::identifier))
1811 if (Tok.is(tok::comma)) {
1816 if (Tok.is(tok::greater)) {
1852 if (Tok.isNot(tok::r_paren))
1898 if (Tok.is(tok::r_paren))
1910 if (Tok.is(tok::ellipsis)) {
1912 if (Tok.is(tok::r_paren))
1944 if (SeenType && Tok.is(tok::identifier))
1964 if (Tok.is(tok::kw___attribute))
1978 return Tok.isOneOf(tok::equal, tok::r_paren) ? TPResult::True
1981 if (Tok.is(tok::equal)) {
1989 if (Tok.is(tok::ellipsis)) {
1991 if (Tok.is(tok::r_paren))
2021 if (TPR == TPResult::Ambiguous && Tok.isNot(tok::r_paren))
2032 while (Tok.isOneOf(tok::kw_const, tok::kw_volatile, tok::kw___unaligned,
2037 if (Tok.isOneOf(tok::amp, tok::ampamp))
2041 if (Tok.is(tok::kw_throw)) {
2043 if (Tok.isNot(tok::l_paren))
2051 if (Tok.is(tok::kw_noexcept)) {
2054 if (Tok.is(tok::l_paren)) {
2081 if (Tok.isNot(tok::less))
tools/clang/lib/Parse/Parser.cpp 56 Tok.startToken();
57 Tok.setKind(tok::eof);
111 if (Tok.is(ExpectedTok) || Tok.is(tok::code_completion)) {
111 if (Tok.is(ExpectedTok) || Tok.is(tok::code_completion)) {
117 if (IsCommonTypo(ExpectedTok, Tok)) {
118 SourceLocation Loc = Tok.getLocation();
144 : Diag(Tok, DiagID);
159 if (Tok.is(tok::code_completion)) {
164 if ((Tok.is(tok::r_paren) || Tok.is(tok::r_square)) &&
164 if ((Tok.is(tok::r_paren) || Tok.is(tok::r_square)) &&
166 Diag(Tok, diag::err_extraneous_token_before_semi)
167 << PP.getSpelling(Tok)
168 << FixItHint::CreateRemoval(Tok.getLocation());
178 if (!Tok.is(tok::semi)) return;
181 SourceLocation StartLoc = Tok.getLocation();
182 SourceLocation EndLoc = Tok.getLocation();
185 while ((Tok.is(tok::semi) && !Tok.isAtStartOfLine())) {
185 while ((Tok.is(tok::semi) && !Tok.isAtStartOfLine())) {
187 EndLoc = Tok.getLocation();
215 if (Tok.is(tok::identifier))
217 if (const auto *II = Tok.getIdentifierInfo()) {
219 Diag(Tok, diag::err_expected_token_instead_of_objcxx_keyword)
220 << tok::identifier << Tok.getIdentifierInfo();
225 Diag(Tok, diag::err_expected) << tok::identifier;
252 if (Tok.is(Toks[i])) {
268 while (Tok.isNot(tok::eof))
273 switch (Tok.getKind()) {
382 Actions.ActOnPopScope(Tok.getLocation(), getCurScope());
579 if (PP.isIncrementalProcessingEnabled() && Tok.is(tok::eof))
583 switch (Tok.getKind()) {
630 Actions.ActOnModuleInclude(Tok.getLocation(),
632 Tok.getAnnotationValue()));
637 Actions.ActOnModuleBegin(Tok.getLocation(), reinterpret_cast<Module *>(
638 Tok.getAnnotationValue()));
643 Actions.ActOnModuleEnd(Tok.getLocation(), reinterpret_cast<Module *>(
644 Tok.getAnnotationValue()));
665 if ((Tok.getIdentifierInfo() == Ident_module ||
666 Tok.getIdentifierInfo() == Ident_import) &&
668 if (Tok.getIdentifierInfo() == Ident_module)
724 switch (Tok.getKind()) {
780 Actions.ActOnEmptyDeclaration(getCurScope(), attrs, Tok.getLocation());
784 Diag(Tok, diag::err_extraneous_closing_brace);
788 Diag(Tok, diag::err_expected_external_declaration);
799 SourceLocation StartLoc = Tok.getLocation();
826 Diag(Tok, diag::err_expected_external_declaration);
920 Diag(Tok, diag::err_unexpected_module_decl);
926 if (Tok.isEditorPlaceholder()) {
943 if (getLangOpts().CPlusPlus && Tok.is(tok::equal)) {
949 return Tok.is(tok::equal) || // int X()= -> not a function def
950 Tok.is(tok::comma) || // int X(), -> not a function def
951 Tok.is(tok::semi) || // int X(); -> not a function def
952 Tok.is(tok::kw_asm) || // int X() __asm__ -> not a function def
953 Tok.is(tok::kw___attribute) || // int X() __attr__ -> not a function def
955 Tok.is(tok::l_paren)); // int X(0) -> not a function def [C++]
962 if (Tok.is(tok::l_brace)) // int X() {}
970 if (getLangOpts().CPlusPlus && Tok.is(tok::equal)) {
975 return Tok.is(tok::colon) || // X() : Base() {} (used for ctors)
976 Tok.is(tok::kw_try); // X() try { ... }
1012 if (Tok.is(tok::semi)) {
1057 if (getLangOpts().ObjC && Tok.is(tok::at)) {
1059 if (!Tok.isObjCAtKeyword(tok::objc_interface) &&
1060 !Tok.isObjCAtKeyword(tok::objc_protocol) &&
1061 !Tok.isObjCAtKeyword(tok::objc_implementation)) {
1062 Diag(Tok, diag::err_objc_unexpected_attr);
1075 if (Tok.isObjCAtKeyword(tok::objc_protocol))
1078 if (Tok.isObjCAtKeyword(tok::objc_implementation))
1158 if (Tok.isNot(tok::l_brace) &&
1160 (Tok.isNot(tok::colon) && Tok.isNot(tok::kw_try) &&
1160 (Tok.isNot(tok::colon) && Tok.isNot(tok::kw_try) &&
1161 Tok.isNot(tok::equal)))) {
1162 Diag(Tok, diag::err_expected_fn_body);
1168 if (Tok.isNot(tok::l_brace))
1174 if (Tok.isNot(tok::equal)) {
1182 if (getLangOpts().DelayedTemplateParsing && Tok.isNot(tok::equal) &&
1215 (Tok.is(tok::l_brace) || Tok.is(tok::kw_try) ||
1215 (Tok.is(tok::l_brace) || Tok.is(tok::kw_try) ||
1216 Tok.is(tok::colon)) &&
1283 if (Tok.is(tok::comma)) {
1304 if (Tok.is(tok::kw_try))
1309 if (Tok.is(tok::colon)) {
1313 if (!Tok.is(tok::l_brace)) {
1329 if (Tok.is(tok::equal)) {
1334 bool IsFunctionTryBlock = Tok.is(tok::kw_try);
1343 while (IsFunctionTryBlock && Tok.is(tok::kw_catch)) {
1363 SourceLocation DSStart = Tok.getLocation();
1437 if (Tok.isNot(tok::comma))
1460 Actions.ActOnFinishKNRParamDeclarations(getCurScope(), D, Tok.getLocation());
1472 Diag(Tok, diag::err_expected_string_literal)
1481 Diag(Tok, diag::err_asm_operand_wide_string_literal)
1496 assert(Tok.is(tok::kw_asm) && "Not an asm!");
1499 if (Tok.is(tok::kw_volatile)) {
1502 PP.getLocForEndOfToken(Tok.getLocation()));
1504 Diag(Tok, diag::warn_file_asm_volatile)
1511 Diag(Tok, diag::err_expected_lparen_after) << "asm";
1524 *EndLoc = Tok.getLocation();
1547 PP.EnterToken(Tok, /*IsReinject=*/true);
1548 Tok.setKind(tok::annot_cxxscope);
1549 Tok.setAnnotationValue(Actions.SaveNestedNameSpecifierAnnotation(SS));
1550 Tok.setAnnotationRange(SS.getRange());
1556 PP.AnnotateCachedTokens(Tok);
1568 assert(Tok.is(tok::identifier) || Tok.is(tok::annot_cxxscope));
1568 assert(Tok.is(tok::identifier) || Tok.is(tok::annot_cxxscope));
1571 const bool WasScopeAnnotation = Tok.is(tok::annot_cxxscope);
1578 if (Tok.isNot(tok::identifier) || SS.isInvalid()) {
1584 IdentifierInfo *Name = Tok.getIdentifierInfo();
1585 SourceLocation NameLoc = Tok.getLocation();
1594 return Tok.is(tok::annot_typename) ? ANK_Success : ANK_TentativeDecl;
1626 Tok.setIdentifierInfo(Name);
1627 Tok.setKind(Name->getTokenID());
1628 PP.TypoCorrectToken(Tok);
1658 else if (Tok.is(tok::eof)) // Nothing to do here, bail out...
1662 Tok.setKind(tok::annot_typename);
1663 setTypeAnnotation(Tok, Ty);
1664 Tok.setAnnotationEndLoc(Tok.getLocation());
1664 Tok.setAnnotationEndLoc(Tok.getLocation());
1665 Tok.setLocation(BeginLoc);
1666 PP.AnnotateCachedTokens(Tok);
1671 Tok.setKind(tok::annot_primary_expr);
1672 setExprAnnotation(Tok, Classification.getExpression());
1673 Tok.setAnnotationEndLoc(NameLoc);
1675 Tok.setLocation(SS.getBeginLoc());
1676 PP.AnnotateCachedTokens(Tok);
1680 Tok.setKind(tok::annot_non_type);
1681 setNonTypeAnnotation(Tok, Classification.getNonTypeDecl());
1682 Tok.setLocation(NameLoc);
1683 Tok.setAnnotationEndLoc(NameLoc);
1684 PP.AnnotateCachedTokens(Tok);
1691 Tok.setKind(Classification.getKind() == Sema::NC_UndeclaredNonType
1694 setIdentifierAnnotation(Tok, Name);
1695 Tok.setLocation(NameLoc);
1696 Tok.setAnnotationEndLoc(NameLoc);
1697 PP.AnnotateCachedTokens(Tok);
1732 assert(Tok.isNot(tok::identifier));
1733 Diag(Tok, diag::ext_keyword_as_ident)
1734 << PP.getSpelling(Tok)
1737 Tok.getIdentifierInfo()->revertTokenIDToIdentifier();
1738 Tok.setKind(tok::identifier);
1765 assert((Tok.is(tok::identifier) || Tok.is(tok::coloncolon) ||
1765 assert((Tok.is(tok::identifier) || Tok.is(tok::coloncolon) ||
1766 Tok.is(tok::kw_typename) || Tok.is(tok::annot_cxxscope) ||
1766 Tok.is(tok::kw_typename) || Tok.is(tok::annot_cxxscope) ||
1767 Tok.is(tok::kw_decltype) || Tok.is(tok::annot_template_id) ||
1767 Tok.is(tok::kw_decltype) || Tok.is(tok::annot_template_id) ||
1768 Tok.is(tok::kw___super)) &&
1771 if (Tok.is(tok::kw_typename)) {
1782 PP.EnterToken(Tok, /*IsReinject=*/true);
1783 Tok = TypedefToken;
1785 Diag(Tok.getLocation(), diag::warn_expected_qualified_after_typename);
1802 if (Tok.is(tok::identifier) || Tok.is(tok::annot_template_id) ||
1802 if (Tok.is(tok::identifier) || Tok.is(tok::annot_template_id) ||
1803 Tok.is(tok::annot_decltype)) {
1805 if (Tok.is(tok::annot_decltype) ||
1806 (!TryAnnotateTypeOrScopeToken() && Tok.isAnnotation())) {
1812 Diag(Tok.getLocation(), DiagID);
1816 if (Tok.isEditorPlaceholder())
1819 Diag(Tok.getLocation(), diag::err_expected_qualified_after_typename);
1824 if (Tok.is(tok::identifier)) {
1827 *Tok.getIdentifierInfo(),
1828 Tok.getLocation());
1829 } else if (Tok.is(tok::annot_template_id)) {
1830 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
1834 Diag(Tok, diag::err_typename_refers_to_non_type_template)
1835 << Tok.getAnnotationRange();
1851 Diag(Tok, diag::err_expected_type_name_after_typename)
1856 SourceLocation EndLoc = Tok.getLastLoc();
1857 Tok.setKind(tok::annot_typename);
1858 setTypeAnnotation(Tok, Ty.isInvalid() ? nullptr : Ty.get());
1859 Tok.setAnnotationEndLoc(EndLoc);
1860 Tok.setLocation(TypenameLoc);
1861 PP.AnnotateCachedTokens(Tok);
1866 bool WasScopeAnnotation = Tok.is(tok::annot_cxxscope);
1881 if (Tok.is(tok::identifier)) {
1884 *Tok.getIdentifierInfo(), Tok.getLocation(), getCurScope(), &SS,
1884 *Tok.getIdentifierInfo(), Tok.getLocation(), getCurScope(), &SS,
1889 SourceLocation BeginLoc = Tok.getLocation();
1907 else if (Tok.is(tok::eof)) // Nothing to do here, bail out...
1913 Tok.setKind(tok::annot_typename);
1914 setTypeAnnotation(Tok, Ty);
1915 Tok.setAnnotationEndLoc(Tok.getLocation());
1915 Tok.setAnnotationEndLoc(Tok.getLocation());
1916 Tok.setLocation(BeginLoc);
1920 PP.AnnotateCachedTokens(Tok);
1937 TemplateName.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
1937 TemplateName.setIdentifier(Tok.getIdentifierInfo(), Tok.getLocation());
1967 if (Tok.is(tok::annot_template_id)) {
1968 TemplateIdAnnotation *TemplateId = takeTemplateIdAnnotation(Tok);
1996 assert((Tok.is(tok::identifier) || Tok.is(tok::coloncolon) ||
1996 assert((Tok.is(tok::identifier) || Tok.is(tok::coloncolon) ||
1997 (Tok.is(tok::annot_template_id) && NextToken().is(tok::coloncolon)) ||
1998 Tok.is(tok::kw_decltype) || Tok.is(tok::kw___super)) &&
1998 Tok.is(tok::kw_decltype) || Tok.is(tok::kw___super)) &&
2012 tok::TokenKind Kind = Tok.getKind();
2030 Diag(Tok, diag::err_invalid_token_after_declarator_suggest_equal)
2032 << FixItHint::CreateReplacement(SourceRange(Tok.getLocation()), "=");
2040 assert(Tok.is(tok::code_completion));
2041 PrevTokLocation = Tok.getLocation();
2097 assert((Tok.is(tok::kw___if_exists) || Tok.is(tok::kw___if_not_exists)) &&
2097 assert((Tok.is(tok::kw___if_exists) || Tok.is(tok::kw___if_not_exists)) &&
2099 Result.IsIfExists = Tok.is(tok::kw___if_exists);
2104 Diag(Tok, diag::err_expected_lparen_after)
2163 Diag(Tok, diag::err_expected) << tok::l_brace;
2182 while (Tok.isNot(tok::r_brace) && !isEofOrEom()) {
2206 SourceLocation StartLoc = Tok.getLocation();
2213 (Tok.is(tok::kw_module) ||
2214 (Tok.is(tok::identifier) && Tok.getIdentifierInfo() == Ident_module)) &&
2214 (Tok.is(tok::identifier) && Tok.getIdentifierInfo() == Ident_module)) &&
2223 if (getLangOpts().CPlusPlusModules && Tok.is(tok::semi)) {
2238 if (getLangOpts().CPlusPlusModules && Tok.is(tok::colon) &&
2256 if (Tok.is(tok::colon)) {
2294 SourceLocation StartLoc = AtLoc.isInvalid() ? Tok.getLocation() : AtLoc;
2299 assert((AtLoc.isInvalid() ? Tok.isOneOf(tok::kw_import, tok::identifier)
2300 : Tok.isObjCAtKeyword(tok::objc_import)) &&
2302 bool IsObjCAtImport = Tok.isObjCAtKeyword(tok::objc_import);
2308 if (Tok.is(tok::header_name)) {
2313 } else if (Tok.is(tok::annot_header_unit)) {
2315 HeaderUnit = reinterpret_cast<Module *>(Tok.getAnnotationValue());
2317 } else if (getLangOpts().CPlusPlusModules && Tok.is(tok::colon)) {
2378 if (!Tok.is(tok::identifier)) {
2379 if (Tok.is(tok::code_completion)) {
2385 Diag(Tok, diag::err_module_expected_ident) << IsImport;
2391 Path.push_back(std::make_pair(Tok.getIdentifierInfo(), Tok.getLocation()));
2391 Path.push_back(std::make_pair(Tok.getIdentifierInfo(), Tok.getLocation()));
2394 if (Tok.isNot(tok::period))
2407 switch (Tok.getKind()) {
2414 Actions.ActOnModuleEnd(Tok.getLocation(),
2416 Tok.getAnnotationValue()));
2426 Actions.ActOnModuleBegin(Tok.getLocation(),
2428 Tok.getAnnotationValue()));
2435 Actions.ActOnModuleInclude(Tok.getLocation(),
2437 Tok.getAnnotationValue()));
2449 P.Diag(P.Tok, diag::err_bracket_depth_exceeded)
2451 P.Diag(P.Tok, diag::note_bracket_depth);
2459 LOpen = P.Tok.getLocation();
2473 assert(!P.Tok.is(Close) && "Should have consumed closing delimiter");
2475 if (P.Tok.is(tok::annot_module_end))
2476 P.Diag(P.Tok, diag::err_missing_before_module_end) << Close;
2478 P.Diag(P.Tok, diag::err_expected) << Close;
2483 if (P.Tok.isNot(tok::r_paren) && P.Tok.isNot(tok::r_brace) &&
2483 if (P.Tok.isNot(tok::r_paren) && P.Tok.isNot(tok::r_brace) &&
2484 P.Tok.isNot(tok::r_square) &&
2487 P.Tok.is(Close))