C++11: first set of changes for decltype.

Change-Id: I49d6ff7eb1805cd07bdfcb27bb37d4c6cadc9115
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
Erik Verbruggen
2012-02-10 14:41:58 +01:00
parent 07d335b215
commit 3f5dc36a53
20 changed files with 181 additions and 3 deletions

View File

@@ -156,6 +156,7 @@ public:
virtual DeclarationStatementAST *asDeclarationStatement() { return 0; }
virtual DeclaratorAST *asDeclarator() { return 0; }
virtual DeclaratorIdAST *asDeclaratorId() { return 0; }
virtual DecltypeSpecifierAST *asDecltypeSpecifier() { return 0; }
virtual DeleteExpressionAST *asDeleteExpression() { return 0; }
virtual DestructorNameAST *asDestructorName() { return 0; }
virtual DoStatementAST *asDoStatement() { return 0; }
@@ -542,6 +543,34 @@ protected:
virtual bool match0(AST *, ASTMatcher *);
};
class CPLUSPLUS_EXPORT DecltypeSpecifierAST: public SpecifierAST
{
public:
unsigned decltype_token;
unsigned lparen_token;
ExpressionAST *expression;
unsigned rparen_token;
public:
DecltypeSpecifierAST()
: decltype_token(0)
, lparen_token(0)
, expression(0)
, rparen_token(0)
{}
virtual DecltypeSpecifierAST *asDecltypeSpecifier() { return this; }
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
virtual DecltypeSpecifierAST *clone(MemoryPool *pool) const;
protected:
virtual void accept0(ASTVisitor *visitor);
virtual bool match0(AST *, ASTMatcher *);
};
class CPLUSPLUS_EXPORT DeclaratorAST: public AST
{
public: