C++11: Allow for typename Foo<T>{}, Foo{} and int{}.

As a postfix expression.

Change-Id: I65cae0571080a9fb699af61c661328ef06f97890
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
Christian Kamm
2012-09-19 10:26:07 +02:00
committed by hjk
parent 2aa27e6d22
commit 83da5f68be
12 changed files with 65 additions and 116 deletions

View File

@@ -3924,26 +3924,18 @@ unsigned TypeConstructorCallAST::firstToken() const
if (type_specifier_list)
if (unsigned candidate = type_specifier_list->firstToken())
return candidate;
if (lparen_token)
return lparen_token;
if (expression_list)
if (unsigned candidate = expression_list->firstToken())
if (expression)
if (unsigned candidate = expression->firstToken())
return candidate;
if (rparen_token)
return rparen_token;
return 0;
}
/** \generated */
unsigned TypeConstructorCallAST::lastToken() const
{
if (rparen_token)
return rparen_token + 1;
if (expression_list)
if (unsigned candidate = expression_list->lastToken())
if (expression)
if (unsigned candidate = expression->lastToken())
return candidate;
if (lparen_token)
return lparen_token + 1;
if (type_specifier_list)
if (unsigned candidate = type_specifier_list->lastToken())
return candidate;
@@ -4012,26 +4004,18 @@ unsigned TypenameCallExpressionAST::firstToken() const
if (name)
if (unsigned candidate = name->firstToken())
return candidate;
if (lparen_token)
return lparen_token;
if (expression_list)
if (unsigned candidate = expression_list->firstToken())
if (expression)
if (unsigned candidate = expression->firstToken())
return candidate;
if (rparen_token)
return rparen_token;
return 0;
}
/** \generated */
unsigned TypenameCallExpressionAST::lastToken() const
{
if (rparen_token)
return rparen_token + 1;
if (expression_list)
if (unsigned candidate = expression_list->lastToken())
if (expression)
if (unsigned candidate = expression->lastToken())
return candidate;
if (lparen_token)
return lparen_token + 1;
if (name)
if (unsigned candidate = name->lastToken())
return candidate;