Lines Matching refs:tok
28 void Parser::MaybeSkipAttributes(tok::ObjCKeywordKind Kind) { in MaybeSkipAttributes()
30 if (Tok.is(tok::kw___attribute)) { in MaybeSkipAttributes()
31 if (Kind == tok::objc_interface || Kind == tok::objc_protocol) in MaybeSkipAttributes()
33 << (Kind == tok::objc_protocol); in MaybeSkipAttributes()
51 if (Tok.is(tok::code_completion)) { in ParseObjCAtDirectives()
59 case tok::objc_class: in ParseObjCAtDirectives()
61 case tok::objc_interface: { in ParseObjCAtDirectives()
66 case tok::objc_protocol: { in ParseObjCAtDirectives()
70 case tok::objc_implementation: in ParseObjCAtDirectives()
72 case tok::objc_end: in ParseObjCAtDirectives()
74 case tok::objc_compatibility_alias: in ParseObjCAtDirectives()
77 case tok::objc_synthesize: in ParseObjCAtDirectives()
80 case tok::objc_dynamic: in ParseObjCAtDirectives()
83 case tok::objc_import: in ParseObjCAtDirectives()
87 SkipUntil(tok::semi); in ParseObjCAtDirectives()
91 SkipUntil(tok::semi); in ParseObjCAtDirectives()
139 MaybeSkipAttributes(tok::objc_class); in ParseObjCAtClassDeclaration()
140 if (Tok.isNot(tok::identifier)) { in ParseObjCAtClassDeclaration()
141 Diag(Tok, diag::err_expected) << tok::identifier; in ParseObjCAtClassDeclaration()
142 SkipUntil(tok::semi); in ParseObjCAtClassDeclaration()
151 if (Tok.is(tok::less)) in ParseObjCAtClassDeclaration()
154 if (!TryConsumeToken(tok::comma)) in ParseObjCAtClassDeclaration()
159 if (ExpectAndConsume(tok::semi, diag::err_expected_after, "@class")) in ParseObjCAtClassDeclaration()
218 assert(Tok.isObjCAtKeyword(tok::objc_interface) && in ParseObjCAtInterfaceDeclaration()
224 if (Tok.is(tok::code_completion)) { in ParseObjCAtInterfaceDeclaration()
230 MaybeSkipAttributes(tok::objc_interface); in ParseObjCAtInterfaceDeclaration()
232 if (Tok.isNot(tok::identifier)) { in ParseObjCAtInterfaceDeclaration()
234 << tok::identifier; // missing class or category name. in ParseObjCAtInterfaceDeclaration()
249 if (Tok.is(tok::less)) in ParseObjCAtInterfaceDeclaration()
253 if (Tok.is(tok::l_paren) && in ParseObjCAtInterfaceDeclaration()
256 BalancedDelimiterTracker T(*this, tok::l_paren); in ParseObjCAtInterfaceDeclaration()
261 if (Tok.is(tok::code_completion)) { in ParseObjCAtInterfaceDeclaration()
268 if (Tok.is(tok::identifier)) { in ParseObjCAtInterfaceDeclaration()
274 << tok::identifier; // missing category name. in ParseObjCAtInterfaceDeclaration()
291 if (Tok.is(tok::less) && in ParseObjCAtInterfaceDeclaration()
307 if (Tok.is(tok::l_brace)) in ParseObjCAtInterfaceDeclaration()
308 ParseObjCClassInstanceVariables(CategoryType, tok::objc_private, AtLoc); in ParseObjCAtInterfaceDeclaration()
310 ParseObjCInterfaceDeclList(tok::objc_not_keyword, CategoryType); in ParseObjCAtInterfaceDeclaration()
322 if (Tok.is(tok::colon)) { // a super class is specified. in ParseObjCAtInterfaceDeclaration()
326 if (Tok.is(tok::code_completion)) { in ParseObjCAtInterfaceDeclaration()
332 if (Tok.isNot(tok::identifier)) { in ParseObjCAtInterfaceDeclaration()
334 << tok::identifier; // missing super class name. in ParseObjCAtInterfaceDeclaration()
341 if (Tok.is(tok::less)) { in ParseObjCAtInterfaceDeclaration()
362 } else if (protocols.empty() && Tok.is(tok::less) && in ParseObjCAtInterfaceDeclaration()
369 if (Tok.isNot(tok::less)) in ParseObjCAtInterfaceDeclaration()
383 if (Tok.is(tok::l_brace)) in ParseObjCAtInterfaceDeclaration()
384 ParseObjCClassInstanceVariables(ClsType, tok::objc_protected, AtLoc); in ParseObjCAtInterfaceDeclaration()
386 ParseObjCInterfaceDeclList(tok::objc_interface, ClsType); in ParseObjCAtInterfaceDeclaration()
450 assert(Tok.is(tok::less) && "Not at the beginning of a type parameter list"); in parseObjCTypeParamListOrProtocolRefs()
479 if (Tok.is(tok::kw___covariant) || Tok.is(tok::kw___contravariant)) { in parseObjCTypeParamListOrProtocolRefs()
480 variance = Tok.is(tok::kw___covariant) in parseObjCTypeParamListOrProtocolRefs()
495 if (!Tok.is(tok::identifier)) { in parseObjCTypeParamListOrProtocolRefs()
497 if (Tok.is(tok::code_completion)) { in parseObjCTypeParamListOrProtocolRefs()
518 if (TryConsumeToken(tok::colon, colonLoc)) { in parseObjCTypeParamListOrProtocolRefs()
544 } while (TryConsumeToken(tok::comma)); in parseObjCTypeParamListOrProtocolRefs()
548 SkipUntil(tok::greater, tok::at, StopBeforeMatch); in parseObjCTypeParamListOrProtocolRefs()
549 if (Tok.is(tok::greater)) in parseObjCTypeParamListOrProtocolRefs()
555 SkipUntil({tok::greater, tok::greaterequal, tok::at, tok::minus, in parseObjCTypeParamListOrProtocolRefs()
556 tok::minus, tok::plus, tok::colon, tok::l_paren, tok::l_brace, in parseObjCTypeParamListOrProtocolRefs()
557 tok::comma, tok::semi }, in parseObjCTypeParamListOrProtocolRefs()
559 if (Tok.is(tok::greater)) in parseObjCTypeParamListOrProtocolRefs()
568 if (Tok.isNot(tok::colon) && Tok.isNot(tok::l_paren)) { in parseObjCTypeParamListOrProtocolRefs()
619 void Parser::ParseObjCInterfaceDeclList(tok::ObjCKeywordKind contextKey, in ParseObjCInterfaceDeclList()
623 tok::ObjCKeywordKind MethodImplKind = tok::objc_not_keyword; in ParseObjCInterfaceDeclList()
629 if (Tok.isOneOf(tok::minus, tok::plus)) { in ParseObjCInterfaceDeclList()
637 SkipUntil(tok::at, StopAtSemi | StopBeforeMatch); in ParseObjCInterfaceDeclList()
638 if (Tok.is(tok::semi)) in ParseObjCInterfaceDeclList()
643 if (Tok.is(tok::l_paren)) { in ParseObjCInterfaceDeclList()
646 tok::minus, in ParseObjCInterfaceDeclList()
651 if (Tok.is(tok::semi)) { in ParseObjCInterfaceDeclList()
661 if (Tok.is(tok::code_completion)) { in ParseObjCInterfaceDeclList()
669 if (Tok.isNot(tok::at)) { in ParseObjCInterfaceDeclList()
673 if (Tok.is(tok::r_brace)) in ParseObjCInterfaceDeclList()
682 if (Tok.is(tok::code_completion)) { in ParseObjCInterfaceDeclList()
687 tok::ObjCKeywordKind DirectiveKind = Tok.getObjCKeywordID(); in ParseObjCInterfaceDeclList()
689 if (DirectiveKind == tok::objc_end) { // @end -> terminate list in ParseObjCInterfaceDeclList()
693 } else if (DirectiveKind == tok::objc_not_keyword) { in ParseObjCInterfaceDeclList()
695 SkipUntil(tok::semi); in ParseObjCInterfaceDeclList()
710 SkipUntil(tok::r_brace, tok::at, StopAtSemi); in ParseObjCInterfaceDeclList()
713 case tok::objc_implementation: in ParseObjCInterfaceDeclList()
714 case tok::objc_interface: in ParseObjCInterfaceDeclList()
722 case tok::objc_required: in ParseObjCInterfaceDeclList()
723 case tok::objc_optional: in ParseObjCInterfaceDeclList()
726 if (contextKey != tok::objc_protocol) in ParseObjCInterfaceDeclList()
732 case tok::objc_property: in ParseObjCInterfaceDeclList()
739 if (Tok.is(tok::l_paren)) { in ParseObjCInterfaceDeclList()
788 ExpectAndConsume(tok::semi, diag::err_expected_semi_decl_list); in ParseObjCInterfaceDeclList()
795 if (Tok.is(tok::code_completion)) { in ParseObjCInterfaceDeclList()
798 } else if (Tok.isObjCAtKeyword(tok::objc_end)) { in ParseObjCInterfaceDeclList()
858 assert(Tok.getKind() == tok::l_paren); in ParseObjCPropertyAttribute()
859 BalancedDelimiterTracker T(*this, tok::l_paren); in ParseObjCPropertyAttribute()
863 if (Tok.is(tok::code_completion)) { in ParseObjCPropertyAttribute()
904 if (ExpectAndConsume(tok::equal, DiagID)) { in ParseObjCPropertyAttribute()
905 SkipUntil(tok::r_paren, StopAtSemi); in ParseObjCPropertyAttribute()
909 if (Tok.is(tok::code_completion)) { in ParseObjCPropertyAttribute()
923 SkipUntil(tok::r_paren, StopAtSemi); in ParseObjCPropertyAttribute()
931 if (ExpectAndConsume(tok::colon, in ParseObjCPropertyAttribute()
933 SkipUntil(tok::r_paren, StopAtSemi); in ParseObjCPropertyAttribute()
975 SkipUntil(tok::r_paren, StopAtSemi); in ParseObjCPropertyAttribute()
979 if (Tok.isNot(tok::comma)) in ParseObjCPropertyAttribute()
998 Decl *Parser::ParseObjCMethodPrototype(tok::ObjCKeywordKind MethodImplKind, in ParseObjCMethodPrototype()
1000 assert(Tok.isOneOf(tok::minus, tok::plus) && "expected +/-"); in ParseObjCMethodPrototype()
1002 tok::TokenKind methodType = Tok.getKind(); in ParseObjCMethodPrototype()
1024 case tok::ampamp: in ParseObjCSelectorPiece()
1025 case tok::ampequal: in ParseObjCSelectorPiece()
1026 case tok::amp: in ParseObjCSelectorPiece()
1027 case tok::pipe: in ParseObjCSelectorPiece()
1028 case tok::tilde: in ParseObjCSelectorPiece()
1029 case tok::exclaim: in ParseObjCSelectorPiece()
1030 case tok::exclaimequal: in ParseObjCSelectorPiece()
1031 case tok::pipepipe: in ParseObjCSelectorPiece()
1032 case tok::pipeequal: in ParseObjCSelectorPiece()
1033 case tok::caret: in ParseObjCSelectorPiece()
1034 case tok::caretequal: { in ParseObjCSelectorPiece()
1038 Tok.setKind(tok::identifier); in ParseObjCSelectorPiece()
1045 case tok::identifier: in ParseObjCSelectorPiece()
1046 case tok::kw_asm: in ParseObjCSelectorPiece()
1047 case tok::kw_auto: in ParseObjCSelectorPiece()
1048 case tok::kw_bool: in ParseObjCSelectorPiece()
1049 case tok::kw_break: in ParseObjCSelectorPiece()
1050 case tok::kw_case: in ParseObjCSelectorPiece()
1051 case tok::kw_catch: in ParseObjCSelectorPiece()
1052 case tok::kw_char: in ParseObjCSelectorPiece()
1053 case tok::kw_class: in ParseObjCSelectorPiece()
1054 case tok::kw_const: in ParseObjCSelectorPiece()
1055 case tok::kw_const_cast: in ParseObjCSelectorPiece()
1056 case tok::kw_continue: in ParseObjCSelectorPiece()
1057 case tok::kw_default: in ParseObjCSelectorPiece()
1058 case tok::kw_delete: in ParseObjCSelectorPiece()
1059 case tok::kw_do: in ParseObjCSelectorPiece()
1060 case tok::kw_double: in ParseObjCSelectorPiece()
1061 case tok::kw_dynamic_cast: in ParseObjCSelectorPiece()
1062 case tok::kw_else: in ParseObjCSelectorPiece()
1063 case tok::kw_enum: in ParseObjCSelectorPiece()
1064 case tok::kw_explicit: in ParseObjCSelectorPiece()
1065 case tok::kw_export: in ParseObjCSelectorPiece()
1066 case tok::kw_extern: in ParseObjCSelectorPiece()
1067 case tok::kw_false: in ParseObjCSelectorPiece()
1068 case tok::kw_float: in ParseObjCSelectorPiece()
1069 case tok::kw_for: in ParseObjCSelectorPiece()
1070 case tok::kw_friend: in ParseObjCSelectorPiece()
1071 case tok::kw_goto: in ParseObjCSelectorPiece()
1072 case tok::kw_if: in ParseObjCSelectorPiece()
1073 case tok::kw_inline: in ParseObjCSelectorPiece()
1074 case tok::kw_int: in ParseObjCSelectorPiece()
1075 case tok::kw_long: in ParseObjCSelectorPiece()
1076 case tok::kw_mutable: in ParseObjCSelectorPiece()
1077 case tok::kw_namespace: in ParseObjCSelectorPiece()
1078 case tok::kw_new: in ParseObjCSelectorPiece()
1079 case tok::kw_operator: in ParseObjCSelectorPiece()
1080 case tok::kw_private: in ParseObjCSelectorPiece()
1081 case tok::kw_protected: in ParseObjCSelectorPiece()
1082 case tok::kw_public: in ParseObjCSelectorPiece()
1083 case tok::kw_register: in ParseObjCSelectorPiece()
1084 case tok::kw_reinterpret_cast: in ParseObjCSelectorPiece()
1085 case tok::kw_restrict: in ParseObjCSelectorPiece()
1086 case tok::kw_return: in ParseObjCSelectorPiece()
1087 case tok::kw_short: in ParseObjCSelectorPiece()
1088 case tok::kw_signed: in ParseObjCSelectorPiece()
1089 case tok::kw_sizeof: in ParseObjCSelectorPiece()
1090 case tok::kw_static: in ParseObjCSelectorPiece()
1091 case tok::kw_static_cast: in ParseObjCSelectorPiece()
1092 case tok::kw_struct: in ParseObjCSelectorPiece()
1093 case tok::kw_switch: in ParseObjCSelectorPiece()
1094 case tok::kw_template: in ParseObjCSelectorPiece()
1095 case tok::kw_this: in ParseObjCSelectorPiece()
1096 case tok::kw_throw: in ParseObjCSelectorPiece()
1097 case tok::kw_true: in ParseObjCSelectorPiece()
1098 case tok::kw_try: in ParseObjCSelectorPiece()
1099 case tok::kw_typedef: in ParseObjCSelectorPiece()
1100 case tok::kw_typeid: in ParseObjCSelectorPiece()
1101 case tok::kw_typename: in ParseObjCSelectorPiece()
1102 case tok::kw_typeof: in ParseObjCSelectorPiece()
1103 case tok::kw_union: in ParseObjCSelectorPiece()
1104 case tok::kw_unsigned: in ParseObjCSelectorPiece()
1105 case tok::kw_using: in ParseObjCSelectorPiece()
1106 case tok::kw_virtual: in ParseObjCSelectorPiece()
1107 case tok::kw_void: in ParseObjCSelectorPiece()
1108 case tok::kw_volatile: in ParseObjCSelectorPiece()
1109 case tok::kw_wchar_t: in ParseObjCSelectorPiece()
1110 case tok::kw_while: in ParseObjCSelectorPiece()
1111 case tok::kw__Bool: in ParseObjCSelectorPiece()
1112 case tok::kw__Complex: in ParseObjCSelectorPiece()
1113 case tok::kw___alignof: in ParseObjCSelectorPiece()
1114 case tok::kw___auto_type: in ParseObjCSelectorPiece()
1127 return (getLangOpts().ObjC2 && Tok.is(tok::identifier) && in isTokIdentifier_in()
1156 if (Tok.is(tok::code_completion)) { in ParseObjCTypeQualifierList()
1162 if (Tok.isNot(tok::identifier)) in ParseObjCTypeQualifierList()
1168 NextToken().is(tok::less) || in ParseObjCTypeQualifierList()
1169 NextToken().is(tok::coloncolon)) in ParseObjCTypeQualifierList()
1260 assert(Tok.is(tok::l_paren) && "expected ("); in ParseObjCTypeName()
1262 BalancedDelimiterTracker T(*this, tok::l_paren); in ParseObjCTypeName()
1304 if (Tok.is(tok::r_paren)) in ParseObjCTypeName()
1309 SkipUntil(tok::r_paren, StopAtSemi); in ParseObjCTypeName()
1347 tok::TokenKind mType, in ParseObjCMethodDecl()
1348 tok::ObjCKeywordKind MethodImplKind, in ParseObjCMethodDecl()
1352 if (Tok.is(tok::code_completion)) { in ParseObjCMethodDecl()
1353 Actions.CodeCompleteObjCMethodDecl(getCurScope(), mType == tok::minus, in ParseObjCMethodDecl()
1362 if (Tok.is(tok::l_paren)) in ParseObjCMethodDecl()
1371 if (Tok.is(tok::code_completion)) { in ParseObjCMethodDecl()
1372 Actions.CodeCompleteObjCMethodDecl(getCurScope(), mType == tok::minus, in ParseObjCMethodDecl()
1383 if (!SelIdent && Tok.isNot(tok::colon)) { // missing selector name. in ParseObjCMethodDecl()
1387 SkipUntil(tok::at, StopAtSemi | StopBeforeMatch); in ParseObjCMethodDecl()
1392 if (Tok.isNot(tok::colon)) { in ParseObjCMethodDecl()
1421 if (ExpectAndConsume(tok::colon)) in ParseObjCMethodDecl()
1425 if (Tok.is(tok::l_paren)) // Parse the argument type if present. in ParseObjCMethodDecl()
1439 if (Tok.is(tok::code_completion)) { in ParseObjCMethodDecl()
1442 mType == tok::minus, in ParseObjCMethodDecl()
1449 if (Tok.isNot(tok::identifier)) { in ParseObjCMethodDecl()
1451 << tok::identifier; // missing argument name. in ParseObjCMethodDecl()
1467 if (Tok.is(tok::code_completion)) { in ParseObjCMethodDecl()
1469 mType == tok::minus, in ParseObjCMethodDecl()
1478 if (!SelIdent && Tok.isNot(tok::colon)) in ParseObjCMethodDecl()
1494 while (Tok.is(tok::comma)) { in ParseObjCMethodDecl()
1496 if (Tok.is(tok::ellipsis)) { in ParseObjCMethodDecl()
1549 assert(Tok.is(tok::less) && "expected <"); in ParseObjCProtocolReferences()
1556 if (Tok.is(tok::code_completion)) { in ParseObjCProtocolReferences()
1562 if (Tok.isNot(tok::identifier)) { in ParseObjCProtocolReferences()
1563 Diag(Tok, diag::err_expected) << tok::identifier; in ParseObjCProtocolReferences()
1564 SkipUntil(tok::greater, StopAtSemi); in ParseObjCProtocolReferences()
1572 if (!TryConsumeToken(tok::comma)) in ParseObjCProtocolReferences()
1588 assert(Tok.is(tok::less) && "Protocol qualifiers start with '<'"); in parseObjCProtocolQualifierType()
1626 assert(Tok.is(tok::less) && "Not at the start of type args or protocols"); in parseObjCTypeArgsOrProtocolQualifiers()
1639 if (Tok.is(tok::identifier) && in parseObjCTypeArgsOrProtocolQualifiers()
1640 (NextToken().is(tok::comma) || in parseObjCTypeArgsOrProtocolQualifiers()
1641 NextToken().is(tok::greater) || in parseObjCTypeArgsOrProtocolQualifiers()
1642 NextToken().is(tok::greatergreater))) { in parseObjCTypeArgsOrProtocolQualifiers()
1648 if (Tok.is(tok::code_completion)) { in parseObjCTypeArgsOrProtocolQualifiers()
1668 } while (TryConsumeToken(tok::comma)); in parseObjCTypeArgsOrProtocolQualifiers()
1750 TryConsumeToken(tok::ellipsis, ellipsisLoc); in parseObjCTypeArgsOrProtocolQualifiers()
1764 } while (TryConsumeToken(tok::comma)); in parseObjCTypeArgsOrProtocolQualifiers()
1804 assert(Tok.is(tok::less)); in parseObjCTypeArgsAndProtocolQualifiers()
1821 if ((consumeLastToken && Tok.is(tok::less)) || in parseObjCTypeArgsAndProtocolQualifiers()
1822 (!consumeLastToken && NextToken().is(tok::less))) { in parseObjCTypeArgsAndProtocolQualifiers()
1834 SkipUntil(tok::greater, tok::greatergreater, skipFlags); in parseObjCTypeArgsAndProtocolQualifiers()
1850 assert(Tok.is(tok::less)); in parseObjCTypeArgsAndProtocolQualifiers()
1922 tok::ObjCKeywordKind visibility, in ParseObjCClassInstanceVariables()
1924 assert(Tok.is(tok::l_brace) && "expected {"); in ParseObjCClassInstanceVariables()
1930 BalancedDelimiterTracker T(*this, tok::l_brace); in ParseObjCClassInstanceVariables()
1933 while (Tok.isNot(tok::r_brace) && !isEofOrEom()) { in ParseObjCClassInstanceVariables()
1937 if (Tok.is(tok::semi)) { in ParseObjCClassInstanceVariables()
1943 if (TryConsumeToken(tok::at)) { // parse objc-visibility-spec in ParseObjCClassInstanceVariables()
1944 if (Tok.is(tok::code_completion)) { in ParseObjCClassInstanceVariables()
1950 case tok::objc_private: in ParseObjCClassInstanceVariables()
1951 case tok::objc_public: in ParseObjCClassInstanceVariables()
1952 case tok::objc_protected: in ParseObjCClassInstanceVariables()
1953 case tok::objc_package: in ParseObjCClassInstanceVariables()
1958 case tok::objc_end: in ParseObjCClassInstanceVariables()
1961 Tok.setKind(tok::at); in ParseObjCClassInstanceVariables()
1974 if (Tok.is(tok::code_completion)) { in ParseObjCClassInstanceVariables()
1997 if (Tok.is(tok::semi)) { in ParseObjCClassInstanceVariables()
2002 SkipUntil(tok::r_brace, StopAtSemi | StopBeforeMatch); in ParseObjCClassInstanceVariables()
2028 assert(Tok.isObjCAtKeyword(tok::objc_protocol) && in ParseObjCAtProtocolDeclaration()
2032 if (Tok.is(tok::code_completion)) { in ParseObjCAtProtocolDeclaration()
2038 MaybeSkipAttributes(tok::objc_protocol); in ParseObjCAtProtocolDeclaration()
2040 if (Tok.isNot(tok::identifier)) { in ParseObjCAtProtocolDeclaration()
2041 Diag(Tok, diag::err_expected) << tok::identifier; // missing protocol name. in ParseObjCAtProtocolDeclaration()
2048 if (TryConsumeToken(tok::semi)) { // forward declaration of one protocol. in ParseObjCAtProtocolDeclaration()
2056 if (Tok.is(tok::comma)) { // list of forward declarations. in ParseObjCAtProtocolDeclaration()
2063 if (Tok.isNot(tok::identifier)) { in ParseObjCAtProtocolDeclaration()
2064 Diag(Tok, diag::err_expected) << tok::identifier; in ParseObjCAtProtocolDeclaration()
2065 SkipUntil(tok::semi); in ParseObjCAtProtocolDeclaration()
2072 if (Tok.isNot(tok::comma)) in ParseObjCAtProtocolDeclaration()
2076 if (ExpectAndConsume(tok::semi, diag::err_expected_after, "@protocol")) in ParseObjCAtProtocolDeclaration()
2088 if (Tok.is(tok::less) && in ParseObjCAtProtocolDeclaration()
2101 ParseObjCInterfaceDeclList(tok::objc_protocol, ProtoType); in ParseObjCAtProtocolDeclaration()
2117 assert(Tok.isObjCAtKeyword(tok::objc_implementation) && in ParseObjCAtImplementationDeclaration()
2123 if (Tok.is(tok::code_completion)) { in ParseObjCAtImplementationDeclaration()
2129 MaybeSkipAttributes(tok::objc_implementation); in ParseObjCAtImplementationDeclaration()
2131 if (Tok.isNot(tok::identifier)) { in ParseObjCAtImplementationDeclaration()
2133 << tok::identifier; // missing class or category name. in ParseObjCAtImplementationDeclaration()
2143 if (Tok.is(tok::less)) { in ParseObjCAtImplementationDeclaration()
2158 if (Tok.is(tok::l_paren)) { in ParseObjCAtImplementationDeclaration()
2164 if (Tok.is(tok::code_completion)) { in ParseObjCAtImplementationDeclaration()
2170 if (Tok.is(tok::identifier)) { in ParseObjCAtImplementationDeclaration()
2175 << tok::identifier; // missing category name. in ParseObjCAtImplementationDeclaration()
2178 if (Tok.isNot(tok::r_paren)) { in ParseObjCAtImplementationDeclaration()
2179 Diag(Tok, diag::err_expected) << tok::r_paren; in ParseObjCAtImplementationDeclaration()
2180 SkipUntil(tok::r_paren); // don't stop at ';' in ParseObjCAtImplementationDeclaration()
2184 if (Tok.is(tok::less)) { // we have illegal '<' try to recover in ParseObjCAtImplementationDeclaration()
2203 if (TryConsumeToken(tok::colon)) { in ParseObjCAtImplementationDeclaration()
2205 if (Tok.isNot(tok::identifier)) { in ParseObjCAtImplementationDeclaration()
2207 << tok::identifier; // missing super class name. in ParseObjCAtImplementationDeclaration()
2217 if (Tok.is(tok::l_brace)) // we have ivars in ParseObjCAtImplementationDeclaration()
2218 ParseObjCClassInstanceVariables(ObjCImpDecl, tok::objc_private, AtLoc); in ParseObjCAtImplementationDeclaration()
2219 else if (Tok.is(tok::less)) { // we have illegal '<' try to recover in ParseObjCAtImplementationDeclaration()
2254 assert(Tok.isObjCAtKeyword(tok::objc_end) && in ParseObjCAtEndDeclaration()
2307 assert(Tok.isObjCAtKeyword(tok::objc_compatibility_alias) && in ParseObjCAtAliasDeclaration()
2310 if (Tok.isNot(tok::identifier)) { in ParseObjCAtAliasDeclaration()
2311 Diag(Tok, diag::err_expected) << tok::identifier; in ParseObjCAtAliasDeclaration()
2316 if (Tok.isNot(tok::identifier)) { in ParseObjCAtAliasDeclaration()
2317 Diag(Tok, diag::err_expected) << tok::identifier; in ParseObjCAtAliasDeclaration()
2322 ExpectAndConsume(tok::semi, diag::err_expected_after, "@compatibility_alias"); in ParseObjCAtAliasDeclaration()
2339 assert(Tok.isObjCAtKeyword(tok::objc_synthesize) && in ParseObjCPropertySynthesize()
2344 if (Tok.is(tok::code_completion)) { in ParseObjCPropertySynthesize()
2350 if (Tok.isNot(tok::identifier)) { in ParseObjCPropertySynthesize()
2352 SkipUntil(tok::semi); in ParseObjCPropertySynthesize()
2360 if (TryConsumeToken(tok::equal)) { in ParseObjCPropertySynthesize()
2362 if (Tok.is(tok::code_completion)) { in ParseObjCPropertySynthesize()
2368 if (Tok.isNot(tok::identifier)) { in ParseObjCPropertySynthesize()
2369 Diag(Tok, diag::err_expected) << tok::identifier; in ParseObjCPropertySynthesize()
2379 if (Tok.isNot(tok::comma)) in ParseObjCPropertySynthesize()
2383 ExpectAndConsume(tok::semi, diag::err_expected_after, "@synthesize"); in ParseObjCPropertySynthesize()
2395 assert(Tok.isObjCAtKeyword(tok::objc_dynamic) && in ParseObjCPropertyDynamic()
2400 if (Tok.is(tok::l_paren)) { in ParseObjCPropertyDynamic()
2406 SkipUntil(tok::r_paren, StopAtSemi); in ParseObjCPropertyDynamic()
2411 if (Tok.isNot(tok::r_paren)) { in ParseObjCPropertyDynamic()
2412 Diag(Tok, diag::err_expected) << tok::r_paren; in ParseObjCPropertyDynamic()
2413 SkipUntil(tok::r_paren, StopAtSemi); in ParseObjCPropertyDynamic()
2418 SkipUntil(tok::r_paren, StopAtSemi); in ParseObjCPropertyDynamic()
2424 if (Tok.is(tok::code_completion)) { in ParseObjCPropertyDynamic()
2430 if (Tok.isNot(tok::identifier)) { in ParseObjCPropertyDynamic()
2431 Diag(Tok, diag::err_expected) << tok::identifier; in ParseObjCPropertyDynamic()
2432 SkipUntil(tok::semi); in ParseObjCPropertyDynamic()
2444 if (Tok.isNot(tok::comma)) in ParseObjCPropertyDynamic()
2448 ExpectAndConsume(tok::semi, diag::err_expected_after, "@dynamic"); in ParseObjCPropertyDynamic()
2458 if (Tok.isNot(tok::semi)) { in ParseObjCThrowStmt()
2461 SkipUntil(tok::semi); in ParseObjCThrowStmt()
2466 ExpectAndConsume(tok::semi, diag::err_expected_after, "@throw"); in ParseObjCThrowStmt()
2476 if (Tok.isNot(tok::l_paren)) { in ParseObjCSynchronizedStmt()
2485 if (Tok.is(tok::r_paren)) { in ParseObjCSynchronizedStmt()
2489 Diag(Tok, diag::err_expected) << tok::r_paren; in ParseObjCSynchronizedStmt()
2492 SkipUntil(tok::l_brace, StopAtSemi | StopBeforeMatch); in ParseObjCSynchronizedStmt()
2496 if (Tok.isNot(tok::l_brace)) { in ParseObjCSynchronizedStmt()
2498 Diag(Tok, diag::err_expected) << tok::l_brace; in ParseObjCSynchronizedStmt()
2537 if (Tok.isNot(tok::l_brace)) { in ParseObjCTryStmt()
2538 Diag(Tok, diag::err_expected) << tok::l_brace; in ParseObjCTryStmt()
2549 while (Tok.is(tok::at)) { in ParseObjCTryStmt()
2554 if (!AfterAt.isObjCAtKeyword(tok::objc_catch) && in ParseObjCTryStmt()
2555 !AfterAt.isObjCAtKeyword(tok::objc_finally)) in ParseObjCTryStmt()
2559 if (Tok.isObjCAtKeyword(tok::objc_catch)) { in ParseObjCTryStmt()
2562 if (Tok.is(tok::l_paren)) { in ParseObjCTryStmt()
2565 if (Tok.isNot(tok::ellipsis)) { in ParseObjCTryStmt()
2579 if (Tok.is(tok::r_paren)) in ParseObjCTryStmt()
2582 SkipUntil(tok::r_paren, StopAtSemi); in ParseObjCTryStmt()
2585 if (Tok.is(tok::l_brace)) in ParseObjCTryStmt()
2588 Diag(Tok, diag::err_expected) << tok::l_brace; in ParseObjCTryStmt()
2606 assert(Tok.isObjCAtKeyword(tok::objc_finally) && "Lookahead confused?"); in ParseObjCTryStmt()
2611 if (Tok.is(tok::l_brace)) in ParseObjCTryStmt()
2614 Diag(Tok, diag::err_expected) << tok::l_brace; in ParseObjCTryStmt()
2639 if (Tok.isNot(tok::l_brace)) { in ParseObjCAutoreleasePoolStmt()
2640 Diag(Tok, diag::err_expected) << tok::l_brace; in ParseObjCAutoreleasePoolStmt()
2670 if (Tok.is(tok::kw_try)) { in StashAwayMethodOrFunctionBodyTokens()
2672 if (Tok.is(tok::colon)) { in StashAwayMethodOrFunctionBodyTokens()
2675 while (Tok.isNot(tok::l_brace)) { in StashAwayMethodOrFunctionBodyTokens()
2676 ConsumeAndStoreUntil(tok::l_paren, Toks, /*StopAtSemi=*/false); in StashAwayMethodOrFunctionBodyTokens()
2677 ConsumeAndStoreUntil(tok::r_paren, Toks, /*StopAtSemi=*/false); in StashAwayMethodOrFunctionBodyTokens()
2682 else if (Tok.is(tok::colon)) { in StashAwayMethodOrFunctionBodyTokens()
2685 while (Tok.isNot(tok::l_brace)) { in StashAwayMethodOrFunctionBodyTokens()
2686 ConsumeAndStoreUntil(tok::l_paren, Toks, /*StopAtSemi=*/false); in StashAwayMethodOrFunctionBodyTokens()
2687 ConsumeAndStoreUntil(tok::r_paren, Toks, /*StopAtSemi=*/false); in StashAwayMethodOrFunctionBodyTokens()
2693 ConsumeAndStoreUntil(tok::r_brace, Toks, /*StopAtSemi=*/false); in StashAwayMethodOrFunctionBodyTokens()
2694 while (Tok.is(tok::kw_catch)) { in StashAwayMethodOrFunctionBodyTokens()
2695 ConsumeAndStoreUntil(tok::l_brace, Toks, /*StopAtSemi=*/false); in StashAwayMethodOrFunctionBodyTokens()
2696 ConsumeAndStoreUntil(tok::r_brace, Toks, /*StopAtSemi=*/false); in StashAwayMethodOrFunctionBodyTokens()
2709 if (Tok.is(tok::semi)) { in ParseObjCMethodDefinition()
2718 if (Tok.isNot(tok::l_brace)) { in ParseObjCMethodDefinition()
2722 SkipUntil(tok::l_brace, StopAtSemi | StopBeforeMatch); in ParseObjCMethodDefinition()
2725 if (Tok.isNot(tok::l_brace)) in ParseObjCMethodDefinition()
2731 SkipUntil(tok::r_brace); in ParseObjCMethodDefinition()
2745 if (Tok.is(tok::code_completion)) { in ParseObjCAtStatement()
2751 if (Tok.isObjCAtKeyword(tok::objc_try)) in ParseObjCAtStatement()
2754 if (Tok.isObjCAtKeyword(tok::objc_throw)) in ParseObjCAtStatement()
2757 if (Tok.isObjCAtKeyword(tok::objc_synchronized)) in ParseObjCAtStatement()
2760 if (Tok.isObjCAtKeyword(tok::objc_autoreleasepool)) in ParseObjCAtStatement()
2763 if (Tok.isObjCAtKeyword(tok::objc_import) && in ParseObjCAtStatement()
2765 SkipUntil(tok::semi); in ParseObjCAtStatement()
2774 SkipUntil(tok::semi); in ParseObjCAtStatement()
2785 case tok::code_completion: in ParseObjCAtExpression()
2790 case tok::minus: in ParseObjCAtExpression()
2791 case tok::plus: { in ParseObjCAtExpression()
2792 tok::TokenKind Kind = Tok.getKind(); in ParseObjCAtExpression()
2795 if (!Tok.is(tok::numeric_constant)) { in ParseObjCAtExpression()
2798 case tok::minus: Symbol = "-"; break; in ParseObjCAtExpression()
2799 case tok::plus: Symbol = "+"; break; in ParseObjCAtExpression()
2821 case tok::string_literal: // primary-expression: string-literal in ParseObjCAtExpression()
2822 case tok::wide_string_literal: in ParseObjCAtExpression()
2825 case tok::char_constant: in ParseObjCAtExpression()
2828 case tok::numeric_constant: in ParseObjCAtExpression()
2831 case tok::kw_true: // Objective-C++, etc. in ParseObjCAtExpression()
2832 case tok::kw___objc_yes: // c/c++/objc/objc++ __objc_yes in ParseObjCAtExpression()
2834 case tok::kw_false: // Objective-C++, etc. in ParseObjCAtExpression()
2835 case tok::kw___objc_no: // c/c++/objc/objc++ __objc_no in ParseObjCAtExpression()
2838 case tok::l_square: in ParseObjCAtExpression()
2842 case tok::l_brace: in ParseObjCAtExpression()
2846 case tok::l_paren: in ParseObjCAtExpression()
2855 case tok::objc_encode: in ParseObjCAtExpression()
2857 case tok::objc_protocol: in ParseObjCAtExpression()
2859 case tok::objc_selector: in ParseObjCAtExpression()
2863 if (GetLookAheadToken(1).is(tok::l_brace)) { in ParseObjCAtExpression()
2907 if (Tok.isOneOf(tok::identifier, tok::coloncolon, tok::kw_typename, in ParseObjCXXMessageReceiver()
2908 tok::annot_cxxscope)) in ParseObjCXXMessageReceiver()
2933 if (Tok.is(tok::l_paren)) { in ParseObjCXXMessageReceiver()
2978 assert(Tok.is(tok::l_square) && getLangOpts().ObjC1 && in isSimpleObjCMessageExpression()
2980 return GetLookAheadToken(1).is(tok::identifier) && in isSimpleObjCMessageExpression()
2981 GetLookAheadToken(2).is(tok::identifier); in isSimpleObjCMessageExpression()
2985 if (!getLangOpts().ObjC1 || !NextToken().is(tok::identifier) || in isStartOfObjCClassMessageMissingOpenBracket()
2991 if (Tok.is(tok::annot_typename)) in isStartOfObjCClassMessageMissingOpenBracket()
2993 else if (Tok.is(tok::identifier)) in isStartOfObjCClassMessageMissingOpenBracket()
3001 if (AfterNext.isOneOf(tok::colon, tok::r_square)) { in isStartOfObjCClassMessageMissingOpenBracket()
3002 if (Tok.is(tok::identifier)) in isStartOfObjCClassMessageMissingOpenBracket()
3005 return Tok.is(tok::annot_typename); in isStartOfObjCClassMessageMissingOpenBracket()
3022 assert(Tok.is(tok::l_square) && "'[' expected"); in ParseObjCMessageExpression()
3025 if (Tok.is(tok::code_completion)) { in ParseObjCMessageExpression()
3040 if (Tok.is(tok::identifier) && Tok.getIdentifierInfo() == Ident_super && in ParseObjCMessageExpression()
3041 NextToken().isNot(tok::period) && getCurScope()->isInObjcMethodScope()) in ParseObjCMessageExpression()
3049 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCMessageExpression()
3062 if (Tok.is(tok::identifier)) { in ParseObjCMessageExpression()
3068 NextToken().is(tok::period), in ParseObjCMessageExpression()
3076 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCMessageExpression()
3083 if (Tok.is(tok::less)) { in ParseObjCMessageExpression()
3090 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCMessageExpression()
3109 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCMessageExpression()
3162 if (Tok.is(tok::code_completion)) { in ParseObjCMessageExpressionBody()
3184 if (Tok.is(tok::colon)) { in ParseObjCMessageExpressionBody()
3190 if (ExpectAndConsume(tok::colon)) { in ParseObjCMessageExpressionBody()
3194 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCMessageExpressionBody()
3200 if (Tok.is(tok::code_completion)) { in ParseObjCMessageExpressionBody()
3219 if (getLangOpts().CPlusPlus11 && Tok.is(tok::l_brace)) { in ParseObjCMessageExpressionBody()
3230 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCMessageExpressionBody()
3238 if (Tok.is(tok::code_completion)) { in ParseObjCMessageExpressionBody()
3257 if (!selIdent && Tok.isNot(tok::colon)) in ParseObjCMessageExpressionBody()
3262 while (Tok.is(tok::comma)) { in ParseObjCMessageExpressionBody()
3266 if (Tok.is(tok::colon)) in ParseObjCMessageExpressionBody()
3269 if (Tok.is(tok::colon)) { in ParseObjCMessageExpressionBody()
3276 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCMessageExpressionBody()
3284 Diag(Tok, diag::err_expected) << tok::identifier; // missing selector name. in ParseObjCMessageExpressionBody()
3289 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCMessageExpressionBody()
3293 if (Tok.isNot(tok::r_square)) { in ParseObjCMessageExpressionBody()
3295 << (Tok.is(tok::identifier) ? tok::colon : tok::r_square); in ParseObjCMessageExpressionBody()
3299 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCMessageExpressionBody()
3334 while (Tok.is(tok::at)) { in ParseObjCStringLiteral()
3393 if (Tok.isNot(tok::l_paren)) in ParseObjCBoxedExpr()
3396 BalancedDelimiterTracker T(*this, tok::l_paren); in ParseObjCBoxedExpr()
3417 while (Tok.isNot(tok::r_square)) { in ParseObjCArrayLiteral()
3424 SkipUntil(tok::r_square, StopAtSemi); in ParseObjCArrayLiteral()
3429 if (Tok.is(tok::ellipsis)) in ParseObjCArrayLiteral()
3436 if (Tok.is(tok::comma)) in ParseObjCArrayLiteral()
3438 else if (Tok.isNot(tok::r_square)) in ParseObjCArrayLiteral()
3439 return ExprError(Diag(Tok, diag::err_expected_either) << tok::r_square in ParseObjCArrayLiteral()
3440 << tok::comma); in ParseObjCArrayLiteral()
3450 while (Tok.isNot(tok::r_brace)) { in ParseObjCDictionaryLiteral()
3460 SkipUntil(tok::r_brace, StopAtSemi); in ParseObjCDictionaryLiteral()
3465 if (ExpectAndConsume(tok::colon)) { in ParseObjCDictionaryLiteral()
3466 SkipUntil(tok::r_brace, StopAtSemi); in ParseObjCDictionaryLiteral()
3475 SkipUntil(tok::r_brace, StopAtSemi); in ParseObjCDictionaryLiteral()
3482 TryConsumeToken(tok::ellipsis, EllipsisLoc); in ParseObjCDictionaryLiteral()
3491 if (!TryConsumeToken(tok::comma) && Tok.isNot(tok::r_brace)) in ParseObjCDictionaryLiteral()
3492 return ExprError(Diag(Tok, diag::err_expected_either) << tok::r_brace in ParseObjCDictionaryLiteral()
3493 << tok::comma); in ParseObjCDictionaryLiteral()
3506 assert(Tok.isObjCAtKeyword(tok::objc_encode) && "Not an @encode expression!"); in ParseObjCEncodeExpression()
3510 if (Tok.isNot(tok::l_paren)) in ParseObjCEncodeExpression()
3513 BalancedDelimiterTracker T(*this, tok::l_paren); in ParseObjCEncodeExpression()
3533 if (Tok.isNot(tok::l_paren)) in ParseObjCProtocolExpression()
3536 BalancedDelimiterTracker T(*this, tok::l_paren); in ParseObjCProtocolExpression()
3539 if (Tok.isNot(tok::identifier)) in ParseObjCProtocolExpression()
3540 return ExprError(Diag(Tok, diag::err_expected) << tok::identifier); in ParseObjCProtocolExpression()
3557 if (Tok.isNot(tok::l_paren)) in ParseObjCSelectorExpression()
3563 BalancedDelimiterTracker T(*this, tok::l_paren); in ParseObjCSelectorExpression()
3565 bool HasOptionalParen = Tok.is(tok::l_paren); in ParseObjCSelectorExpression()
3569 if (Tok.is(tok::code_completion)) { in ParseObjCSelectorExpression()
3577 Tok.isNot(tok::colon) && Tok.isNot(tok::coloncolon)) in ParseObjCSelectorExpression()
3578 return ExprError(Diag(Tok, diag::err_expected) << tok::identifier); in ParseObjCSelectorExpression()
3583 if (Tok.isNot(tok::r_paren)) { in ParseObjCSelectorExpression()
3585 if (TryConsumeToken(tok::coloncolon)) { // Handle :: in C++. in ParseObjCSelectorExpression()
3588 } else if (ExpectAndConsume(tok::colon)) // Otherwise expect ':'. in ParseObjCSelectorExpression()
3592 if (Tok.is(tok::r_paren)) in ParseObjCSelectorExpression()
3595 if (Tok.is(tok::code_completion)) { in ParseObjCSelectorExpression()
3605 if (!SelIdent && Tok.isNot(tok::colon) && Tok.isNot(tok::coloncolon)) in ParseObjCSelectorExpression()
3609 if (HasOptionalParen && Tok.is(tok::r_paren)) in ParseObjCSelectorExpression()
3640 assert(Tok.isOneOf(tok::l_brace, tok::kw_try, tok::colon) && in ParseLexedObjCMethodDefs()
3654 if (Tok.is(tok::kw_try)) in ParseLexedObjCMethodDefs()
3657 if (Tok.is(tok::colon)) in ParseLexedObjCMethodDefs()
3672 while (Tok.getLocation() != OrigLoc && Tok.isNot(tok::eof)) in ParseLexedObjCMethodDefs()