Factor a complex predicate out to a helper method.

llvm-svn: 46365
This commit is contained in:
Chris Lattner 2008-01-25 19:25:00 +00:00
parent de001c186e
commit e10c6da41e
2 changed files with 12 additions and 3 deletions

View File

@ -1267,9 +1267,7 @@ Parser::ExprResult Parser::ParseObjCMessageExpression() {
SourceLocation LBracLoc = ConsumeBracket(); // consume '['
// Parse receiver
if (Tok.is(tok::identifier) &&
(Actions.isTypeName(*Tok.getIdentifierInfo(), CurScope)
|| Tok.isNamedIdentifier("super"))) {
if (isTokObjCMessageIdentifierReceiver()) {
IdentifierInfo *ReceiverName = Tok.getIdentifierInfo();
ConsumeToken();
return ParseObjCMessageExpressionBody(LBracLoc, ReceiverName, 0);

View File

@ -362,6 +362,17 @@ private:
//===--------------------------------------------------------------------===//
// Objective-C Expressions
bool isTokObjCMessageIdentifierReceiver() const {
if (!Tok.is(tok::identifier))
return false;
if (Actions.isTypeName(*Tok.getIdentifierInfo(), CurScope))
return true;
return Tok.isNamedIdentifier("super");
}
ExprResult ParseObjCAtExpression(SourceLocation AtLocation);
ExprResult ParseObjCStringLiteral(SourceLocation AtLoc);
ExprResult ParseObjCEncodeExpression(SourceLocation AtLoc);