From 688d382ad947df8f4406d10846da0751839d61d1 Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Thu, 26 Aug 2010 15:55:31 +0200
Subject: [PATCH] Some cleanup in the C++ AST.

---
 src/libs/cplusplus/FindUsages.cpp        | 10 +++----
 src/shared/cplusplus/AST.cpp             | 32 ++++++++++-----------
 src/shared/cplusplus/AST.h               | 22 +++++++--------
 src/shared/cplusplus/ASTClone.cpp        | 14 ++++-----
 src/shared/cplusplus/ASTMatcher.cpp      | 24 ++++++++--------
 src/shared/cplusplus/ASTPatternBuilder.h |  4 +--
 src/shared/cplusplus/ASTVisit.cpp        |  8 +++---
 src/shared/cplusplus/ASTfwd.h            |  1 +
 src/shared/cplusplus/Bind.cpp            | 10 +++----
 src/shared/cplusplus/Parser.cpp          | 36 +++++++++++++-----------
 src/shared/cplusplus/Parser.h            |  4 +--
 tests/auto/cplusplus/ast/tst_ast.cpp     |  6 ++--
 tests/manual/cplusplus-dump/dumpers.inc  | 10 +++----
 13 files changed, 92 insertions(+), 89 deletions(-)

diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp
index 905d9be4fc7..e78ae898872 100644
--- a/src/libs/cplusplus/FindUsages.cpp
+++ b/src/libs/cplusplus/FindUsages.cpp
@@ -647,7 +647,7 @@ void FindUsages::parameterDeclarationClause(ParameterDeclarationClauseAST *ast)
     if (! ast)
         return;
 
-    for (DeclarationListAST *it = ast->parameter_declaration_list; it; it = it->next) {
+    for (ParameterDeclarationListAST *it = ast->parameter_declaration_list; it; it = it->next) {
         this->declaration(it->value);
     }
     // unsigned dot_dot_dot_token = ast->dot_dot_dot_token;
@@ -912,7 +912,7 @@ void FindUsages::trailingReturnType(TrailingReturnTypeAST *ast)
     for (SpecifierListAST *it = ast->attributes; it; it = it->next) {
         this->specifier(it->value);
     }
-    for (SpecifierListAST *it = ast->type_specifiers; it; it = it->next) {
+    for (SpecifierListAST *it = ast->type_specifier_list; it; it = it->next) {
         this->specifier(it->value);
     }
     this->declarator(ast->declarator);
@@ -1474,7 +1474,7 @@ bool FindUsages::visit(QtPrivateSlotAST *ast)
     // unsigned dptr_lparen_token = ast->dptr_lparen_token;
     // unsigned dptr_rparen_token = ast->dptr_rparen_token;
     // unsigned comma_token = ast->comma_token;
-    for (SpecifierListAST *it = ast->type_specifiers; it; it = it->next) {
+    for (SpecifierListAST *it = ast->type_specifier_list; it; it = it->next) {
         this->specifier(it->value);
     }
     this->declarator(ast->declarator);
@@ -1488,7 +1488,7 @@ bool FindUsages::visit(QtPropertyDeclarationAST *ast)
     // unsigned lparen_token = ast->lparen_token;
     this->expression(ast->type_id);
     /*const Name *property_name =*/ this->name(ast->property_name);
-    for (QtPropertyDeclarationItemListAST *it = ast->property_declaration_items; it; it = it->next) {
+    for (QtPropertyDeclarationItemListAST *it = ast->property_declaration_item_list; it; it = it->next) {
         this->qtPropertyDeclarationItem(it->value);
     }
     // unsigned rparen_token = ast->rparen_token;
@@ -2126,7 +2126,7 @@ bool FindUsages::visit(NestedDeclaratorAST *ast)
 bool FindUsages::visit(FunctionDeclaratorAST *ast)
 {
     // unsigned lparen_token = ast->lparen_token;
-    this->parameterDeclarationClause(ast->parameters);
+    this->parameterDeclarationClause(ast->parameter_declaration_clause);
     // unsigned rparen_token = ast->rparen_token;
     for (SpecifierListAST *it = ast->cv_qualifier_list; it; it = it->next) {
         this->specifier(it->value);
diff --git a/src/shared/cplusplus/AST.cpp b/src/shared/cplusplus/AST.cpp
index 80137c3260c..8430d0b1e31 100644
--- a/src/shared/cplusplus/AST.cpp
+++ b/src/shared/cplusplus/AST.cpp
@@ -1379,8 +1379,8 @@ unsigned FunctionDeclaratorAST::firstToken() const
 {
     if (lparen_token)
         return lparen_token;
-    if (parameters)
-        if (unsigned candidate = parameters->firstToken())
+    if (parameter_declaration_clause)
+        if (unsigned candidate = parameter_declaration_clause->firstToken())
             return candidate;
     if (rparen_token)
         return rparen_token;
@@ -1416,8 +1416,8 @@ unsigned FunctionDeclaratorAST::lastToken() const
             return candidate;
     if (rparen_token)
         return rparen_token + 1;
-    if (parameters)
-        if (unsigned candidate = parameters->lastToken())
+    if (parameter_declaration_clause)
+        if (unsigned candidate = parameter_declaration_clause->lastToken())
             return candidate;
     if (lparen_token)
         return lparen_token + 1;
@@ -3317,8 +3317,8 @@ unsigned QtPrivateSlotAST::firstToken() const
         return dptr_rparen_token;
     if (comma_token)
         return comma_token;
-    if (type_specifiers)
-        if (unsigned candidate = type_specifiers->firstToken())
+    if (type_specifier_list)
+        if (unsigned candidate = type_specifier_list->firstToken())
             return candidate;
     if (declarator)
         if (unsigned candidate = declarator->firstToken())
@@ -3336,8 +3336,8 @@ unsigned QtPrivateSlotAST::lastToken() const
     if (declarator)
         if (unsigned candidate = declarator->lastToken())
             return candidate;
-    if (type_specifiers)
-        if (unsigned candidate = type_specifiers->lastToken())
+    if (type_specifier_list)
+        if (unsigned candidate = type_specifier_list->lastToken())
             return candidate;
     if (comma_token)
         return comma_token + 1;
@@ -3367,8 +3367,8 @@ unsigned QtPropertyDeclarationAST::firstToken() const
     if (property_name)
         if (unsigned candidate = property_name->firstToken())
             return candidate;
-    if (property_declaration_items)
-        if (unsigned candidate = property_declaration_items->firstToken())
+    if (property_declaration_item_list)
+        if (unsigned candidate = property_declaration_item_list->firstToken())
             return candidate;
     if (rparen_token)
         return rparen_token;
@@ -3380,8 +3380,8 @@ unsigned QtPropertyDeclarationAST::lastToken() const
 {
     if (rparen_token)
         return rparen_token + 1;
-    if (property_declaration_items)
-        if (unsigned candidate = property_declaration_items->lastToken())
+    if (property_declaration_item_list)
+        if (unsigned candidate = property_declaration_item_list->lastToken())
             return candidate;
     if (property_name)
         if (unsigned candidate = property_name->lastToken())
@@ -3818,8 +3818,8 @@ unsigned TrailingReturnTypeAST::firstToken() const
     if (attributes)
         if (unsigned candidate = attributes->firstToken())
             return candidate;
-    if (type_specifiers)
-        if (unsigned candidate = type_specifiers->firstToken())
+    if (type_specifier_list)
+        if (unsigned candidate = type_specifier_list->firstToken())
             return candidate;
     if (declarator)
         if (unsigned candidate = declarator->firstToken())
@@ -3833,8 +3833,8 @@ unsigned TrailingReturnTypeAST::lastToken() const
     if (declarator)
         if (unsigned candidate = declarator->lastToken())
             return candidate;
-    if (type_specifiers)
-        if (unsigned candidate = type_specifiers->lastToken())
+    if (type_specifier_list)
+        if (unsigned candidate = type_specifier_list->lastToken())
             return candidate;
     if (attributes)
         if (unsigned candidate = attributes->lastToken())
diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h
index 3f7a163c27a..74954b59301 100644
--- a/src/shared/cplusplus/AST.h
+++ b/src/shared/cplusplus/AST.h
@@ -711,7 +711,7 @@ public:
     unsigned dptr_lparen_token;
     unsigned dptr_rparen_token;
     unsigned comma_token;
-    SpecifierListAST *type_specifiers;
+    SpecifierListAST *type_specifier_list;
     DeclaratorAST *declarator;
     unsigned rparen_token;
 
@@ -723,7 +723,7 @@ public:
         , dptr_lparen_token(0)
         , dptr_rparen_token(0)
         , comma_token(0)
-        , type_specifiers(0)
+        , type_specifier_list(0)
         , declarator(0)
         , rparen_token(0)
     {}
@@ -771,7 +771,7 @@ public:
     unsigned lparen_token;
     ExpressionAST *type_id;
     NameAST *property_name;
-    QtPropertyDeclarationItemListAST *property_declaration_items;
+    QtPropertyDeclarationItemListAST *property_declaration_item_list;
     unsigned rparen_token;
 
 public:
@@ -780,7 +780,7 @@ public:
         , lparen_token(0)
         , type_id(0)
         , property_name(0)
-        , property_declaration_items(0)
+        , property_declaration_item_list(0)
         , rparen_token(0)
     {}
 
@@ -1442,7 +1442,7 @@ class CPLUSPLUS_EXPORT FunctionDeclaratorAST: public PostfixDeclaratorAST
 {
 public:
     unsigned lparen_token;
-    ParameterDeclarationClauseAST *parameters;
+    ParameterDeclarationClauseAST *parameter_declaration_clause;
     unsigned rparen_token;
     SpecifierListAST *cv_qualifier_list;
     ExceptionSpecificationAST *exception_specification;
@@ -1455,7 +1455,7 @@ public: // annotations
 public:
     FunctionDeclaratorAST()
         : lparen_token(0)
-        , parameters(0)
+        , parameter_declaration_clause(0)
         , rparen_token(0)
         , cv_qualifier_list(0)
         , exception_specification(0)
@@ -1733,8 +1733,8 @@ protected:
 class CPLUSPLUS_EXPORT ExpressionOrDeclarationStatementAST: public StatementAST
 {
 public:
-    StatementAST *expression;
-    StatementAST *declaration;
+    ExpressionStatementAST *expression;
+    DeclarationStatementAST *declaration;
 
 public:
     ExpressionOrDeclarationStatementAST()
@@ -2507,7 +2507,7 @@ protected:
 class CPLUSPLUS_EXPORT ParameterDeclarationClauseAST: public AST
 {
 public:
-    DeclarationListAST *parameter_declaration_list;
+    ParameterDeclarationListAST *parameter_declaration_list;
     unsigned dot_dot_dot_token;
 
 public:
@@ -4261,14 +4261,14 @@ class TrailingReturnTypeAST: public AST
 public:
     unsigned arrow_token;
     SpecifierListAST *attributes;
-    SpecifierListAST *type_specifiers;
+    SpecifierListAST *type_specifier_list;
     DeclaratorAST *declarator;
 
 public:
     TrailingReturnTypeAST()
         : arrow_token(0)
         , attributes(0)
-        , type_specifiers(0)
+        , type_specifier_list(0)
         , declarator(0)
     {}
 
diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp
index 27cc47605d1..f9d14bfec48 100644
--- a/src/shared/cplusplus/ASTClone.cpp
+++ b/src/shared/cplusplus/ASTClone.cpp
@@ -171,7 +171,7 @@ QtPrivateSlotAST *QtPrivateSlotAST::clone(MemoryPool *pool) const
     ast->dptr_lparen_token = dptr_lparen_token;
     ast->dptr_rparen_token = dptr_rparen_token;
     ast->comma_token = comma_token;
-    for (SpecifierListAST *iter = type_specifiers, **ast_iter = &ast->type_specifiers;
+    for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
         *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
     if (declarator)
@@ -198,7 +198,7 @@ QtPropertyDeclarationAST *QtPropertyDeclarationAST::clone(MemoryPool *pool) cons
         ast->type_id = type_id->clone(pool);
     if (property_name)
         ast->property_name = property_name->clone(pool);
-    for (QtPropertyDeclarationItemListAST *iter = property_declaration_items, **ast_iter = &ast->property_declaration_items;
+    for (QtPropertyDeclarationItemListAST *iter = property_declaration_item_list, **ast_iter = &ast->property_declaration_item_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
         *ast_iter = new (pool) QtPropertyDeclarationItemListAST((iter->value) ? iter->value->clone(pool) : 0);
     ast->rparen_token = rparen_token;
@@ -475,8 +475,8 @@ FunctionDeclaratorAST *FunctionDeclaratorAST::clone(MemoryPool *pool) const
 {
     FunctionDeclaratorAST *ast = new (pool) FunctionDeclaratorAST;
     ast->lparen_token = lparen_token;
-    if (parameters)
-        ast->parameters = parameters->clone(pool);
+    if (parameter_declaration_clause)
+        ast->parameter_declaration_clause = parameter_declaration_clause->clone(pool);
     ast->rparen_token = rparen_token;
     for (SpecifierListAST *iter = cv_qualifier_list, **ast_iter = &ast->cv_qualifier_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
@@ -927,9 +927,9 @@ ParameterDeclarationAST *ParameterDeclarationAST::clone(MemoryPool *pool) const
 ParameterDeclarationClauseAST *ParameterDeclarationClauseAST::clone(MemoryPool *pool) const
 {
     ParameterDeclarationClauseAST *ast = new (pool) ParameterDeclarationClauseAST;
-    for (DeclarationListAST *iter = parameter_declaration_list, **ast_iter = &ast->parameter_declaration_list;
+    for (ParameterDeclarationListAST *iter = parameter_declaration_list, **ast_iter = &ast->parameter_declaration_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
-        *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
+        *ast_iter = new (pool) ParameterDeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
     ast->dot_dot_dot_token = dot_dot_dot_token;
     return ast;
 }
@@ -1659,7 +1659,7 @@ TrailingReturnTypeAST *TrailingReturnTypeAST::clone(MemoryPool *pool) const
     for (SpecifierListAST *iter = attributes, **ast_iter = &ast->attributes;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
         *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
-    for (SpecifierListAST *iter = type_specifiers, **ast_iter = &ast->type_specifiers;
+    for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
         *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
     if (declarator)
diff --git a/src/shared/cplusplus/ASTMatcher.cpp b/src/shared/cplusplus/ASTMatcher.cpp
index 7ca8582c33c..6d2bf04b901 100644
--- a/src/shared/cplusplus/ASTMatcher.cpp
+++ b/src/shared/cplusplus/ASTMatcher.cpp
@@ -258,9 +258,9 @@ bool ASTMatcher::match(QtPrivateSlotAST *node, QtPrivateSlotAST *pattern)
 
     pattern->comma_token = node->comma_token;
 
-    if (! pattern->type_specifiers)
-        pattern->type_specifiers = node->type_specifiers;
-    else if (! AST::match(node->type_specifiers, pattern->type_specifiers, this))
+    if (! pattern->type_specifier_list)
+        pattern->type_specifier_list = node->type_specifier_list;
+    else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this))
         return false;
 
     if (! pattern->declarator)
@@ -307,9 +307,9 @@ bool ASTMatcher::match(QtPropertyDeclarationAST *node, QtPropertyDeclarationAST
     else if (! AST::match(node->property_name, pattern->property_name, this))
         return false;
 
-    if (! pattern->property_declaration_items)
-        pattern->property_declaration_items = node->property_declaration_items;
-    else if (! AST::match(node->property_declaration_items, pattern->property_declaration_items, this))
+    if (! pattern->property_declaration_item_list)
+        pattern->property_declaration_item_list = node->property_declaration_item_list;
+    else if (! AST::match(node->property_declaration_item_list, pattern->property_declaration_item_list, this))
         return false;
 
     pattern->rparen_token = node->rparen_token;
@@ -778,9 +778,9 @@ bool ASTMatcher::match(FunctionDeclaratorAST *node, FunctionDeclaratorAST *patte
 
     pattern->lparen_token = node->lparen_token;
 
-    if (! pattern->parameters)
-        pattern->parameters = node->parameters;
-    else if (! AST::match(node->parameters, pattern->parameters, this))
+    if (! pattern->parameter_declaration_clause)
+        pattern->parameter_declaration_clause = node->parameter_declaration_clause;
+    else if (! AST::match(node->parameter_declaration_clause, pattern->parameter_declaration_clause, this))
         return false;
 
     pattern->rparen_token = node->rparen_token;
@@ -2804,9 +2804,9 @@ bool ASTMatcher::match(TrailingReturnTypeAST *node, TrailingReturnTypeAST *patte
     else if (! AST::match(node->attributes, pattern->attributes, this))
         return false;
 
-    if (! pattern->type_specifiers)
-        pattern->type_specifiers = node->type_specifiers;
-    else if (! AST::match(node->type_specifiers, pattern->type_specifiers, this))
+    if (! pattern->type_specifier_list)
+        pattern->type_specifier_list = node->type_specifier_list;
+    else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this))
         return false;
 
     if (! pattern->declarator)
diff --git a/src/shared/cplusplus/ASTPatternBuilder.h b/src/shared/cplusplus/ASTPatternBuilder.h
index 3f03f99586a..2d8ee5d5ba9 100644
--- a/src/shared/cplusplus/ASTPatternBuilder.h
+++ b/src/shared/cplusplus/ASTPatternBuilder.h
@@ -215,7 +215,7 @@ public:
     FunctionDeclaratorAST *FunctionDeclarator(ParameterDeclarationClauseAST *parameters = 0, ExceptionSpecificationAST *exception_specification = 0, ExpressionAST *as_cpp_initializer = 0)
     {
         FunctionDeclaratorAST *__ast = new (&pool) FunctionDeclaratorAST;
-        __ast->parameters = parameters;
+        __ast->parameter_declaration_clause = parameters;
         __ast->exception_specification = exception_specification;
         __ast->as_cpp_initializer = as_cpp_initializer;
         return __ast;
@@ -284,7 +284,7 @@ public:
         return __ast;
     }
 
-    ExpressionOrDeclarationStatementAST *ExpressionOrDeclarationStatement(StatementAST *expression = 0, StatementAST *declaration = 0)
+    ExpressionOrDeclarationStatementAST *ExpressionOrDeclarationStatement(ExpressionStatementAST *expression = 0, DeclarationStatementAST *declaration = 0)
     {
         ExpressionOrDeclarationStatementAST *__ast = new (&pool) ExpressionOrDeclarationStatementAST;
         __ast->expression = expression;
diff --git a/src/shared/cplusplus/ASTVisit.cpp b/src/shared/cplusplus/ASTVisit.cpp
index be0ffe01a25..b355088b264 100644
--- a/src/shared/cplusplus/ASTVisit.cpp
+++ b/src/shared/cplusplus/ASTVisit.cpp
@@ -133,7 +133,7 @@ void QtObjectTagAST::accept0(ASTVisitor *visitor)
 void QtPrivateSlotAST::accept0(ASTVisitor *visitor)
 {
     if (visitor->visit(this)) {
-        accept(type_specifiers, visitor);
+        accept(type_specifier_list, visitor);
         accept(declarator, visitor);
     }
     visitor->endVisit(this);
@@ -152,7 +152,7 @@ void QtPropertyDeclarationAST::accept0(ASTVisitor *visitor)
     if (visitor->visit(this)) {
         accept(type_id, visitor);
         accept(property_name, visitor);
-        accept(property_declaration_items, visitor);
+        accept(property_declaration_item_list, visitor);
     }
     visitor->endVisit(this);
 }
@@ -355,7 +355,7 @@ void NestedDeclaratorAST::accept0(ASTVisitor *visitor)
 void FunctionDeclaratorAST::accept0(ASTVisitor *visitor)
 {
     if (visitor->visit(this)) {
-        accept(parameters, visitor);
+        accept(parameter_declaration_clause, visitor);
         accept(cv_qualifier_list, visitor);
         accept(exception_specification, visitor);
         accept(trailing_return_type, visitor);
@@ -1211,7 +1211,7 @@ void TrailingReturnTypeAST::accept0(ASTVisitor *visitor)
 {
     if (visitor->visit(this)) {
         accept(attributes, visitor);
-        accept(type_specifiers, visitor);
+        accept(type_specifier_list, visitor);
         accept(declarator, visitor);
     }
     visitor->endVisit(this);
diff --git a/src/shared/cplusplus/ASTfwd.h b/src/shared/cplusplus/ASTfwd.h
index 9812c824539..fd854c46cd1 100644
--- a/src/shared/cplusplus/ASTfwd.h
+++ b/src/shared/cplusplus/ASTfwd.h
@@ -226,6 +226,7 @@ typedef List<QtPropertyDeclarationItemAST *> QtPropertyDeclarationItemListAST;
 typedef List<NameAST *> NameListAST;
 typedef List<QtInterfaceNameAST *> QtInterfaceNameListAST;
 
+typedef List<ParameterDeclarationAST *> ParameterDeclarationListAST;
 typedef List<CaptureAST *> CaptureListAST;
 
 typedef List<ObjCMessageArgumentAST *> ObjCMessageArgumentListAST;
diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp
index 216e2c36f52..6c0319538c7 100644
--- a/src/shared/cplusplus/Bind.cpp
+++ b/src/shared/cplusplus/Bind.cpp
@@ -830,7 +830,7 @@ void Bind::parameterDeclarationClause(ParameterDeclarationClauseAST *ast, unsign
 
     Scope *previousScope = switchScope(fun);
 
-    for (DeclarationListAST *it = ast->parameter_declaration_list; it; it = it->next) {
+    for (ParameterDeclarationListAST *it = ast->parameter_declaration_list; it; it = it->next) {
         this->declaration(it->value);
     }
 
@@ -1128,7 +1128,7 @@ FullySpecifiedType Bind::trailingReturnType(TrailingReturnTypeAST *ast, const Fu
     for (SpecifierListAST *it = ast->attributes; it; it = it->next) {
         type = this->specifier(it->value, type);
     }
-    for (SpecifierListAST *it = ast->type_specifiers; it; it = it->next) {
+    for (SpecifierListAST *it = ast->type_specifier_list; it; it = it->next) {
         type = this->specifier(it->value, type);
     }
     DeclaratorIdAST *declaratorId = 0;
@@ -1831,7 +1831,7 @@ bool Bind::visit(QtPrivateSlotAST *ast)
     // unsigned dptr_rparen_token = ast->dptr_rparen_token;
     // unsigned comma_token = ast->comma_token;
     FullySpecifiedType type;
-    for (SpecifierListAST *it = ast->type_specifiers; it; it = it->next) {
+    for (SpecifierListAST *it = ast->type_specifier_list; it; it = it->next) {
         type = this->specifier(it->value, type);
     }
     DeclaratorIdAST *declaratorId = 0;
@@ -1846,7 +1846,7 @@ bool Bind::visit(QtPropertyDeclarationAST *ast)
     // unsigned lparen_token = ast->lparen_token;
     ExpressionTy type_id = this->expression(ast->type_id);
     /*const Name *property_name =*/ this->name(ast->property_name);
-    for (QtPropertyDeclarationItemListAST *it = ast->property_declaration_items; it; it = it->next) {
+    for (QtPropertyDeclarationItemListAST *it = ast->property_declaration_item_list; it; it = it->next) {
         this->qtPropertyDeclarationItem(it->value);
     }
     // unsigned rparen_token = ast->rparen_token;
@@ -2882,7 +2882,7 @@ bool Bind::visit(FunctionDeclaratorAST *ast)
     fun->setReturnType(_type);
 
     // unsigned lparen_token = ast->lparen_token;
-    this->parameterDeclarationClause(ast->parameters, ast->lparen_token, fun);
+    this->parameterDeclarationClause(ast->parameter_declaration_clause, ast->lparen_token, fun);
     // unsigned rparen_token = ast->rparen_token;
     FullySpecifiedType type(fun);
     for (SpecifierListAST *it = ast->cv_qualifier_list; it; it = it->next) {
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 522aaf17843..a2747caa2be 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -1338,7 +1338,7 @@ bool Parser::parseDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specif
 
                                 FunctionDeclaratorAST *ast = new (_pool) FunctionDeclaratorAST;
                                 ast->lparen_token = lparen_token;
-                                ast->parameters = parameter_declaration_clause;
+                                ast->parameter_declaration_clause = parameter_declaration_clause;
                                 ast->as_cpp_initializer = initializer;
                                 ast->rparen_token = rparen_token;
                                 *postfix_ptr = new (_pool) PostfixDeclaratorListAST(ast);
@@ -1362,7 +1362,7 @@ bool Parser::parseDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specif
 
             FunctionDeclaratorAST *ast = new (_pool) FunctionDeclaratorAST;
             ast->lparen_token = consumeToken();
-            parseParameterDeclarationClause(ast->parameters);
+            parseParameterDeclarationClause(ast->parameter_declaration_clause);
             if (LA() != T_RPAREN) {
                 rewind(startOfPostDeclarator);
                 break;
@@ -1457,7 +1457,7 @@ bool Parser::parseAbstractDeclarator(DeclaratorAST *&node, SpecifierListAST *dec
         if (LA() == T_LPAREN) {
             FunctionDeclaratorAST *ast = new (_pool) FunctionDeclaratorAST;
             ast->lparen_token = consumeToken();
-            if (LA() == T_RPAREN || parseParameterDeclarationClause(ast->parameters)) {
+            if (LA() == T_RPAREN || parseParameterDeclarationClause(ast->parameter_declaration_clause)) {
                 if (LA() == T_RPAREN)
                     ast->rparen_token = consumeToken();
             }
@@ -1557,7 +1557,9 @@ bool Parser::parseTemplateParameter(DeclarationAST *&node)
     if (parseTypeParameter(node))
         return true;
     bool previousTemplateArguments = switchTemplateArguments(true);
-    bool parsed = parseParameterDeclaration(node);
+    ParameterDeclarationAST *ast = 0;
+    bool parsed = parseParameterDeclaration(ast);
+    node = ast;
     (void) switchTemplateArguments(previousTemplateArguments);
     return parsed;
 }
@@ -1669,7 +1671,7 @@ bool Parser::parseParameterDeclarationClause(ParameterDeclarationClauseAST *&nod
     if (LA() == T_RPAREN)
         return true; // nothing to do
 
-    DeclarationListAST *parameter_declarations = 0;
+    ParameterDeclarationListAST *parameter_declarations = 0;
 
     unsigned dot_dot_dot_token = 0;
     if (LA() == T_DOT_DOT_DOT)
@@ -1695,16 +1697,16 @@ bool Parser::parseParameterDeclarationClause(ParameterDeclarationClauseAST *&nod
     return true;
 }
 
-bool Parser::parseParameterDeclarationList(DeclarationListAST *&node)
+bool Parser::parseParameterDeclarationList(ParameterDeclarationListAST *&node)
 {
     DEBUG_THIS_RULE();
     if (LA() == T_DOT_DOT_DOT || (LA() == T_COMMA && LA(2) == T_DOT_DOT_DOT))
         return false; // nothing to do.
 
-    DeclarationListAST **parameter_declaration_ptr = &node;
-    DeclarationAST *declaration = 0;
+    ParameterDeclarationListAST **parameter_declaration_ptr = &node;
+    ParameterDeclarationAST *declaration = 0;
     if (parseParameterDeclaration(declaration)) {
-        *parameter_declaration_ptr = new (_pool) DeclarationListAST;
+        *parameter_declaration_ptr = new (_pool) ParameterDeclarationListAST;
         (*parameter_declaration_ptr)->value = declaration;
         parameter_declaration_ptr = &(*parameter_declaration_ptr)->next;
         while (LA() == T_COMMA) {
@@ -1715,7 +1717,7 @@ bool Parser::parseParameterDeclarationList(DeclarationListAST *&node)
 
             declaration = 0;
             if (parseParameterDeclaration(declaration)) {
-                *parameter_declaration_ptr = new (_pool) DeclarationListAST;
+                *parameter_declaration_ptr = new (_pool) ParameterDeclarationListAST;
                 (*parameter_declaration_ptr)->value = declaration;
                 parameter_declaration_ptr = &(*parameter_declaration_ptr)->next;
             }
@@ -1725,7 +1727,7 @@ bool Parser::parseParameterDeclarationList(DeclarationListAST *&node)
     return false;
 }
 
-bool Parser::parseParameterDeclaration(DeclarationAST *&node)
+bool Parser::parseParameterDeclaration(ParameterDeclarationAST *&node)
 {
     DEBUG_THIS_RULE();
     SpecifierListAST *decl_specifier_seq = 0;
@@ -1950,7 +1952,7 @@ bool Parser::parseQtPropertyDeclaration(DeclarationAST *&node)
         }
 
         ast->property_name = property_name;
-        QtPropertyDeclarationItemListAST **iter = &ast->property_declaration_items;
+        QtPropertyDeclarationItemListAST **iter = &ast->property_declaration_item_list;
         while (true) {
             if (LA() == T_RPAREN) {
                 ast->rparen_token = consumeToken();
@@ -2175,8 +2177,8 @@ bool Parser::parseMemberSpecification(DeclarationAST *&node, ClassSpecifierAST *
             match(T_RPAREN, &ast->dptr_rparen_token);
         }
         match(T_COMMA, &ast->comma_token);
-        (void) parseTypeSpecifier(ast->type_specifiers);
-        parseDeclarator(ast->declarator, ast->type_specifiers);
+        (void) parseTypeSpecifier(ast->type_specifier_list);
+        parseDeclarator(ast->declarator, ast->type_specifier_list);
         match(T_RPAREN, &ast->rparen_token);
         node = ast;
     }   return true;
@@ -5525,7 +5527,7 @@ bool Parser::parseObjCMethodPrototype(ObjCMethodPrototypeAST *&node)
             }
 
             // TODO: Is this still valid, and if so, should it be stored in the AST? (EV)
-            DeclarationAST *parameter_declaration = 0;
+            ParameterDeclarationAST *parameter_declaration = 0;
             parseParameterDeclaration(parameter_declaration);
         }
     } else if (lookAtObjCSelector()) {
@@ -5860,8 +5862,8 @@ bool Parser::parseTrailingReturnType(TrailingReturnTypeAST *&node)
     while (parseAttributeSpecifier(*attr))
         attr = &(*attr)->next;
 
-    parseTrailingTypeSpecifierSeq(ast->type_specifiers);
-    parseAbstractDeclarator(ast->declarator, ast->type_specifiers);
+    parseTrailingTypeSpecifierSeq(ast->type_specifier_list);
+    parseAbstractDeclarator(ast->declarator, ast->type_specifier_list);
     node = ast;
     return true;
 }
diff --git a/src/shared/cplusplus/Parser.h b/src/shared/cplusplus/Parser.h
index 60c9defb5db..ccd19673aad 100644
--- a/src/shared/cplusplus/Parser.h
+++ b/src/shared/cplusplus/Parser.h
@@ -163,9 +163,9 @@ public:
     bool parseOperator(OperatorAST *&node);
     bool parseConversionFunctionId(NameAST *&node);
     bool parseOperatorFunctionId(NameAST *&node);
-    bool parseParameterDeclaration(DeclarationAST *&node);
+    bool parseParameterDeclaration(ParameterDeclarationAST *&node);
     bool parseParameterDeclarationClause(ParameterDeclarationClauseAST *&node);
-    bool parseParameterDeclarationList(DeclarationListAST *&node);
+    bool parseParameterDeclarationList(ParameterDeclarationListAST *&node);
     bool parsePmExpression(ExpressionAST *&node);
     bool parseTypeidExpression(ExpressionAST *&node);
     bool parseTypenameCallExpression(ExpressionAST *&node);
diff --git a/tests/auto/cplusplus/ast/tst_ast.cpp b/tests/auto/cplusplus/ast/tst_ast.cpp
index 56869fe1010..c1caa651d72 100644
--- a/tests/auto/cplusplus/ast/tst_ast.cpp
+++ b/tests/auto/cplusplus/ast/tst_ast.cpp
@@ -641,17 +641,17 @@ void tst_AST::cpp_initializer_or_function_declaration()
     FunctionDeclaratorAST *fun_declarator = declarator->postfix_declarator_list->value->asFunctionDeclarator();
     QVERIFY(fun_declarator != 0);
     QCOMPARE(fun_declarator->lparen_token, 3U);
-    QVERIFY(fun_declarator->parameters != 0);
+    QVERIFY(fun_declarator->parameter_declaration_clause != 0);
     QCOMPARE(fun_declarator->rparen_token, 5U);
 
     // check the formal arguments
-    ParameterDeclarationClauseAST *param_clause = fun_declarator->parameters;
+    ParameterDeclarationClauseAST *param_clause = fun_declarator->parameter_declaration_clause;
     QVERIFY(param_clause->parameter_declaration_list != 0);
     QVERIFY(param_clause->parameter_declaration_list->next == 0);
     QCOMPARE(param_clause->dot_dot_dot_token, 0U);
 
     // check the parameter
-    DeclarationListAST *declarations = param_clause->parameter_declaration_list;
+    ParameterDeclarationListAST *declarations = param_clause->parameter_declaration_list;
     QVERIFY(declarations);
     QVERIFY(declarations->value);
     QVERIFY(! declarations->next);
diff --git a/tests/manual/cplusplus-dump/dumpers.inc b/tests/manual/cplusplus-dump/dumpers.inc
index 99e69a2a494..c3d4635ee3f 100644
--- a/tests/manual/cplusplus-dump/dumpers.inc
+++ b/tests/manual/cplusplus-dump/dumpers.inc
@@ -172,7 +172,7 @@ virtual bool visit(QtPrivateSlotAST *ast)
         terminal(ast->dptr_rparen_token, ast);
     if (ast->comma_token)
         terminal(ast->comma_token, ast);
-    for (SpecifierListAST *iter = ast->type_specifiers; iter; iter = iter->next)
+    for (SpecifierListAST *iter = ast->type_specifier_list; iter; iter = iter->next)
         nonterminal(iter->value);
     nonterminal(ast->declarator);
     if (ast->rparen_token)
@@ -196,7 +196,7 @@ virtual bool visit(QtPropertyDeclarationAST *ast)
         terminal(ast->lparen_token, ast);
     nonterminal(ast->type_id);
     nonterminal(ast->property_name);
-    for (QtPropertyDeclarationItemListAST *iter = ast->property_declaration_items; iter; iter = iter->next)
+    for (QtPropertyDeclarationItemListAST *iter = ast->property_declaration_item_list; iter; iter = iter->next)
         nonterminal(iter->value);
     if (ast->rparen_token)
         terminal(ast->rparen_token, ast);
@@ -466,7 +466,7 @@ virtual bool visit(FunctionDeclaratorAST *ast)
 {
     if (ast->lparen_token)
         terminal(ast->lparen_token, ast);
-    nonterminal(ast->parameters);
+    nonterminal(ast->parameter_declaration_clause);
     if (ast->rparen_token)
         terminal(ast->rparen_token, ast);
     for (SpecifierListAST *iter = ast->cv_qualifier_list; iter; iter = iter->next)
@@ -893,7 +893,7 @@ virtual bool visit(ParameterDeclarationAST *ast)
 
 virtual bool visit(ParameterDeclarationClauseAST *ast)
 {
-    for (DeclarationListAST *iter = ast->parameter_declaration_list; iter; iter = iter->next)
+    for (ParameterDeclarationListAST *iter = ast->parameter_declaration_list; iter; iter = iter->next)
         nonterminal(iter->value);
     if (ast->dot_dot_dot_token)
         terminal(ast->dot_dot_dot_token, ast);
@@ -1594,7 +1594,7 @@ virtual bool visit(TrailingReturnTypeAST *ast)
         terminal(ast->arrow_token, ast);
     for (SpecifierListAST *iter = ast->attributes; iter; iter = iter->next)
         nonterminal(iter->value);
-    for (SpecifierListAST *iter = ast->type_specifiers; iter; iter = iter->next)
+    for (SpecifierListAST *iter = ast->type_specifier_list; iter; iter = iter->next)
         nonterminal(iter->value);
     nonterminal(ast->declarator);
     return false;
-- 
GitLab