[cfe-commits] r45511 - in /cfe/trunk: AST/Stmt.cpp AST/StmtPrinter.cpp AST/StmtSerialization.cpp Parse/ParseObjc.cpp Parse/Parser.cpp include/clang/AST/Stmt.h include/clang/AST/StmtNodes.def include/clang/Parse/Parser.h

fjahanian fjahanian at apple.com
Fri Jan 4 15:05:07 PST 2008


All done.

- Fariborz

On Jan 4, 2008, at 2:51 PM, Chris Lattner wrote:

> On Jan 2, 2008, at 2:54 PM, Fariborz Jahanian wrote:
>> URL: http://llvm.org/viewvc/llvm-project?rev=45511&view=rev
>> Log:
>> New declarations/defs for Objc2's foreach-statement. This is work  
>> in progress.
>
> Nice!
>
> Some really minor thoughts:
>
>> ===================================================================== 
>> =========
>> --- cfe/trunk/Parse/ParseObjc.cpp (original)
>> +++ cfe/trunk/Parse/ParseObjc.cpp Wed Jan  2 16:54:34 2008
>> @@ -491,6 +491,16 @@
>>   return false;
>> }
>>
>> +///  objc-for-collection-in: 'in'
>> +///
>> +bool Parser::isObjCForCollectionInKW() {
>
> I think this method should be const.  Also, would something like  
> "isTokIdentifier_in()" be a better name?  I think it would be best  
> to get "Tok" and "in" in there somehow that makes it more clear  
> what this does.  The fact that this is part of a "for collection"  
> statement isn't really important, it just returns true if the token  
> is an identifier and if it is 'in'.
>
>>
>> +  if (Tok.is(tok::identifier)) {
>> +    const IdentifierInfo *II = Tok.getIdentifierInfo();
>> +    return II == ObjCForCollectionInKW;
>> +  }
>
> Is this more clear than just:
>   if (Tok.is(tok::identifier) &&
>       Tok.getIdentifierInfo() == ObjCForCollectionInKW)
>     return true;
>
> ?
>
>> +/// ObjcForCollectionStmt - This represents Objective-c's  
>> collection statement;
>> +/// represented as 'for (element 'in' collection-expression)' stmt.
>> +///
>> +class ObjcForCollectionStmt : public Stmt {
>> +  enum { ELEM, COLLECTION, BODY, END_EXPR };
>> +  Stmt* SubExprs[END_EXPR]; // SubExprs[ELEM] is an expression or  
>> declstmt.
>> +  SourceLocation ForCollectionLoc;
>
> A really minor nit-pick is that this should probably just be  
> "ForLoc", because it's the location of the 'for' token, not the  
> location of the whole statement.
>
> Otherwise, looking great,
>
> -Chris




More information about the cfe-commits mailing list