Lines Matching defs:Tok

104                                    PragmaIntroducer Introducer, Token &Tok) {
107 PP.LexUnexpandedToken(Tok);
111 = FindHandler(Tok.getIdentifierInfo() ? Tok.getIdentifierInfo()->getName()
115 PP.Diag(Tok, diag::warn_pragma_ignored);
120 Handler->HandlePragma(PP, Introducer, Tok);
135 Token &Tok;
139 Tokens.push_back(Tok);
140 Self.Lex(Tok);
150 Toks[Tokens.size() - 1] = Tok;
156 Tok = *Tokens.begin();
173 Token Tok;
174 PragmaHandlers->HandlePragma(*this, Introducer, Tok);
184 /// been read into 'Tok'.
185 void Preprocessor::Handle_Pragma(Token &Tok) {
206 TokenCollector Toks = {*this, InMacroArgPreExpansion, {}, Tok};
209 SourceLocation PragmaLoc = Tok.getLocation();
213 if (Tok.isNot(tok::l_paren)) {
220 if (!tok::isStringLiteral(Tok.getKind())) {
223 if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::eof))
224 Lex(Tok);
225 while (Tok.isNot(tok::r_paren) &&
226 !Tok.isAtStartOfLine() &&
227 Tok.isNot(tok::eof))
228 Lex(Tok);
229 if (Tok.is(tok::r_paren))
230 Lex(Tok);
234 if (Tok.hasUDSuffix()) {
235 Diag(Tok, diag::err_invalid_string_udl);
237 Lex(Tok);
238 if (Tok.is(tok::r_paren))
239 Lex(Tok);
244 Token StrTok = Tok;
248 if (Tok.isNot(tok::r_paren)) {
259 SourceLocation RParenLoc = Tok.getLocation();
299 return Lex(Tok);
354 void Preprocessor::HandleMicrosoft__pragma(Token &Tok) {
357 TokenCollector Toks = {*this, InMacroArgPreExpansion, {}, Tok};
360 SourceLocation PragmaLoc = Tok.getLocation();
364 if (Tok.isNot(tok::l_paren)) {
373 while (Tok.isNot(tok::eof)) {
374 PragmaToks.push_back(Tok);
375 if (Tok.is(tok::l_paren))
377 else if (Tok.is(tok::r_paren) && NumParens-- == 0)
382 if (Tok.is(tok::eof)) {
409 return Lex(Tok);
439 Token Tok;
448 LexUnexpandedToken(Tok);
452 if (Tok.is(tok::eod)) return;
455 if (Tok.isNot(tok::raw_identifier)) {
456 Diag(Tok, diag::err_pp_invalid_poison);
462 IdentifierInfo *II = LookUpIdentifierInfo(Tok);
469 Diag(Tok, diag::pp_poisoning_existing_macro);
568 IdentifierInfo *Preprocessor::ParsePragmaPushOrPopMacro(Token &Tok) {
570 Token PragmaTok = Tok;
573 Lex(Tok);
574 if (Tok.isNot(tok::l_paren)) {
581 Lex(Tok);
582 if (Tok.isNot(tok::string_literal)) {
588 if (Tok.hasUDSuffix()) {
589 Diag(Tok, diag::err_invalid_string_udl);
594 std::string StrVal = getSpelling(Tok);
597 Lex(Tok);
598 if (Tok.isNot(tok::r_paren)) {
681 void Preprocessor::HandlePragmaIncludeAlias(Token &Tok) {
688 Lex(Tok);
689 if (Tok.isNot(tok::l_paren)) {
690 Diag(Tok, diag::warn_pragma_include_alias_expected) << "(";
704 Diag(Tok, diag::warn_pragma_include_alias_expected_filename);
710 Lex(Tok);
711 if (Tok.isNot(tok::comma)) {
712 Diag(Tok, diag::warn_pragma_include_alias_expected) << ",";
724 Diag(Tok, diag::warn_pragma_include_alias_expected_filename);
729 Lex(Tok);
730 if (Tok.isNot(tok::r_paren)) {
731 Diag(Tok, diag::warn_pragma_include_alias_expected) << ")";
767 Preprocessor &PP, Token &Tok,
770 PP.LexUnexpandedToken(Tok);
771 if (Tok.is(tok::string_literal) && !Tok.hasUDSuffix()) {
772 StringLiteralParser Literal(Tok, PP);
776 PP.getIdentifierInfo(Literal.GetString()), Tok.getLocation());
777 } else if (!Tok.isAnnotation() && Tok.getIdentifierInfo()) {
779 std::make_pair(Tok.getIdentifierInfo(), Tok.getLocation());
781 PP.Diag(Tok.getLocation(), diag::err_pp_expected_module_name) << First;
788 Preprocessor &PP, Token &Tok,
793 if (LexModuleNameComponent(PP, Tok, NameComponent, ModuleName.empty()))
797 PP.LexUnexpandedToken(Tok);
798 if (Tok.isNot(tok::period))
803 void Preprocessor::HandlePragmaModuleBuild(Token &Tok) {
804 SourceLocation Loc = Tok.getLocation();
807 if (LexModuleNameComponent(*this, Tok, ModuleNameLoc, true))
811 LexUnexpandedToken(Tok);
812 if (Tok.isNot(tok::eod)) {
813 Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
820 if (Tok.getKind() != tok::raw_identifier ||
821 Tok.getRawIdentifier() != Ident)
823 CurLexer->Lex(Tok);
833 CurLexer->Lex(Tok);
835 if (Tok.is(tok::eof)) {
840 if (Tok.isNot(tok::hash) || !Tok.isAtStartOfLine()) {
848 CurLexer->Lex(Tok);
861 assert(Tok.getKind() != tok::eof && "missing EOD before EOF");
877 void Preprocessor::HandlePragmaHdrstop(Token &Tok) {
878 Lex(Tok);
879 if (Tok.is(tok::l_paren)) {
880 Diag(Tok.getLocation(), diag::warn_pp_hdrstop_filename_ignored);
883 if (!LexStringLiteral(Tok, FileName, "pragma hdrstop", false))
886 if (Tok.isNot(tok::r_paren)) {
887 Diag(Tok, diag::err_expected) << tok::r_paren;
890 Lex(Tok);
892 if (Tok.isNot(tok::eod))
893 Diag(Tok.getLocation(), diag::ext_pp_extra_tokens_at_eol)
897 SourceMgr.isInMainFile(Tok.getLocation())) {
899 Token &Result = Tok;
965 Token Tok;
966 LexUnexpandedToken(Tok);
968 if (Tok.isNot(tok::identifier)) {
969 Diag(Tok, diag::ext_on_off_switch_syntax);
972 IdentifierInfo *II = Tok.getIdentifierInfo();
980 Diag(Tok, diag::ext_on_off_switch_syntax);
985 LexUnexpandedToken(Tok);
986 if (Tok.isNot(tok::eod))
987 Diag(Tok, diag::ext_pragma_syntax_eod);
1051 Token Tok;
1052 PP.LexUnexpandedToken(Tok);
1053 if (Tok.isNot(tok::identifier)) {
1054 PP.Diag(Tok, diag::warn_pragma_debug_missing_command);
1057 IdentifierInfo *II = Tok.getIdentifierInfo();
1072 Crasher.setAnnotationRange(SourceRange(Tok.getLocation()));
1079 DumpAnnot.setAnnotationRange(SourceRange(Tok.getLocation()));
1114 if (LexModuleName(PP, Tok, ModuleName))
1180 PP.Diag(Tok, diag::warn_pragma_debug_unexpected_command)
1197 PP.Diag(Tok, diag::remark_sloc_usage);
1201 PP.Diag(Tok, diag::warn_pragma_debug_unexpected_command)
1207 Callbacks->PragmaDebug(Tok.getLocation(), II->getName());
1211 Token Tok;
1212 PP.LexUnexpandedToken(Tok);
1214 if (Tok.isNot(tok::eod)) {
1215 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol)
1220 SourceLocation NameLoc = Tok.getLocation();
1248 Token Tok;
1250 PP.LexUnexpandedToken(Tok);
1251 if (Tok.isNot(tok::identifier)) {
1252 PP.Diag(Tok, diag::err_pp_pragma_unsafe_buffer_usage_syntax);
1256 IdentifierInfo *II = Tok.getIdentifierInfo();
1257 SourceLocation Loc = Tok.getLocation();
1266 PP.Diag(Tok, diag::err_pp_pragma_unsafe_buffer_usage_syntax);
1282 Token Tok;
1283 PP.LexUnexpandedToken(Tok);
1284 if (Tok.isNot(tok::identifier)) {
1285 PP.Diag(Tok, diag::warn_pragma_diagnostic_invalid);
1288 IdentifierInfo *II = Tok.getIdentifierInfo();
1293 PP.LexUnexpandedToken(Tok);
1297 PP.Diag(Tok, diag::warn_pragma_diagnostic_cannot_pop);
1301 if (Tok.isNot(tok::eod))
1302 PP.Diag(Tok.getLocation(), diag::warn_pragma_diagnostic_invalid_token);
1309 if (Tok.isNot(tok::eod))
1310 PP.Diag(Tok.getLocation(), diag::warn_pragma_diagnostic_invalid_token);
1322 PP.Diag(Tok, diag::warn_pragma_diagnostic_invalid);
1327 SourceLocation StringLoc = Tok.getLocation();
1329 if (!PP.FinishLexStringLiteral(Tok, WarningName, "pragma diagnostic",
1333 if (Tok.isNot(tok::eod)) {
1334 PP.Diag(Tok.getLocation(), diag::warn_pragma_diagnostic_invalid_token);
1380 Token &Tok) override {
1385 SourceLocation DiagLoc = Tok.getLocation();
1388 PP.Lex(Tok);
1389 if (Tok.isNot(tok::l_paren)) {
1390 PP.Diag(Tok, diag::warn_pragma_warning_expected) << "(";
1394 PP.Lex(Tok);
1395 IdentifierInfo *II = Tok.getIdentifierInfo();
1400 PP.Lex(Tok);
1401 if (Tok.is(tok::comma)) {
1402 PP.Lex(Tok);
1404 if (Tok.is(tok::numeric_constant) &&
1405 PP.parseSimpleIntegerLiteral(Tok, Value))
1408 PP.Diag(Tok, diag::warn_pragma_warning_push_level);
1417 PP.Lex(Tok);
1419 PP.Diag(Tok, diag::warn_pragma_diagnostic_cannot_pop);
1426 II = Tok.getIdentifierInfo();
1427 if (!II && !Tok.is(tok::numeric_constant)) {
1428 PP.Diag(Tok, diag::warn_pragma_warning_spec_invalid);
1451 PP.Lex(Tok);
1455 if (PP.parseSimpleIntegerLiteral(Tok, Value)) {
1465 PP.Diag(Tok, diag::warn_pragma_warning_spec_invalid);
1468 if (Tok.isNot(tok::colon)) {
1469 PP.Diag(Tok, diag::warn_pragma_warning_expected) << ":";
1475 PP.Lex(Tok);
1476 while (Tok.is(tok::numeric_constant)) {
1478 if (!PP.parseSimpleIntegerLiteral(Tok, Value) || Value == 0 ||
1480 PP.Diag(Tok, diag::warn_pragma_warning_expected_number);
1505 if (Tok.isNot(tok::semi))
1507 PP.Lex(Tok);
1511 if (Tok.isNot(tok::r_paren)) {
1512 PP.Diag(Tok, diag::warn_pragma_warning_expected) << ")";
1516 PP.Lex(Tok);
1517 if (Tok.isNot(tok::eod))
1518 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma warning";
1529 Token &Tok) override {
1533 SourceLocation DiagLoc = Tok.getLocation();
1536 PP.Lex(Tok);
1537 if (Tok.isNot(tok::l_paren)) {
1538 PP.Diag(Tok, diag::warn_pragma_exec_charset_expected) << "(";
1542 PP.Lex(Tok);
1543 IdentifierInfo *II = Tok.getIdentifierInfo();
1547 PP.Lex(Tok);
1548 if (Tok.is(tok::comma)) {
1549 PP.Lex(Tok);
1552 if (!PP.FinishLexStringLiteral(Tok, ExecCharset,
1559 PP.Diag(Tok, diag::warn_pragma_exec_charset_push_invalid) << ExecCharset;
1567 PP.Lex(Tok);
1571 PP.Diag(Tok, diag::warn_pragma_exec_charset_spec_invalid);
1575 if (Tok.isNot(tok::r_paren)) {
1576 PP.Diag(Tok, diag::warn_pragma_exec_charset_expected) << ")";
1580 PP.Lex(Tok);
1581 if (Tok.isNot(tok::eod))
1582 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma execution_character_set";
1634 Token &Tok) override {
1635 SourceLocation MessageLoc = Tok.getLocation();
1636 PP.Lex(Tok);
1638 switch (Tok.getKind()) {
1643 PP.Lex(Tok);
1654 if (!PP.FinishLexStringLiteral(Tok, MessageString, PragmaKind(Kind),
1659 if (Tok.isNot(tok::r_paren)) {
1660 PP.Diag(Tok.getLocation(), diag::err_pragma_message_malformed) << Kind;
1663 PP.Lex(Tok); // eat the r_paren.
1666 if (Tok.isNot(tok::eod)) {
1667 PP.Diag(Tok.getLocation(), diag::err_pragma_message_malformed) << Kind;
1690 Token &Tok) override {
1691 SourceLocation ImportLoc = Tok.getLocation();
1696 if (LexModuleName(PP, Tok, ModuleName))
1699 if (Tok.isNot(tok::eod))
1700 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1727 Token &Tok) override {
1728 SourceLocation BeginLoc = Tok.getLocation();
1733 if (LexModuleName(PP, Tok, ModuleName))
1736 if (Tok.isNot(tok::eod))
1737 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1788 Token &Tok) override {
1789 SourceLocation Loc = Tok.getLocation();
1791 PP.LexUnexpandedToken(Tok);
1792 if (Tok.isNot(tok::eod))
1793 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1808 Token &Tok) override {
1809 PP.HandlePragmaModuleBuild(Tok);
1818 Token &Tok) override {
1819 SourceLocation Loc = Tok.getLocation();
1824 if (LexModuleName(PP, Tok, ModuleName))
1827 if (Tok.isNot(tok::eod))
1828 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1868 Token Tok;
1871 PP.LexUnexpandedToken(Tok);
1872 const IdentifierInfo *BeginEnd = Tok.getIdentifierInfo();
1878 PP.Diag(Tok.getLocation(), diag::err_pp_arc_cf_code_audited_syntax);
1883 PP.LexUnexpandedToken(Tok);
1884 if (Tok.isNot(tok::eod))
1885 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
1923 Token Tok;
1926 PP.LexUnexpandedToken(Tok);
1927 const IdentifierInfo *BeginEnd = Tok.getIdentifierInfo();
1933 PP.Diag(Tok.getLocation(), diag::err_pp_assume_nonnull_syntax);
1938 PP.LexUnexpandedToken(Tok);
1939 if (Tok.isNot(tok::eod))
1940 PP.Diag(Tok, diag::ext_pp_extra_tokens_at_eol) << "pragma";
2006 static IdentifierInfo *HandleMacroAnnotationPragma(Preprocessor &PP, Token &Tok,
2009 PP.Lex(Tok);
2010 if (Tok.isNot(tok::l_paren)) {
2011 PP.Diag(Tok, diag::err_expected) << "(";
2015 PP.LexUnexpandedToken(Tok);
2016 if (!Tok.is(tok::identifier)) {
2017 PP.Diag(Tok, diag::err_expected) << tok::identifier;
2020 IdentifierInfo *II = Tok.getIdentifierInfo();
2023 PP.Diag(Tok, diag::err_pp_visibility_non_macro) << II;
2027 PP.Lex(Tok);
2028 if (Tok.is(tok::comma)) {
2029 PP.Lex(Tok);
2030 if (!PP.FinishLexStringLiteral(Tok, MessageString, Pragma,
2035 if (Tok.isNot(tok::r_paren)) {
2036 PP.Diag(Tok, diag::err_expected) << ")";
2052 Token &Tok) override {
2056 PP, Tok, "#pragma clang deprecated", MessageString)) {
2059 Tok.getLocation());
2074 Token &Tok) override {
2078 PP, Tok, "#pragma clang restrict_expansion", MessageString)) {
2081 Tok.getLocation());
2096 Token &Tok) override {
2097 PP.Lex(Tok);
2098 if (Tok.isNot(tok::l_paren)) {
2099 PP.Diag(Tok, diag::err_expected) << "(";
2103 PP.LexUnexpandedToken(Tok);
2104 if (!Tok.is(tok::identifier)) {
2105 PP.Diag(Tok, diag::err_expected) << tok::identifier;
2108 IdentifierInfo *II = Tok.getIdentifierInfo();
2111 PP.Diag(Tok, diag::err_pp_visibility_non_macro) << II;
2115 PP.Lex(Tok);
2116 if (Tok.isNot(tok::r_paren)) {
2117 PP.Diag(Tok, diag::err_expected) << ")";
2121 PP.addFinalLoc(II, Tok.getLocation());