From 6e3e293e535b368ccae8179bd32f9b1d0d80718a Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Tue, 10 Nov 2009 12:34:29 +0100 Subject: [PATCH] Removed DeclaratorListAST Done with Erik Verbruggen --- src/plugins/cpptools/cppcodecompletion.cpp | 4 ++-- src/shared/cplusplus/AST.cpp | 19 ------------------- src/shared/cplusplus/AST.h | 16 ---------------- src/shared/cplusplus/ASTVisit.cpp | 8 -------- src/shared/cplusplus/ASTVisitor.h | 2 -- src/shared/cplusplus/ASTfwd.h | 2 +- src/shared/cplusplus/CheckDeclaration.cpp | 12 ++++++------ src/shared/cplusplus/Parser.cpp | 10 +++++----- 8 files changed, 14 insertions(+), 59 deletions(-) diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index bb2d26780d5..a221f8a25b2 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -1072,8 +1072,8 @@ bool CppCodeCompletion::completeConstructorOrFunction(const QList<TypeOfExpressi if (doc->parse(Document::ParseDeclaration)) { doc->check(); if (SimpleDeclarationAST *sd = doc->translationUnit()->ast()->asSimpleDeclaration()) { - if (sd->declarators->declarator->postfix_declarators - && sd->declarators->declarator->postfix_declarators->asFunctionDeclarator()) { + if (sd->declarators->value->postfix_declarators + && sd->declarators->value->postfix_declarators->asFunctionDeclarator()) { autocompleteSignature = true; } } diff --git a/src/shared/cplusplus/AST.cpp b/src/shared/cplusplus/AST.cpp index 44d2b978ff9..db6a31fe2a4 100644 --- a/src/shared/cplusplus/AST.cpp +++ b/src/shared/cplusplus/AST.cpp @@ -608,25 +608,6 @@ unsigned DeclaratorIdAST::lastToken() const return name->lastToken(); } - -unsigned DeclaratorListAST::firstToken() const -{ - return declarator->firstToken(); -} - -unsigned DeclaratorListAST::lastToken() const -{ - for (const DeclaratorListAST *it = this; it; it = it->next) { - if (! it->next) { - if (it->declarator) - return it->declarator->lastToken(); - } - } - - return 0; -} - - unsigned DeleteExpressionAST::firstToken() const { if (scope_token) diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h index a3686849b4e..04709031add 100644 --- a/src/shared/cplusplus/AST.h +++ b/src/shared/cplusplus/AST.h @@ -786,22 +786,6 @@ protected: virtual void accept0(ASTVisitor *visitor); }; -class CPLUSPLUS_EXPORT DeclaratorListAST: public AST -{ -public: - DeclaratorAST *declarator; - DeclaratorListAST *next; - -public: - virtual DeclaratorListAST *asDeclaratorList() { return this; } - - virtual unsigned firstToken() const; - virtual unsigned lastToken() const; - -protected: - virtual void accept0(ASTVisitor *visitor); -}; - class CPLUSPLUS_EXPORT DeleteExpressionAST: public ExpressionAST { public: diff --git a/src/shared/cplusplus/ASTVisit.cpp b/src/shared/cplusplus/ASTVisit.cpp index f3239d356a8..605e1538de4 100644 --- a/src/shared/cplusplus/ASTVisit.cpp +++ b/src/shared/cplusplus/ASTVisit.cpp @@ -271,14 +271,6 @@ void ArrayDeclaratorAST::accept0(ASTVisitor *visitor) visitor->endVisit(this); } -void DeclaratorListAST::accept0(ASTVisitor *visitor) -{ - if (visitor->visit(this)) { - accept(declarator, visitor); - } - visitor->endVisit(this); -} - void DeleteExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { diff --git a/src/shared/cplusplus/ASTVisitor.h b/src/shared/cplusplus/ASTVisitor.h index 41fcc38151a..29703a44a7e 100644 --- a/src/shared/cplusplus/ASTVisitor.h +++ b/src/shared/cplusplus/ASTVisitor.h @@ -121,7 +121,6 @@ public: virtual bool visit(DeclaratorAST *) { return true; } virtual bool visit(DeclarationStatementAST *) { return true; } virtual bool visit(DeclaratorIdAST *) { return true; } - virtual bool visit(DeclaratorListAST *) { return true; } virtual bool visit(DeleteExpressionAST *) { return true; } virtual bool visit(DestructorNameAST *) { return true; } virtual bool visit(DoStatementAST *) { return true; } @@ -254,7 +253,6 @@ public: virtual void endVisit(DeclaratorAST *) { } virtual void endVisit(DeclarationStatementAST *) { } virtual void endVisit(DeclaratorIdAST *) { } - virtual void endVisit(DeclaratorListAST *) { } virtual void endVisit(DeleteExpressionAST *) { } virtual void endVisit(DestructorNameAST *) { } virtual void endVisit(DoStatementAST *) { } diff --git a/src/shared/cplusplus/ASTfwd.h b/src/shared/cplusplus/ASTfwd.h index 61d7cc1aac7..906e188891d 100644 --- a/src/shared/cplusplus/ASTfwd.h +++ b/src/shared/cplusplus/ASTfwd.h @@ -87,7 +87,6 @@ class DeclarationAST; class DeclarationStatementAST; class DeclaratorAST; class DeclaratorIdAST; -class DeclaratorListAST; class DeleteExpressionAST; class DestructorNameAST; class DoStatementAST; @@ -202,6 +201,7 @@ class WhileStatementAST; typedef List<ExpressionAST *> ExpressionListAST; typedef List<DeclarationAST *> DeclarationListAST; typedef List<StatementAST *> StatementListAST; +typedef List<DeclaratorAST *> DeclaratorListAST; } // end of namespace CPlusPlus diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp index eb82e6331f5..7adcde83bc0 100644 --- a/src/shared/cplusplus/CheckDeclaration.cpp +++ b/src/shared/cplusplus/CheckDeclaration.cpp @@ -173,13 +173,13 @@ bool CheckDeclaration::visit(SimpleDeclarationAST *ast) List<Declaration *> **decl_it = &ast->symbols; for (DeclaratorListAST *it = ast->declarators; it; it = it->next) { Name *name = 0; - FullySpecifiedType declTy = semantic()->check(it->declarator, qualTy, + FullySpecifiedType declTy = semantic()->check(it->value, qualTy, _scope, &name); - unsigned location = locationOfDeclaratorId(it->declarator); + unsigned location = locationOfDeclaratorId(it->value); if (! location) { - if (it->declarator) - location = it->declarator->firstToken(); + if (it->value) + location = it->value->firstToken(); else location = ast->firstToken(); } @@ -226,8 +226,8 @@ bool CheckDeclaration::visit(SimpleDeclarationAST *ast) else if (ty.isTypedef()) symbol->setStorage(Symbol::Typedef); - if (it->declarator && it->declarator->initializer) { - FullySpecifiedType initTy = semantic()->check(it->declarator->initializer, _scope); + if (it->value && it->value->initializer) { + FullySpecifiedType initTy = semantic()->check(it->value->initializer, _scope); } *decl_it = new (translationUnit()->memoryPool()) List<Declaration *>(); diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 1f121631a93..6a4222024c1 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -2158,7 +2158,7 @@ bool Parser::isPointerDeclaration(DeclarationStatementAST *ast) const if (SpecifierAST *spec = declaration->decl_specifier_seq) { if (spec->asNamedTypeSpecifier() && ! spec->next) { if (DeclaratorListAST *declarators = declaration->declarators) { - if (DeclaratorAST *declarator = declarators->declarator) { + if (DeclaratorAST *declarator = declarators->value) { if (declarator->ptr_operators && declarator->equals_token && declarator->initializer) { return true; } @@ -2180,7 +2180,7 @@ bool Parser::maybeAmbiguousStatement(DeclarationStatementAST *ast) const if (SpecifierAST *spec = declaration->decl_specifier_seq) { if (spec->asNamedTypeSpecifier() && ! spec->next) { if (DeclaratorListAST *declarators = declaration->declarators) { - if (DeclaratorAST *declarator = declarators->declarator) { + if (DeclaratorAST *declarator = declarators->value) { if (declarator->core_declarator && declarator->core_declarator->asNestedDeclarator()) { // recognized name(id-expression) @@ -2192,7 +2192,7 @@ bool Parser::maybeAmbiguousStatement(DeclarationStatementAST *ast) const } else if (DeclaratorListAST *declarators = declaration->declarators) { // no decl_specifiers... - if (DeclaratorAST *declarator = declarators->declarator) { + if (DeclaratorAST *declarator = declarators->value) { if (declarator->postfix_declarators && declarator->postfix_declarators->asFunctionDeclarator() && ! declarator->initializer) { return false; @@ -2849,7 +2849,7 @@ bool Parser::parseSimpleDeclaration(DeclarationAST *&node, if (declarator) { *declarator_ptr = new (_pool) DeclaratorListAST; - (*declarator_ptr)->declarator = declarator; + (*declarator_ptr)->value = declarator; declarator_ptr = &(*declarator_ptr)->next; } @@ -2860,7 +2860,7 @@ bool Parser::parseSimpleDeclaration(DeclarationAST *&node, declarator = 0; if (parseInitDeclarator(declarator, acceptStructDeclarator)) { *declarator_ptr = new (_pool) DeclaratorListAST; - (*declarator_ptr)->declarator = declarator; + (*declarator_ptr)->value = declarator; declarator_ptr = &(*declarator_ptr)->next; } } -- GitLab