forked from qt-creator/qt-creator
C++11: handle noexcept specifications.
Change-Id: I7da3affea2758b2e01124105e2521e1f2c5f6678 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
47
src/libs/3rdparty/cplusplus/AST.h
vendored
47
src/libs/3rdparty/cplusplus/AST.h
vendored
@@ -159,6 +159,7 @@ public:
|
||||
virtual DeleteExpressionAST *asDeleteExpression() { return 0; }
|
||||
virtual DestructorNameAST *asDestructorName() { return 0; }
|
||||
virtual DoStatementAST *asDoStatement() { return 0; }
|
||||
virtual DynamicExceptionSpecificationAST *asDynamicExceptionSpecification() { return 0; }
|
||||
virtual ElaboratedTypeSpecifierAST *asElaboratedTypeSpecifier() { return 0; }
|
||||
virtual EmptyDeclarationAST *asEmptyDeclaration() { return 0; }
|
||||
virtual EnumSpecifierAST *asEnumSpecifier() { return 0; }
|
||||
@@ -196,6 +197,7 @@ public:
|
||||
virtual NewInitializerAST *asNewInitializer() { return 0; }
|
||||
virtual NewPlacementAST *asNewPlacement() { return 0; }
|
||||
virtual NewTypeIdAST *asNewTypeId() { return 0; }
|
||||
virtual NoExceptSpecificationAST *asNoExceptSpecification() { return 0; }
|
||||
virtual NumericLiteralAST *asNumericLiteral() { return 0; }
|
||||
virtual ObjCClassDeclarationAST *asObjCClassDeclaration() { return 0; }
|
||||
virtual ObjCClassForwardDeclarationAST *asObjCClassForwardDeclaration() { return 0; }
|
||||
@@ -1681,6 +1683,17 @@ protected:
|
||||
|
||||
class CPLUSPLUS_EXPORT ExceptionSpecificationAST: public AST
|
||||
{
|
||||
public:
|
||||
ExceptionSpecificationAST()
|
||||
{}
|
||||
|
||||
virtual ExceptionSpecificationAST *asExceptionSpecification() { return this; }
|
||||
|
||||
virtual ExceptionSpecificationAST *clone(MemoryPool *pool) const = 0;
|
||||
};
|
||||
|
||||
class CPLUSPLUS_EXPORT DynamicExceptionSpecificationAST: public ExceptionSpecificationAST
|
||||
{
|
||||
public:
|
||||
unsigned throw_token;
|
||||
unsigned lparen_token;
|
||||
@@ -1689,7 +1702,7 @@ public:
|
||||
unsigned rparen_token;
|
||||
|
||||
public:
|
||||
ExceptionSpecificationAST()
|
||||
DynamicExceptionSpecificationAST()
|
||||
: throw_token(0)
|
||||
, lparen_token(0)
|
||||
, dot_dot_dot_token(0)
|
||||
@@ -1697,12 +1710,40 @@ public:
|
||||
, rparen_token(0)
|
||||
{}
|
||||
|
||||
virtual ExceptionSpecificationAST *asExceptionSpecification() { return this; }
|
||||
virtual DynamicExceptionSpecificationAST *asDynamicExceptionSpecification() { return this; }
|
||||
|
||||
virtual unsigned firstToken() const;
|
||||
virtual unsigned lastToken() const;
|
||||
|
||||
virtual ExceptionSpecificationAST *clone(MemoryPool *pool) const;
|
||||
virtual DynamicExceptionSpecificationAST *clone(MemoryPool *pool) const;
|
||||
|
||||
protected:
|
||||
virtual void accept0(ASTVisitor *visitor);
|
||||
virtual bool match0(AST *, ASTMatcher *);
|
||||
};
|
||||
|
||||
class CPLUSPLUS_EXPORT NoExceptSpecificationAST: public ExceptionSpecificationAST
|
||||
{
|
||||
public:
|
||||
unsigned noexcept_token;
|
||||
unsigned lparen_token;
|
||||
ExpressionAST *expression;
|
||||
unsigned rparen_token;
|
||||
|
||||
public:
|
||||
NoExceptSpecificationAST()
|
||||
: noexcept_token(0)
|
||||
, lparen_token(0)
|
||||
, expression(0)
|
||||
, rparen_token(0)
|
||||
{}
|
||||
|
||||
virtual NoExceptSpecificationAST *asNoExceptSpecification() { return this; }
|
||||
|
||||
virtual unsigned firstToken() const;
|
||||
virtual unsigned lastToken() const;
|
||||
|
||||
virtual NoExceptSpecificationAST *clone(MemoryPool *pool) const;
|
||||
|
||||
protected:
|
||||
virtual void accept0(ASTVisitor *visitor);
|
||||
|
||||
Reference in New Issue
Block a user