Lines Matching defs:Tok

108                                    PragmaIntroducer Introducer, Token &Tok) {
111 PP.LexUnexpandedToken(Tok);
115 = FindHandler(Tok.getIdentifierInfo() ? Tok.getIdentifierInfo()->getName()
119 PP.Diag(Tok, diag::warn_pragma_ignored);
124 Handler->HandlePragma(PP, Introducer, Tok);
139 Token &Tok;
143 Tokens.push_back(Tok);
144 Self.Lex(Tok);
154 Toks[Tokens.size() - 1] = Tok;
160 Tok = *Tokens.begin();
177 Token Tok;
178 PragmaHandlers->HandlePragma(*this, Introducer, Tok);
188 /// been read into 'Tok'.
189 void Preprocessor::Handle_Pragma(Token &Tok) {
210 TokenCollector Toks = {*this, InMacroArgPreExpansion, {}, Tok};
213 SourceLocation PragmaLoc = Tok.getLocation();
217 if (Tok.isNot(tok::l_paren)) {
224 if (!tok::isStringLiteral(Tok.getKind())) {
227 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::eof))
228 Lex(Tok);
229 while (Tok.isNot(tok::r_paren) &&
230 !Tok.isAtStartOfLine() &&
231 Tok.isNot(tok::eof))
232 Lex(Tok);
233 if (Tok.is(tok::r_paren))
234 Lex(Tok);
238 if (Tok.hasUDSuffix()) {
239 Diag(Tok, diag::err_invalid_string_udl);
241 Lex(Tok);
242 if (Tok.is(tok::r_paren))
243 Lex(Tok);
248 Token StrTok = Tok;
252 if (Tok.isNot(tok::r_paren)) {
263 SourceLocation RParenLoc = Tok.getLocation();
303 return Lex(Tok);
358 void Preprocessor::HandleMicrosoft__pragma(Token &Tok) {
361 TokenCollector Toks = {*this, InMacroArgPreExpansion, {}, Tok};
364 SourceLocation PragmaLoc = Tok.getLocation();
368 if (Tok.isNot(tok::l_paren)) {
377 while (Tok.isNot(tok::eof)) {
378 PragmaToks.push_back(Tok);
379 if (Tok.is(tok::l_paren))
381 else if (Tok.is(tok::r_paren) && NumParens-- == 0)
386 if (Tok.is(tok::eof)) {
413 return Lex(Tok);
443 Token Tok;
452 LexUnexpandedToken(Tok);
456 if (Tok.is(tok::eod)) return;
459 if (Tok.isNot(tok::raw_identifier)) {
460 Diag(Tok, diag::err_pp_invalid_poison);
466 IdentifierInfo *II = LookUpIdentifierInfo(Tok);
473 Diag(Tok, diag::pp_poisoning_existing_macro);
572 IdentifierInfo *Preprocessor::ParsePragmaPushOrPopMacro(Token &Tok) {
574 Token PragmaTok = Tok;
577 Lex(Tok);
578 if (Tok.isNot(tok::l_paren)) {
585 Lex(Tok);
586 if (Tok.isNot(tok::string_literal)) {
592 if (Tok.hasUDSuffix()) {
593 Diag(Tok, diag::err_invalid_string_udl);
598 std::string StrVal = getSpelling(Tok);
601 Lex(Tok);
602 if (Tok.isNot(tok::r_paren)) {
685 void Preprocessor::HandlePragmaIncludeAlias(Token &Tok) {
692 Lex(Tok);
693 if (Tok.isNot(tok::l_paren)) {
694 Diag(Tok, diag::warn_pragma_include_alias_expected) << "(";
708 Diag(Tok, diag::warn_pragma_include_alias_expected_filename);
714 Lex(Tok);
715 if (Tok.isNot(tok::comma)) {
716 Diag(Tok, diag::warn_pragma_include_alias_expected) << ",";
728 Diag(Tok, diag::warn_pragma_include_alias_expected_filename);
733 Lex(Tok);
734 if (Tok.isNot(tok::r_paren)) {
735 Diag(Tok, diag::warn_pragma_include_alias_expected) << ")";
771 Preprocessor &PP, Token &Tok,
774 PP.LexUnexpandedToken(Tok);
775 if (Tok.is(tok::string_literal) && !Tok.hasUDSuffix()) {
776 StringLiteralParser Literal(Tok, PP);
780 PP.getIdentifierInfo(Literal.GetString()), Tok.getLocation());
781 } else if (!Tok.isAnnotation() && Tok.getIdentifierInfo()) {
783 std::make_pair(Tok.getIdentifierInfo(), Tok.getLocation());
785 PP.Diag(Tok.getLocation(), diag::err_pp_expected_module_name) << First;
792 Preprocessor &PP, Token &Tok,
797 if (LexModuleNameComponent(PP, Tok, NameComponent, ModuleName.empty()))
801 PP.LexUnexpandedToken(Tok);
802 if (Tok.isNot(tok::period))
807 void Preprocessor::HandlePragmaModuleBuild(Token &Tok) {
808 SourceLocation Loc = Tok.getLocation();
811 if (LexModuleNameComponent(*this, Tok, ModuleNameLoc, true))
815 LexUnexpandedToken(Tok);
816 if (Tok.isNot(tok::eod)) {
817 Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
824 if (Tok.getKind() != tok::raw_identifier ||
825 Tok.getRawIdentifier() != Ident)
827 CurLexer->Lex(Tok);
837 CurLexer->Lex(Tok);
839 if (Tok.is(tok::eof)) {
844 if (Tok.isNot(tok::hash) || !Tok.isAtStartOfLine()) {
852 CurLexer->Lex(Tok);
865 assert(Tok.getKind() != tok::eof && "missing EOD before EOF");
881 void Preprocessor::HandlePragmaHdrstop(Token &Tok) {
882 Lex(Tok);
883 if (Tok.is(tok::l_paren)) {
884 Diag(Tok.getLocation(), diag::warn_pp_hdrstop_filename_ignored);
887 if (!LexStringLiteral(Tok, FileName, "pragma hdrstop", false))
890 if (Tok.isNot(tok::r_paren)) {
891 Diag(Tok, diag::err_expected) << tok::r_paren;
894 Lex(Tok);
896 if (Tok.isNot(tok::eod))
897 Diag(Tok.getLocation(), diag::ext_pp_extra_tokens_at_eol)
901 SourceMgr.isInMainFile(Tok.getLocation())) {
903 Token &Result = Tok;
969 Token Tok;
970 LexUnexpandedToken(Tok);
972 if (Tok.isNot(tok::identifier)) {
973 Diag(Tok, diag::ext_on_off_switch_syntax);
976 IdentifierInfo *II = Tok.getIdentifierInfo();
984 Diag(Tok, diag::ext_on_off_switch_syntax);
989 LexUnexpandedToken(Tok);
990 if (Tok.isNot(tok::eod))
991 Diag(Tok, diag::ext_pragma_syntax_eod);
1055 Token Tok;
1056 PP.LexUnexpandedToken(Tok);
1057 if (Tok.isNot(tok::identifier)) {
1058 PP.Diag(Tok, diag::warn_pragma_debug_missing_command);
1061 IdentifierInfo *II = Tok.getIdentifierInfo();
1076 Crasher.setAnnotationRange(SourceRange(Tok.getLocation()));
1083 DumpAnnot.setAnnotationRange(SourceRange(Tok.getLocation()));
1118 if (LexModuleName(PP, Tok, ModuleName))
1184 PP.Diag(Tok, diag::warn_pragma_debug_unexpected_command)
1201 PP.Diag(Tok, diag::remark_sloc_usage);
1205 PP.Diag(Tok, diag::warn_pragma_debug_unexpected_command)
1211 Callbacks->PragmaDebug(Tok.getLocation(), II->getName());
1215 Token Tok;
1216 PP.LexUnexpandedToken(Tok);
1218 if (Tok.isNot(tok::eod)) {
1219 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol)
1224 SourceLocation NameLoc = Tok.getLocation();
1252 Token Tok;
1254 PP.LexUnexpandedToken(Tok);
1255 if (Tok.isNot(tok::identifier)) {
1256 PP.Diag(Tok, diag::err_pp_pragma_unsafe_buffer_usage_syntax);
1260 IdentifierInfo *II = Tok.getIdentifierInfo();
1261 SourceLocation Loc = Tok.getLocation();
1270 PP.Diag(Tok, diag::err_pp_pragma_unsafe_buffer_usage_syntax);
1286 Token Tok;
1287 PP.LexUnexpandedToken(Tok);
1288 if (Tok.isNot(tok::identifier)) {
1289 PP.Diag(Tok, diag::warn_pragma_diagnostic_invalid);
1292 IdentifierInfo *II = Tok.getIdentifierInfo();
1297 PP.LexUnexpandedToken(Tok);
1301 PP.Diag(Tok, diag::warn_pragma_diagnostic_cannot_pop);
1305 if (Tok.isNot(tok::eod))
1306 PP.Diag(Tok.getLocation(), diag::warn_pragma_diagnostic_invalid_token);
1313 if (Tok.isNot(tok::eod))
1314 PP.Diag(Tok.getLocation(), diag::warn_pragma_diagnostic_invalid_token);
1326 PP.Diag(Tok, diag::warn_pragma_diagnostic_invalid);
1331 SourceLocation StringLoc = Tok.getLocation();
1333 if (!PP.FinishLexStringLiteral(Tok, WarningName, "pragma diagnostic",
1337 if (Tok.isNot(tok::eod)) {
1338 PP.Diag(Tok.getLocation(), diag::warn_pragma_diagnostic_invalid_token);
1384 Token &Tok) override {
1389 SourceLocation DiagLoc = Tok.getLocation();
1392 PP.Lex(Tok);
1393 if (Tok.isNot(tok::l_paren)) {
1394 PP.Diag(Tok, diag::warn_pragma_warning_expected) << "(";
1398 PP.Lex(Tok);
1399 IdentifierInfo *II = Tok.getIdentifierInfo();
1404 PP.Lex(Tok);
1405 if (Tok.is(tok::comma)) {
1406 PP.Lex(Tok);
1408 if (Tok.is(tok::numeric_constant) &&
1409 PP.parseSimpleIntegerLiteral(Tok, Value))
1412 PP.Diag(Tok, diag::warn_pragma_warning_push_level);
1421 PP.Lex(Tok);
1423 PP.Diag(Tok, diag::warn_pragma_diagnostic_cannot_pop);
1430 II = Tok.getIdentifierInfo();
1431 if (!II && !Tok.is(tok::numeric_constant)) {
1432 PP.Diag(Tok, diag::warn_pragma_warning_spec_invalid);
1455 PP.Lex(Tok);
1459 if (PP.parseSimpleIntegerLiteral(Tok, Value)) {
1469 PP.Diag(Tok, diag::warn_pragma_warning_spec_invalid);
1472 if (Tok.isNot(tok::colon)) {
1473 PP.Diag(Tok, diag::warn_pragma_warning_expected) << ":";
1479 PP.Lex(Tok);
1480 while (Tok.is(tok::numeric_constant)) {
1482 if (!PP.parseSimpleIntegerLiteral(Tok, Value) || Value == 0 ||
1484 PP.Diag(Tok, diag::warn_pragma_warning_expected_number);
1509 if (Tok.isNot(tok::semi))
1511 PP.Lex(Tok);
1515 if (Tok.isNot(tok::r_paren)) {
1516 PP.Diag(Tok, diag::warn_pragma_warning_expected) << ")";
1520 PP.Lex(Tok);
1521 if (Tok.isNot(tok::eod))
1522 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma warning";
1533 Token &Tok) override {
1537 SourceLocation DiagLoc = Tok.getLocation();
1540 PP.Lex(Tok);
1541 if (Tok.isNot(tok::l_paren)) {
1542 PP.Diag(Tok, diag::warn_pragma_exec_charset_expected) << "(";
1546 PP.Lex(Tok);
1547 IdentifierInfo *II = Tok.getIdentifierInfo();
1551 PP.Lex(Tok);
1552 if (Tok.is(tok::comma)) {
1553 PP.Lex(Tok);
1556 if (!PP.FinishLexStringLiteral(Tok, ExecCharset,
1563 PP.Diag(Tok, diag::warn_pragma_exec_charset_push_invalid) << ExecCharset;
1571 PP.Lex(Tok);
1575 PP.Diag(Tok, diag::warn_pragma_exec_charset_spec_invalid);
1579 if (Tok.isNot(tok::r_paren)) {
1580 PP.Diag(Tok, diag::warn_pragma_exec_charset_expected) << ")";
1584 PP.Lex(Tok);
1585 if (Tok.isNot(tok::eod))
1586 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma execution_character_set";
1638 Token &Tok) override {
1639 SourceLocation MessageLoc = Tok.getLocation();
1640 PP.Lex(Tok);
1642 switch (Tok.getKind()) {
1647 PP.Lex(Tok);
1658 if (!PP.FinishLexStringLiteral(Tok, MessageString, PragmaKind(Kind),
1663 if (Tok.isNot(tok::r_paren)) {
1664 PP.Diag(Tok.getLocation(), diag::err_pragma_message_malformed) << Kind;
1667 PP.Lex(Tok); // eat the r_paren.
1670 if (Tok.isNot(tok::eod)) {
1671 PP.Diag(Tok.getLocation(), diag::err_pragma_message_malformed) << Kind;
1694 Token &Tok) override {
1695 SourceLocation ImportLoc = Tok.getLocation();
1700 if (LexModuleName(PP, Tok, ModuleName))
1703 if (Tok.isNot(tok::eod))
1704 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1731 Token &Tok) override {
1732 SourceLocation BeginLoc = Tok.getLocation();
1737 if (LexModuleName(PP, Tok, ModuleName))
1740 if (Tok.isNot(tok::eod))
1741 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1791 Token &Tok) override {
1792 SourceLocation Loc = Tok.getLocation();
1794 PP.LexUnexpandedToken(Tok);
1795 if (Tok.isNot(tok::eod))
1796 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1811 Token &Tok) override {
1812 PP.HandlePragmaModuleBuild(Tok);
1821 Token &Tok) override {
1822 SourceLocation Loc = Tok.getLocation();
1827 if (LexModuleName(PP, Tok, ModuleName))
1830 if (Tok.isNot(tok::eod))
1831 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1871 Token Tok;
1874 PP.LexUnexpandedToken(Tok);
1875 const IdentifierInfo *BeginEnd = Tok.getIdentifierInfo();
1881 PP.Diag(Tok.getLocation(), diag::err_pp_arc_cf_code_audited_syntax);
1886 PP.LexUnexpandedToken(Tok);
1887 if (Tok.isNot(tok::eod))
1888 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1926 Token Tok;
1929 PP.LexUnexpandedToken(Tok);
1930 const IdentifierInfo *BeginEnd = Tok.getIdentifierInfo();
1936 PP.Diag(Tok.getLocation(), diag::err_pp_assume_nonnull_syntax);
1941 PP.LexUnexpandedToken(Tok);
1942 if (Tok.isNot(tok::eod))
1943 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
2009 static IdentifierInfo *HandleMacroAnnotationPragma(Preprocessor &PP, Token &Tok,
2012 PP.Lex(Tok);
2013 if (Tok.isNot(tok::l_paren)) {
2014 PP.Diag(Tok, diag::err_expected) << "(";
2018 PP.LexUnexpandedToken(Tok);
2019 if (!Tok.is(tok::identifier)) {
2020 PP.Diag(Tok, diag::err_expected) << tok::identifier;
2023 IdentifierInfo *II = Tok.getIdentifierInfo();
2026 PP.Diag(Tok, diag::err_pp_visibility_non_macro) << II;
2030 PP.Lex(Tok);
2031 if (Tok.is(tok::comma)) {
2032 PP.Lex(Tok);
2033 if (!PP.FinishLexStringLiteral(Tok, MessageString, Pragma,
2038 if (Tok.isNot(tok::r_paren)) {
2039 PP.Diag(Tok, diag::err_expected) << ")";
2055 Token &Tok) override {
2059 PP, Tok, "#pragma clang deprecated", MessageString)) {
2062 Tok.getLocation());
2077 Token &Tok) override {
2081 PP, Tok, "#pragma clang restrict_expansion", MessageString)) {
2084 Tok.getLocation());
2099 Token &Tok) override {
2100 PP.Lex(Tok);
2101 if (Tok.isNot(tok::l_paren)) {
2102 PP.Diag(Tok, diag::err_expected) << "(";
2106 PP.LexUnexpandedToken(Tok);
2107 if (!Tok.is(tok::identifier)) {
2108 PP.Diag(Tok, diag::err_expected) << tok::identifier;
2111 IdentifierInfo *II = Tok.getIdentifierInfo();
2114 PP.Diag(Tok, diag::err_pp_visibility_non_macro) << II;
2118 PP.Lex(Tok);
2119 if (Tok.isNot(tok::r_paren)) {
2120 PP.Diag(Tok, diag::err_expected) << ")";
2124 PP.addFinalLoc(II, Tok.getLocation());