Douglas Gregor wrote: > > On Dec 2, 2008, at 8:35 AM, Sebastian Redl wrote: > >> + case tok::coloncolon: // [C++] new-expression or [C++] >> delete-expression >> + if (NextToken().is(tok::kw_new)) >> + return ParseCXXNewExpression(); >> + else >> + return ParseCXXDeleteExpression(); >> + > > It's worth a comment here noting that '::' followed by anything but > "new" or "delete" will be resolved to a scope-resolution or qualified > typename token. True. >> >> + // Don't parse ::new and ::delete as scope specifiers. It would >> only make >> + // things a lot more complicated. >> + if (Tok.is(tok::coloncolon) && (NextToken().is(tok::kw_new) || >> + NextToken().is(tok::kw_delete))) >> + return false; > > It's not that parsing ::new and ::delete here would be more > complicated, it's that they aren't nested-name-specifiers at all, right? The comment is poorly formulated. I mean to say that the :: of ::new and ::delete shouldn't be turned into a scope annotation token for the global scope (even though it is a scope identifier, conceptually), because that would make it more complicated. (I'd later have to verify that it indeed identifies the global scope and not something else.)
Sebastian _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
