diff options
Diffstat (limited to 'src/libs/3rdparty/cplusplus/AST.h')
-rw-r--r-- | src/libs/3rdparty/cplusplus/AST.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/libs/3rdparty/cplusplus/AST.h b/src/libs/3rdparty/cplusplus/AST.h index c6939876e6..f02cce10da 100644 --- a/src/libs/3rdparty/cplusplus/AST.h +++ b/src/libs/3rdparty/cplusplus/AST.h @@ -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: |