forked from qt-creator/qt-creator
C++11: Parse alias declarations.
The parser no longer fails declarations like: using Foo = std::vector<int>::iterator; Change-Id: Ib3a552ebbe0147fa138db6448a52cdba8f9b9207 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
31
src/libs/3rdparty/cplusplus/AST.h
vendored
31
src/libs/3rdparty/cplusplus/AST.h
vendored
@@ -125,6 +125,7 @@ public:
|
||||
virtual AST *clone(MemoryPool *pool) const = 0;
|
||||
|
||||
virtual AccessDeclarationAST *asAccessDeclaration() { return 0; }
|
||||
virtual AliasDeclarationAST *asAliasDeclaration() { return 0; }
|
||||
virtual AlignofExpressionAST *asAlignofExpression() { return 0; }
|
||||
virtual ArrayAccessAST *asArrayAccess() { return 0; }
|
||||
virtual ArrayDeclaratorAST *asArrayDeclarator() { return 0; }
|
||||
@@ -2400,6 +2401,36 @@ protected:
|
||||
virtual bool match0(AST *, ASTMatcher *);
|
||||
};
|
||||
|
||||
class CPLUSPLUS_EXPORT AliasDeclarationAST: public DeclarationAST
|
||||
{
|
||||
public:
|
||||
unsigned using_token;
|
||||
unsigned identifier_token;
|
||||
unsigned equal_token;
|
||||
TypeIdAST *typeId;
|
||||
unsigned semicolon_token;
|
||||
|
||||
public:
|
||||
AliasDeclarationAST()
|
||||
: using_token(0)
|
||||
, identifier_token(0)
|
||||
, equal_token(0)
|
||||
, typeId(0)
|
||||
, semicolon_token(0)
|
||||
{}
|
||||
|
||||
virtual AliasDeclarationAST *asAliasDeclaration() { return this; }
|
||||
|
||||
virtual unsigned firstToken() const;
|
||||
virtual unsigned lastToken() const;
|
||||
|
||||
virtual AliasDeclarationAST *clone(MemoryPool *pool) const;
|
||||
|
||||
protected:
|
||||
virtual void accept0(ASTVisitor *visitor);
|
||||
virtual bool match0(AST *, ASTMatcher *);
|
||||
};
|
||||
|
||||
class CPLUSPLUS_EXPORT ExpressionListParenAST: public ExpressionAST
|
||||
{
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user