Lines Matching refs:Tok

107                                    PragmaIntroducer Introducer, Token &Tok) {  in HandlePragma()  argument
110 PP.LexUnexpandedToken(Tok); in HandlePragma()
114 = FindHandler(Tok.getIdentifierInfo() ? Tok.getIdentifierInfo()->getName() in HandlePragma()
118 PP.Diag(Tok, diag::warn_pragma_ignored); in HandlePragma()
123 Handler->HandlePragma(PP, Introducer, Tok); in HandlePragma()
138 Token &Tok; member
142 Tokens.push_back(Tok); in lex()
143 Self.Lex(Tok); in lex()
153 Toks[Tokens.size() - 1] = Tok; in revert()
159 Tok = *Tokens.begin(); in revert()
176 Token Tok; in HandlePragmaDirective() local
177 PragmaHandlers->HandlePragma(*this, Introducer, Tok); in HandlePragmaDirective()
188 void Preprocessor::Handle_Pragma(Token &Tok) { in Handle_Pragma() argument
209 TokenCollector Toks = {*this, InMacroArgPreExpansion, {}, Tok}; in Handle_Pragma()
212 SourceLocation PragmaLoc = Tok.getLocation(); in Handle_Pragma()
216 if (Tok.isNot(tok::l_paren)) { in Handle_Pragma()
223 if (!tok::isStringLiteral(Tok.getKind())) { in Handle_Pragma()
226 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::eof)) in Handle_Pragma()
227 Lex(Tok); in Handle_Pragma()
228 while (Tok.isNot(tok::r_paren) && in Handle_Pragma()
229 !Tok.isAtStartOfLine() && in Handle_Pragma()
230 Tok.isNot(tok::eof)) in Handle_Pragma()
231 Lex(Tok); in Handle_Pragma()
232 if (Tok.is(tok::r_paren)) in Handle_Pragma()
233 Lex(Tok); in Handle_Pragma()
237 if (Tok.hasUDSuffix()) { in Handle_Pragma()
238 Diag(Tok, diag::err_invalid_string_udl); in Handle_Pragma()
240 Lex(Tok); in Handle_Pragma()
241 if (Tok.is(tok::r_paren)) in Handle_Pragma()
242 Lex(Tok); in Handle_Pragma()
247 Token StrTok = Tok; in Handle_Pragma()
251 if (Tok.isNot(tok::r_paren)) { in Handle_Pragma()
262 SourceLocation RParenLoc = Tok.getLocation(); in Handle_Pragma()
341 return Lex(Tok); in Handle_Pragma()
346 void Preprocessor::HandleMicrosoft__pragma(Token &Tok) { in HandleMicrosoft__pragma() argument
349 TokenCollector Toks = {*this, InMacroArgPreExpansion, {}, Tok}; in HandleMicrosoft__pragma()
352 SourceLocation PragmaLoc = Tok.getLocation(); in HandleMicrosoft__pragma()
356 if (Tok.isNot(tok::l_paren)) { in HandleMicrosoft__pragma()
365 while (Tok.isNot(tok::eof)) { in HandleMicrosoft__pragma()
366 PragmaToks.push_back(Tok); in HandleMicrosoft__pragma()
367 if (Tok.is(tok::l_paren)) in HandleMicrosoft__pragma()
369 else if (Tok.is(tok::r_paren) && NumParens-- == 0) in HandleMicrosoft__pragma()
374 if (Tok.is(tok::eof)) { in HandleMicrosoft__pragma()
401 return Lex(Tok); in HandleMicrosoft__pragma()
431 Token Tok; in HandlePragmaPoison() local
440 LexUnexpandedToken(Tok); in HandlePragmaPoison()
444 if (Tok.is(tok::eod)) return; in HandlePragmaPoison()
447 if (Tok.isNot(tok::raw_identifier)) { in HandlePragmaPoison()
448 Diag(Tok, diag::err_pp_invalid_poison); in HandlePragmaPoison()
454 IdentifierInfo *II = LookUpIdentifierInfo(Tok); in HandlePragmaPoison()
461 Diag(Tok, diag::pp_poisoning_existing_macro); in HandlePragmaPoison()
560 IdentifierInfo *Preprocessor::ParsePragmaPushOrPopMacro(Token &Tok) { in ParsePragmaPushOrPopMacro() argument
562 Token PragmaTok = Tok; in ParsePragmaPushOrPopMacro()
565 Lex(Tok); in ParsePragmaPushOrPopMacro()
566 if (Tok.isNot(tok::l_paren)) { in ParsePragmaPushOrPopMacro()
573 Lex(Tok); in ParsePragmaPushOrPopMacro()
574 if (Tok.isNot(tok::string_literal)) { in ParsePragmaPushOrPopMacro()
580 if (Tok.hasUDSuffix()) { in ParsePragmaPushOrPopMacro()
581 Diag(Tok, diag::err_invalid_string_udl); in ParsePragmaPushOrPopMacro()
586 std::string StrVal = getSpelling(Tok); in ParsePragmaPushOrPopMacro()
589 Lex(Tok); in ParsePragmaPushOrPopMacro()
590 if (Tok.isNot(tok::r_paren)) { in ParsePragmaPushOrPopMacro()
673 void Preprocessor::HandlePragmaIncludeAlias(Token &Tok) { in HandlePragmaIncludeAlias() argument
680 Lex(Tok); in HandlePragmaIncludeAlias()
681 if (Tok.isNot(tok::l_paren)) { in HandlePragmaIncludeAlias()
682 Diag(Tok, diag::warn_pragma_include_alias_expected) << "("; in HandlePragmaIncludeAlias()
696 Diag(Tok, diag::warn_pragma_include_alias_expected_filename); in HandlePragmaIncludeAlias()
702 Lex(Tok); in HandlePragmaIncludeAlias()
703 if (Tok.isNot(tok::comma)) { in HandlePragmaIncludeAlias()
704 Diag(Tok, diag::warn_pragma_include_alias_expected) << ","; in HandlePragmaIncludeAlias()
716 Diag(Tok, diag::warn_pragma_include_alias_expected_filename); in HandlePragmaIncludeAlias()
721 Lex(Tok); in HandlePragmaIncludeAlias()
722 if (Tok.isNot(tok::r_paren)) { in HandlePragmaIncludeAlias()
723 Diag(Tok, diag::warn_pragma_include_alias_expected) << ")"; in HandlePragmaIncludeAlias()
759 Preprocessor &PP, Token &Tok, in LexModuleNameComponent() argument
762 PP.LexUnexpandedToken(Tok); in LexModuleNameComponent()
763 if (Tok.is(tok::string_literal) && !Tok.hasUDSuffix()) { in LexModuleNameComponent()
764 StringLiteralParser Literal(Tok, PP); in LexModuleNameComponent()
768 PP.getIdentifierInfo(Literal.GetString()), Tok.getLocation()); in LexModuleNameComponent()
769 } else if (!Tok.isAnnotation() && Tok.getIdentifierInfo()) { in LexModuleNameComponent()
771 std::make_pair(Tok.getIdentifierInfo(), Tok.getLocation()); in LexModuleNameComponent()
773 PP.Diag(Tok.getLocation(), diag::err_pp_expected_module_name) << First; in LexModuleNameComponent()
780 Preprocessor &PP, Token &Tok, in LexModuleName() argument
785 if (LexModuleNameComponent(PP, Tok, NameComponent, ModuleName.empty())) in LexModuleName()
789 PP.LexUnexpandedToken(Tok); in LexModuleName()
790 if (Tok.isNot(tok::period)) in LexModuleName()
795 void Preprocessor::HandlePragmaModuleBuild(Token &Tok) { in HandlePragmaModuleBuild() argument
796 SourceLocation Loc = Tok.getLocation(); in HandlePragmaModuleBuild()
799 if (LexModuleNameComponent(*this, Tok, ModuleNameLoc, true)) in HandlePragmaModuleBuild()
803 LexUnexpandedToken(Tok); in HandlePragmaModuleBuild()
804 if (Tok.isNot(tok::eod)) { in HandlePragmaModuleBuild()
805 Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma"; in HandlePragmaModuleBuild()
812 if (Tok.getKind() != tok::raw_identifier || in HandlePragmaModuleBuild()
813 Tok.getRawIdentifier() != Ident) in HandlePragmaModuleBuild()
815 CurLexer->Lex(Tok); in HandlePragmaModuleBuild()
825 CurLexer->Lex(Tok); in HandlePragmaModuleBuild()
827 if (Tok.is(tok::eof)) { in HandlePragmaModuleBuild()
832 if (Tok.isNot(tok::hash) || !Tok.isAtStartOfLine()) { in HandlePragmaModuleBuild()
840 CurLexer->Lex(Tok); in HandlePragmaModuleBuild()
853 assert(Tok.getKind() != tok::eof && "missing EOD before EOF"); in HandlePragmaModuleBuild()
869 void Preprocessor::HandlePragmaHdrstop(Token &Tok) { in HandlePragmaHdrstop() argument
870 Lex(Tok); in HandlePragmaHdrstop()
871 if (Tok.is(tok::l_paren)) { in HandlePragmaHdrstop()
872 Diag(Tok.getLocation(), diag::warn_pp_hdrstop_filename_ignored); in HandlePragmaHdrstop()
875 if (!LexStringLiteral(Tok, FileName, "pragma hdrstop", false)) in HandlePragmaHdrstop()
878 if (Tok.isNot(tok::r_paren)) { in HandlePragmaHdrstop()
879 Diag(Tok, diag::err_expected) << tok::r_paren; in HandlePragmaHdrstop()
882 Lex(Tok); in HandlePragmaHdrstop()
884 if (Tok.isNot(tok::eod)) in HandlePragmaHdrstop()
885 Diag(Tok.getLocation(), diag::ext_pp_extra_tokens_at_eol) in HandlePragmaHdrstop()
889 SourceMgr.isInMainFile(Tok.getLocation())) { in HandlePragmaHdrstop()
891 Token &Result = Tok; in HandlePragmaHdrstop()
957 Token Tok; in LexOnOffSwitch() local
958 LexUnexpandedToken(Tok); in LexOnOffSwitch()
960 if (Tok.isNot(tok::identifier)) { in LexOnOffSwitch()
961 Diag(Tok, diag::ext_on_off_switch_syntax); in LexOnOffSwitch()
964 IdentifierInfo *II = Tok.getIdentifierInfo(); in LexOnOffSwitch()
972 Diag(Tok, diag::ext_on_off_switch_syntax); in LexOnOffSwitch()
977 LexUnexpandedToken(Tok); in LexOnOffSwitch()
978 if (Tok.isNot(tok::eod)) in LexOnOffSwitch()
979 Diag(Tok, diag::ext_pragma_syntax_eod); in LexOnOffSwitch()
1043 Token Tok; in HandlePragma() local
1044 PP.LexUnexpandedToken(Tok); in HandlePragma()
1045 if (Tok.isNot(tok::identifier)) { in HandlePragma()
1046 PP.Diag(Tok, diag::warn_pragma_diagnostic_invalid); in HandlePragma()
1049 IdentifierInfo *II = Tok.getIdentifierInfo(); in HandlePragma()
1064 Crasher.setAnnotationRange(SourceRange(Tok.getLocation())); in HandlePragma()
1075 SourceRange(Tok.getLocation(), Identifier.getLocation())); in HandlePragma()
1115 if (LexModuleName(PP, Tok, ModuleName)) in HandlePragma()
1181 PP.Diag(Tok, diag::warn_pragma_debug_unexpected_command) in HandlePragma()
1185 PP.Diag(Tok, diag::warn_pragma_debug_unexpected_command) in HandlePragma()
1191 Callbacks->PragmaDebug(Tok.getLocation(), II->getName()); in HandlePragma()
1195 Token Tok; in HandleCaptured() local
1196 PP.LexUnexpandedToken(Tok); in HandleCaptured()
1198 if (Tok.isNot(tok::eod)) { in HandleCaptured()
1199 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) in HandleCaptured()
1204 SourceLocation NameLoc = Tok.getLocation(); in HandleCaptured()
1240 Token Tok; in HandlePragma() local
1241 PP.LexUnexpandedToken(Tok); in HandlePragma()
1242 if (Tok.isNot(tok::identifier)) { in HandlePragma()
1243 PP.Diag(Tok, diag::warn_pragma_diagnostic_invalid); in HandlePragma()
1246 IdentifierInfo *II = Tok.getIdentifierInfo(); in HandlePragma()
1251 PP.Diag(Tok, diag::warn_pragma_diagnostic_cannot_pop); in HandlePragma()
1270 PP.Diag(Tok, diag::warn_pragma_diagnostic_invalid); in HandlePragma()
1274 PP.LexUnexpandedToken(Tok); in HandlePragma()
1275 SourceLocation StringLoc = Tok.getLocation(); in HandlePragma()
1278 if (!PP.FinishLexStringLiteral(Tok, WarningName, "pragma diagnostic", in HandlePragma()
1282 if (Tok.isNot(tok::eod)) { in HandlePragma()
1283 PP.Diag(Tok.getLocation(), diag::warn_pragma_diagnostic_invalid_token); in HandlePragma()
1329 Token &Tok) override { in HandlePragma()
1334 SourceLocation DiagLoc = Tok.getLocation(); in HandlePragma()
1337 PP.Lex(Tok); in HandlePragma()
1338 if (Tok.isNot(tok::l_paren)) { in HandlePragma()
1339 PP.Diag(Tok, diag::warn_pragma_warning_expected) << "("; in HandlePragma()
1343 PP.Lex(Tok); in HandlePragma()
1344 IdentifierInfo *II = Tok.getIdentifierInfo(); in HandlePragma()
1349 PP.Lex(Tok); in HandlePragma()
1350 if (Tok.is(tok::comma)) { in HandlePragma()
1351 PP.Lex(Tok); in HandlePragma()
1353 if (Tok.is(tok::numeric_constant) && in HandlePragma()
1354 PP.parseSimpleIntegerLiteral(Tok, Value)) in HandlePragma()
1357 PP.Diag(Tok, diag::warn_pragma_warning_push_level); in HandlePragma()
1366 PP.Lex(Tok); in HandlePragma()
1368 PP.Diag(Tok, diag::warn_pragma_diagnostic_cannot_pop); in HandlePragma()
1375 II = Tok.getIdentifierInfo(); in HandlePragma()
1376 if (!II && !Tok.is(tok::numeric_constant)) { in HandlePragma()
1377 PP.Diag(Tok, diag::warn_pragma_warning_spec_invalid); in HandlePragma()
1399 PP.Lex(Tok); in HandlePragma()
1403 if (PP.parseSimpleIntegerLiteral(Tok, Value)) { in HandlePragma()
1413 PP.Diag(Tok, diag::warn_pragma_warning_spec_invalid); in HandlePragma()
1416 if (Tok.isNot(tok::colon)) { in HandlePragma()
1417 PP.Diag(Tok, diag::warn_pragma_warning_expected) << ":"; in HandlePragma()
1423 PP.Lex(Tok); in HandlePragma()
1424 while (Tok.is(tok::numeric_constant)) { in HandlePragma()
1426 if (!PP.parseSimpleIntegerLiteral(Tok, Value) || Value == 0 || in HandlePragma()
1428 PP.Diag(Tok, diag::warn_pragma_warning_expected_number); in HandlePragma()
1453 if (Tok.isNot(tok::semi)) in HandlePragma()
1455 PP.Lex(Tok); in HandlePragma()
1459 if (Tok.isNot(tok::r_paren)) { in HandlePragma()
1460 PP.Diag(Tok, diag::warn_pragma_warning_expected) << ")"; in HandlePragma()
1464 PP.Lex(Tok); in HandlePragma()
1465 if (Tok.isNot(tok::eod)) in HandlePragma()
1466 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma warning"; in HandlePragma()
1477 Token &Tok) override { in HandlePragma()
1481 SourceLocation DiagLoc = Tok.getLocation(); in HandlePragma()
1484 PP.Lex(Tok); in HandlePragma()
1485 if (Tok.isNot(tok::l_paren)) { in HandlePragma()
1486 PP.Diag(Tok, diag::warn_pragma_exec_charset_expected) << "("; in HandlePragma()
1490 PP.Lex(Tok); in HandlePragma()
1491 IdentifierInfo *II = Tok.getIdentifierInfo(); in HandlePragma()
1495 PP.Lex(Tok); in HandlePragma()
1496 if (Tok.is(tok::comma)) { in HandlePragma()
1497 PP.Lex(Tok); in HandlePragma()
1500 if (!PP.FinishLexStringLiteral(Tok, ExecCharset, in HandlePragma()
1507 PP.Diag(Tok, diag::warn_pragma_exec_charset_push_invalid) << ExecCharset; in HandlePragma()
1515 PP.Lex(Tok); in HandlePragma()
1519 PP.Diag(Tok, diag::warn_pragma_exec_charset_spec_invalid); in HandlePragma()
1523 if (Tok.isNot(tok::r_paren)) { in HandlePragma()
1524 PP.Diag(Tok, diag::warn_pragma_exec_charset_expected) << ")"; in HandlePragma()
1528 PP.Lex(Tok); in HandlePragma()
1529 if (Tok.isNot(tok::eod)) in HandlePragma()
1530 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma execution_character_set"; in HandlePragma()
1582 Token &Tok) override { in HandlePragma()
1583 SourceLocation MessageLoc = Tok.getLocation(); in HandlePragma()
1584 PP.Lex(Tok); in HandlePragma()
1586 switch (Tok.getKind()) { in HandlePragma()
1591 PP.Lex(Tok); in HandlePragma()
1602 if (!PP.FinishLexStringLiteral(Tok, MessageString, PragmaKind(Kind), in HandlePragma()
1607 if (Tok.isNot(tok::r_paren)) { in HandlePragma()
1608 PP.Diag(Tok.getLocation(), diag::err_pragma_message_malformed) << Kind; in HandlePragma()
1611 PP.Lex(Tok); // eat the r_paren. in HandlePragma()
1614 if (Tok.isNot(tok::eod)) { in HandlePragma()
1615 PP.Diag(Tok.getLocation(), diag::err_pragma_message_malformed) << Kind; in HandlePragma()
1638 Token &Tok) override { in HandlePragma()
1639 SourceLocation ImportLoc = Tok.getLocation(); in HandlePragma()
1644 if (LexModuleName(PP, Tok, ModuleName)) in HandlePragma()
1647 if (Tok.isNot(tok::eod)) in HandlePragma()
1648 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma"; in HandlePragma()
1675 Token &Tok) override { in HandlePragma()
1676 SourceLocation BeginLoc = Tok.getLocation(); in HandlePragma()
1681 if (LexModuleName(PP, Tok, ModuleName)) in HandlePragma()
1684 if (Tok.isNot(tok::eod)) in HandlePragma()
1685 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma"; in HandlePragma()
1735 Token &Tok) override { in HandlePragma()
1736 SourceLocation Loc = Tok.getLocation(); in HandlePragma()
1738 PP.LexUnexpandedToken(Tok); in HandlePragma()
1739 if (Tok.isNot(tok::eod)) in HandlePragma()
1740 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma"; in HandlePragma()
1755 Token &Tok) override { in HandlePragma()
1756 PP.HandlePragmaModuleBuild(Tok); in HandlePragma()
1765 Token &Tok) override { in HandlePragma()
1766 SourceLocation Loc = Tok.getLocation(); in HandlePragma()
1771 if (LexModuleName(PP, Tok, ModuleName)) in HandlePragma()
1774 if (Tok.isNot(tok::eod)) in HandlePragma()
1775 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma"; in HandlePragma()
1815 Token Tok; in HandlePragma() local
1818 PP.LexUnexpandedToken(Tok); in HandlePragma()
1819 const IdentifierInfo *BeginEnd = Tok.getIdentifierInfo(); in HandlePragma()
1825 PP.Diag(Tok.getLocation(), diag::err_pp_arc_cf_code_audited_syntax); in HandlePragma()
1830 PP.LexUnexpandedToken(Tok); in HandlePragma()
1831 if (Tok.isNot(tok::eod)) in HandlePragma()
1832 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma"; in HandlePragma()
1870 Token Tok; in HandlePragma() local
1873 PP.LexUnexpandedToken(Tok); in HandlePragma()
1874 const IdentifierInfo *BeginEnd = Tok.getIdentifierInfo(); in HandlePragma()
1880 PP.Diag(Tok.getLocation(), diag::err_pp_assume_nonnull_syntax); in HandlePragma()
1885 PP.LexUnexpandedToken(Tok); in HandlePragma()
1886 if (Tok.isNot(tok::eod)) in HandlePragma()
1887 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma"; in HandlePragma()
1944 static IdentifierInfo *HandleMacroAnnotationPragma(Preprocessor &PP, Token &Tok, in HandleMacroAnnotationPragma() argument
1947 PP.Lex(Tok); in HandleMacroAnnotationPragma()
1948 if (Tok.isNot(tok::l_paren)) { in HandleMacroAnnotationPragma()
1949 PP.Diag(Tok, diag::err_expected) << "("; in HandleMacroAnnotationPragma()
1953 PP.LexUnexpandedToken(Tok); in HandleMacroAnnotationPragma()
1954 if (!Tok.is(tok::identifier)) { in HandleMacroAnnotationPragma()
1955 PP.Diag(Tok, diag::err_expected) << tok::identifier; in HandleMacroAnnotationPragma()
1958 IdentifierInfo *II = Tok.getIdentifierInfo(); in HandleMacroAnnotationPragma()
1961 PP.Diag(Tok, diag::err_pp_visibility_non_macro) << II; in HandleMacroAnnotationPragma()
1965 PP.Lex(Tok); in HandleMacroAnnotationPragma()
1966 if (Tok.is(tok::comma)) { in HandleMacroAnnotationPragma()
1967 PP.Lex(Tok); in HandleMacroAnnotationPragma()
1968 if (!PP.FinishLexStringLiteral(Tok, MessageString, Pragma, in HandleMacroAnnotationPragma()
1973 if (Tok.isNot(tok::r_paren)) { in HandleMacroAnnotationPragma()
1974 PP.Diag(Tok, diag::err_expected) << ")"; in HandleMacroAnnotationPragma()
1990 Token &Tok) override { in HandlePragma()
1994 PP, Tok, "#pragma clang deprecated", MessageString)) { in HandlePragma()
1997 Tok.getLocation()); in HandlePragma()
2012 Token &Tok) override { in HandlePragma()
2016 PP, Tok, "#pragma clang restrict_expansion", MessageString)) { in HandlePragma()
2019 Tok.getLocation()); in HandlePragma()
2034 Token &Tok) override { in HandlePragma()
2035 PP.Lex(Tok); in HandlePragma()
2036 if (Tok.isNot(tok::l_paren)) { in HandlePragma()
2037 PP.Diag(Tok, diag::err_expected) << "("; in HandlePragma()
2041 PP.LexUnexpandedToken(Tok); in HandlePragma()
2042 if (!Tok.is(tok::identifier)) { in HandlePragma()
2043 PP.Diag(Tok, diag::err_expected) << tok::identifier; in HandlePragma()
2046 IdentifierInfo *II = Tok.getIdentifierInfo(); in HandlePragma()
2049 PP.Diag(Tok, diag::err_pp_visibility_non_macro) << II; in HandlePragma()
2053 PP.Lex(Tok); in HandlePragma()
2054 if (Tok.isNot(tok::r_paren)) { in HandlePragma()
2055 PP.Diag(Tok, diag::err_expected) << ")"; in HandlePragma()
2059 PP.addFinalLoc(II, Tok.getLocation()); in HandlePragma()