diff options
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/AST.cpp | 1105 | ||||
-rw-r--r-- | src/shared/cplusplus/ASTClone.cpp | 1087 | ||||
-rw-r--r-- | src/shared/cplusplus/cplusplus.pri | 1 |
3 files changed, 1088 insertions, 1105 deletions
diff --git a/src/shared/cplusplus/AST.cpp b/src/shared/cplusplus/AST.cpp index d1dcaa8e67..77461d53d9 100644 --- a/src/shared/cplusplus/AST.cpp +++ b/src/shared/cplusplus/AST.cpp @@ -89,19 +89,6 @@ unsigned AttributeSpecifierAST::lastToken() const return attribute_token + 1; } -AttributeSpecifierAST *AttributeSpecifierAST::clone(MemoryPool *pool) const -{ - AttributeSpecifierAST *ast = new (pool) AttributeSpecifierAST; - ast->attribute_token = attribute_token; - ast->first_lparen_token = first_lparen_token; - ast->second_lparen_token = second_lparen_token; - if (attributes) - ast->attributes = attributes->clone(pool); - ast->first_rparen_token = first_rparen_token; - ast->second_rparen_token = second_rparen_token; - return ast; -} - void AttributeSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -137,21 +124,6 @@ unsigned AttributeAST::lastToken() const return identifier_token + 1; } -AttributeAST *AttributeAST::clone(MemoryPool *pool) const -{ - AttributeAST *ast = new (pool) AttributeAST; - ast->identifier_token = identifier_token; - ast->lparen_token = lparen_token; - ast->tag_token = tag_token; - if (expression_list) - ast->expression_list = expression_list->clone(pool); - ast->rparen_token = rparen_token; - if (next) - ast->next = next->clone(pool); - ast->comma_token = comma_token; - return ast; -} - void AttributeAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -161,15 +133,6 @@ void AttributeAST::accept0(ASTVisitor *visitor) visitor->endVisit(this); } -AccessDeclarationAST *AccessDeclarationAST::clone(MemoryPool *pool) const -{ - AccessDeclarationAST *ast = new (pool) AccessDeclarationAST; - ast->access_specifier_token = access_specifier_token; - ast->slots_token = slots_token; - ast->colon_token = colon_token; - return ast; -} - void AccessDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -191,16 +154,6 @@ unsigned AccessDeclarationAST::lastToken() const return access_specifier_token + 1; } -ArrayAccessAST *ArrayAccessAST::clone(MemoryPool *pool) const -{ - ArrayAccessAST *ast = new (pool) ArrayAccessAST; - ast->lbracket_token = lbracket_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rbracket_token = rbracket_token; - return ast; -} - void ArrayAccessAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -223,16 +176,6 @@ unsigned ArrayAccessAST::lastToken() const return lbracket_token + 1; } -ArrayDeclaratorAST *ArrayDeclaratorAST::clone(MemoryPool *pool) const -{ - ArrayDeclaratorAST *ast = new (pool) ArrayDeclaratorAST; - ast->lbracket_token = lbracket_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rbracket_token = rbracket_token; - return ast; -} - void ArrayDeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -255,16 +198,6 @@ unsigned ArrayDeclaratorAST::lastToken() const return lbracket_token + 1; } -ArrayInitializerAST *ArrayInitializerAST::clone(MemoryPool *pool) const -{ - ArrayInitializerAST *ast = new (pool) ArrayInitializerAST; - ast->lbrace_token = lbrace_token; - if (expression_list) - ast->expression_list = expression_list->clone(pool); - ast->rbrace_token = rbrace_token; - return ast; -} - void ArrayInitializerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -292,17 +225,6 @@ unsigned ArrayInitializerAST::lastToken() const return lbrace_token + 1; } -AsmDefinitionAST *AsmDefinitionAST::clone(MemoryPool *pool) const -{ - AsmDefinitionAST *ast = new (pool) AsmDefinitionAST; - ast->asm_token = asm_token; - ast->volatile_token = volatile_token; - ast->lparen_token = lparen_token; - ast->rparen_token = rparen_token; - ast->semicolon_token = semicolon_token; - return ast; -} - void AsmDefinitionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -329,19 +251,6 @@ unsigned AsmDefinitionAST::lastToken() const return asm_token + 1; } -BaseSpecifierAST *BaseSpecifierAST::clone(MemoryPool *pool) const -{ - BaseSpecifierAST *ast = new (pool) BaseSpecifierAST; - ast->comma_token = comma_token; - ast->virtual_token = virtual_token; - ast->access_specifier_token = access_specifier_token; - if (name) - ast->name = name->clone(pool); - if (next) - ast->next = next->clone(pool); - return ast; -} - void BaseSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -385,17 +294,6 @@ unsigned QtMethodAST::lastToken() const return method_token + 1; } -QtMethodAST *QtMethodAST::clone(MemoryPool *pool) const -{ - QtMethodAST *ast = new (pool) QtMethodAST; - ast->method_token = method_token; - ast->lparen_token = lparen_token; - if (declarator) - ast->declarator = declarator->clone(pool); - ast->rparen_token = rparen_token; - return ast; -} - void QtMethodAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -404,17 +302,6 @@ void QtMethodAST::accept0(ASTVisitor *visitor) visitor->endVisit(this); } -BinaryExpressionAST *BinaryExpressionAST::clone(MemoryPool *pool) const -{ - BinaryExpressionAST *ast = new (pool) BinaryExpressionAST; - if (left_expression) - ast->left_expression = left_expression->clone(pool); - ast->binary_op_token = binary_op_token; - if (right_expression) - ast->right_expression = right_expression->clone(pool); - return ast; -} - void BinaryExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -438,13 +325,6 @@ unsigned BinaryExpressionAST::lastToken() const return left_expression->lastToken(); } -BoolLiteralAST *BoolLiteralAST::clone(MemoryPool *pool) const -{ - BoolLiteralAST *ast = new (pool) BoolLiteralAST; - ast->literal_token = literal_token; - return ast; -} - void BoolLiteralAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -462,18 +342,6 @@ unsigned BoolLiteralAST::lastToken() const return literal_token + 1; } -CompoundLiteralAST *CompoundLiteralAST::clone(MemoryPool *pool) const -{ - CompoundLiteralAST *ast = new (pool) CompoundLiteralAST; - ast->lparen_token = lparen_token; - if (type_id) - ast->type_id = type_id->clone(pool); - ast->rparen_token = rparen_token; - if (initializer) - ast->initializer = initializer->clone(pool); - return ast; -} - void CompoundLiteralAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -499,14 +367,6 @@ unsigned CompoundLiteralAST::lastToken() const return lparen_token + 1; } -BreakStatementAST *BreakStatementAST::clone(MemoryPool *pool) const -{ - BreakStatementAST *ast = new (pool) BreakStatementAST; - ast->break_token = break_token; - ast->semicolon_token = semicolon_token; - return ast; -} - void BreakStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -526,16 +386,6 @@ unsigned BreakStatementAST::lastToken() const return break_token + 1; } -CallAST *CallAST::clone(MemoryPool *pool) const -{ - CallAST *ast = new (pool) CallAST; - ast->lparen_token = lparen_token; - if (expression_list) - ast->expression_list = expression_list; - ast->rparen_token = rparen_token; - return ast; -} - void CallAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -562,18 +412,6 @@ unsigned CallAST::lastToken() const return lparen_token + 1; } -CaseStatementAST *CaseStatementAST::clone(MemoryPool *pool) const -{ - CaseStatementAST *ast = new (pool) CaseStatementAST; - ast->case_token = case_token; - if (expression) - ast->expression = expression->clone(pool); - ast->colon_token = colon_token; - if (statement) - ast->statement = statement->clone(pool); - return ast; -} - void CaseStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -599,18 +437,6 @@ unsigned CaseStatementAST::lastToken() const return case_token + 1; } -CastExpressionAST *CastExpressionAST::clone(MemoryPool *pool) const -{ - CastExpressionAST *ast = new (pool) CastExpressionAST; - ast->lparen_token = lparen_token; - if (type_id) - ast->type_id = type_id->clone(pool); - ast->rparen_token = rparen_token; - if (expression) - ast->expression = expression->clone(pool); - return ast; -} - void CastExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -634,21 +460,6 @@ unsigned CastExpressionAST::lastToken() const return lparen_token + 1; } -CatchClauseAST *CatchClauseAST::clone(MemoryPool *pool) const -{ - CatchClauseAST *ast = new (pool) CatchClauseAST; - ast->catch_token = catch_token; - ast->lparen_token = lparen_token; - if (exception_declaration) - ast->exception_declaration = exception_declaration->clone(pool); - ast->rparen_token = rparen_token; - if (statement) - ast->statement = statement->clone(pool); - if (next) - ast->next = next->clone(pool); - return ast; -} - void CatchClauseAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -679,24 +490,6 @@ unsigned CatchClauseAST::lastToken() const return catch_token + 1; } -ClassSpecifierAST *ClassSpecifierAST::clone(MemoryPool *pool) const -{ - ClassSpecifierAST *ast = new (pool) ClassSpecifierAST; - ast->classkey_token = classkey_token; - if (attributes) - ast->attributes = attributes->clone(pool); - if (name) - ast->name = name->clone(pool); - ast->colon_token = colon_token; - if (base_clause) - ast->base_clause = base_clause->clone(pool); - ast->lbrace_token = lbrace_token; - if (member_specifiers) - ast->member_specifiers = member_specifiers->clone(pool); - ast->rbrace_token = rbrace_token; - return ast; -} - void ClassSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -748,16 +541,6 @@ unsigned ClassSpecifierAST::lastToken() const return classkey_token + 1; } -CompoundStatementAST *CompoundStatementAST::clone(MemoryPool *pool) const -{ - CompoundStatementAST *ast = new (pool) CompoundStatementAST; - ast->lbrace_token = lbrace_token; - if (statements) - ast->statements = statements->clone(pool); - ast->rbrace_token = rbrace_token; - return ast; -} - void CompoundStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -785,16 +568,6 @@ unsigned CompoundStatementAST::lastToken() const return lbrace_token + 1; } -ConditionAST *ConditionAST::clone(MemoryPool *pool) const -{ - ConditionAST *ast = new (pool) ConditionAST; - if (type_specifier) - ast->type_specifier = type_specifier->clone(pool); - if (declarator) - ast->declarator = declarator->clone(pool); - return ast; -} - void ConditionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -827,20 +600,6 @@ unsigned ConditionAST::lastToken() const return 0; } -ConditionalExpressionAST *ConditionalExpressionAST::clone(MemoryPool *pool) const -{ - ConditionalExpressionAST *ast = new (pool) ConditionalExpressionAST; - if (condition) - ast->condition = condition->clone(pool); - ast->question_token = question_token; - if (left_expression) - ast->left_expression = left_expression->clone(pool); - ast->colon_token = colon_token; - if (right_expression) - ast->right_expression = right_expression->clone(pool); - return ast; -} - void ConditionalExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -872,14 +631,6 @@ unsigned ConditionalExpressionAST::lastToken() const return 0; } -ContinueStatementAST *ContinueStatementAST::clone(MemoryPool *pool) const -{ - ContinueStatementAST *ast = new (pool) ContinueStatementAST; - ast->continue_token = continue_token; - ast->semicolon_token = semicolon_token; - return ast; -} - void ContinueStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -899,17 +650,6 @@ unsigned ContinueStatementAST::lastToken() const return continue_token + 1; } -ConversionFunctionIdAST *ConversionFunctionIdAST::clone(MemoryPool *pool) const -{ - ConversionFunctionIdAST *ast = new (pool) ConversionFunctionIdAST; - ast->operator_token = operator_token; - if (type_specifier) - ast->type_specifier = type_specifier->clone(pool); - if (ptr_operators) - ast->ptr_operators = ptr_operators->clone(pool); - return ast; -} - void ConversionFunctionIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -942,21 +682,6 @@ unsigned ConversionFunctionIdAST::lastToken() const return operator_token + 1; } -CppCastExpressionAST *CppCastExpressionAST::clone(MemoryPool *pool) const -{ - CppCastExpressionAST *ast = new (pool) CppCastExpressionAST; - ast->cast_token = cast_token; - ast->less_token = less_token; - if (type_id) - ast->type_id = type_id->clone(pool); - ast->greater_token = greater_token; - ast->lparen_token = lparen_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rparen_token = rparen_token; - return ast; -} - void CppCastExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -988,15 +713,6 @@ unsigned CppCastExpressionAST::lastToken() const return cast_token + 1; } -CtorInitializerAST *CtorInitializerAST::clone(MemoryPool *pool) const -{ - CtorInitializerAST *ast = new (pool) CtorInitializerAST; - ast->colon_token = colon_token; - if (member_initializers) - ast->member_initializers = member_initializers->clone(pool); - return ast; -} - void CtorInitializerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1021,22 +737,6 @@ unsigned CtorInitializerAST::lastToken() const return colon_token + 1; } -DeclaratorAST *DeclaratorAST::clone(MemoryPool *pool) const -{ - DeclaratorAST *ast = new (pool) DeclaratorAST; - if (ptr_operators) - ast->ptr_operators = ptr_operators->clone(pool); - if (core_declarator) - ast->core_declarator = core_declarator->clone(pool); - if (postfix_declarators) - ast->postfix_declarators = postfix_declarators->clone(pool); - if (attributes) - ast->attributes = attributes->clone(pool); - if (initializer) - ast->initializer = initializer->clone(pool); - return ast; -} - void DeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1096,14 +796,6 @@ unsigned DeclaratorAST::lastToken() const return 0; } -DeclarationStatementAST *DeclarationStatementAST::clone(MemoryPool *pool) const -{ - DeclarationStatementAST *ast = new (pool) DeclarationStatementAST; - if (declaration) - ast->declaration = declaration->clone(pool); - return ast; -} - void DeclarationStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1122,14 +814,6 @@ unsigned DeclarationStatementAST::lastToken() const return declaration->lastToken(); } -DeclaratorIdAST *DeclaratorIdAST::clone(MemoryPool *pool) const -{ - DeclaratorIdAST *ast = new (pool) DeclaratorIdAST; - if (name) - ast->name = name->clone(pool); - return ast; -} - void DeclaratorIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1148,17 +832,6 @@ unsigned DeclaratorIdAST::lastToken() const return name->lastToken(); } -DeclaratorListAST *DeclaratorListAST::clone(MemoryPool *pool) const -{ - DeclaratorListAST *ast = new (pool) DeclaratorListAST; - ast->comma_token = comma_token; - if (declarator) - ast->declarator = declarator->clone(pool); - if (next) - ast->next = next->clone(pool); - return ast; -} - void DeclaratorListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1182,18 +855,6 @@ unsigned DeclaratorListAST::lastToken() const return 0; } -DeleteExpressionAST *DeleteExpressionAST::clone(MemoryPool *pool) const -{ - DeleteExpressionAST *ast = new (pool) DeleteExpressionAST; - ast->scope_token = scope_token; - ast->delete_token = delete_token; - ast->lbracket_token = lbracket_token; - ast->rbracket_token = rbracket_token; - if (expression) - ast->expression = expression->clone(pool); - return ast; -} - void DeleteExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1222,14 +883,6 @@ unsigned DeleteExpressionAST::lastToken() const return scope_token + 1; } -DestructorNameAST *DestructorNameAST::clone(MemoryPool *pool) const -{ - DestructorNameAST *ast = new (pool) DestructorNameAST; - ast->tilde_token = tilde_token; - ast->identifier_token = identifier_token; - return ast; -} - void DestructorNameAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1249,21 +902,6 @@ unsigned DestructorNameAST::lastToken() const return tilde_token + 1; } -DoStatementAST *DoStatementAST::clone(MemoryPool *pool) const -{ - DoStatementAST *ast = new (pool) DoStatementAST; - ast->do_token = do_token; - if (statement) - ast->statement = statement->clone(pool); - ast->while_token = while_token; - ast->lparen_token = lparen_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rparen_token = rparen_token; - ast->semicolon_token = semicolon_token; - return ast; -} - void DoStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1295,15 +933,6 @@ unsigned DoStatementAST::lastToken() const return do_token + 1; } -ElaboratedTypeSpecifierAST *ElaboratedTypeSpecifierAST::clone(MemoryPool *pool) const -{ - ElaboratedTypeSpecifierAST *ast = new (pool) ElaboratedTypeSpecifierAST; - ast->classkey_token = classkey_token; - if (name) - ast->name = name->clone(pool); - return ast; -} - void ElaboratedTypeSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1324,13 +953,6 @@ unsigned ElaboratedTypeSpecifierAST::lastToken() const return classkey_token + 1; } -EmptyDeclarationAST *EmptyDeclarationAST::clone(MemoryPool *pool) const -{ - EmptyDeclarationAST *ast = new (pool) EmptyDeclarationAST; - ast->semicolon_token = semicolon_token; - return ast; -} - void EmptyDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1348,19 +970,6 @@ unsigned EmptyDeclarationAST::lastToken() const return semicolon_token + 1; } -EnumSpecifierAST *EnumSpecifierAST::clone(MemoryPool *pool) const -{ - EnumSpecifierAST *ast = new (pool) EnumSpecifierAST; - ast->enum_token = enum_token; - if (name) - ast->name = name->clone(pool); - ast->lbrace_token = lbrace_token; - if (enumerators) - ast->enumerators = enumerators->clone(pool); - ast->rbrace_token = rbrace_token; - return ast; -} - void EnumSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1395,19 +1004,6 @@ unsigned EnumSpecifierAST::lastToken() const return enum_token + 1; } -EnumeratorAST *EnumeratorAST::clone(MemoryPool *pool) const -{ - EnumeratorAST *ast = new (pool) EnumeratorAST; - ast->comma_token = comma_token; - ast->identifier_token = identifier_token; - ast->equal_token = equal_token; - if (expression) - ast->expression = expression->clone(pool); - if (next) - ast->next = next->clone(pool); - return ast; -} - void EnumeratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1430,17 +1026,6 @@ unsigned EnumeratorAST::lastToken() const return identifier_token + 1; } -ExceptionDeclarationAST *ExceptionDeclarationAST::clone(MemoryPool *pool) const -{ - ExceptionDeclarationAST *ast = new (pool) ExceptionDeclarationAST; - if (type_specifier) - ast->type_specifier = type_specifier->clone(pool); - if (declarator) - ast->declarator = declarator->clone(pool); - ast->dot_dot_dot_token = dot_dot_dot_token; - return ast; -} - void ExceptionDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1473,18 +1058,6 @@ unsigned ExceptionDeclarationAST::lastToken() const return 0; } -ExceptionSpecificationAST *ExceptionSpecificationAST::clone(MemoryPool *pool) const -{ - ExceptionSpecificationAST *ast = new (pool) ExceptionSpecificationAST; - ast->throw_token = throw_token; - ast->lparen_token = lparen_token; - ast->dot_dot_dot_token = dot_dot_dot_token; - if (type_ids) - ast->type_ids = type_ids->clone(pool); - ast->rparen_token = rparen_token; - return ast; -} - void ExceptionSpecificationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1518,17 +1091,6 @@ unsigned ExceptionSpecificationAST::lastToken() const return throw_token + 1; } -ExpressionListAST *ExpressionListAST::clone(MemoryPool *pool) const -{ - ExpressionListAST *ast = new (pool) ExpressionListAST; - ast->comma_token = comma_token; - if (expression) - ast->expression = expression->clone(pool); - if (next) - ast->next = next->clone(pool); - return ast; -} - void ExpressionListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1553,16 +1115,6 @@ unsigned ExpressionListAST::lastToken() const return 0; } -ExpressionOrDeclarationStatementAST *ExpressionOrDeclarationStatementAST::clone(MemoryPool *pool) const -{ - ExpressionOrDeclarationStatementAST *ast = new (pool) ExpressionOrDeclarationStatementAST; - if (expression) - ast->expression = expression->clone(pool); - if (declaration) - ast->declaration = declaration->clone(pool); - return ast; -} - void ExpressionOrDeclarationStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1582,15 +1134,6 @@ unsigned ExpressionOrDeclarationStatementAST::lastToken() const return declaration->lastToken(); } -ExpressionStatementAST *ExpressionStatementAST::clone(MemoryPool *pool) const -{ - ExpressionStatementAST *ast = new (pool) ExpressionStatementAST; - if (expression) - ast->expression = expression->clone(pool); - ast->semicolon_token = semicolon_token; - return ast; -} - void ExpressionStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1616,24 +1159,6 @@ unsigned ExpressionStatementAST::lastToken() const return 0; } -ForStatementAST *ForStatementAST::clone(MemoryPool *pool) const -{ - ForStatementAST *ast = new (pool) ForStatementAST; - ast->for_token = for_token; - ast->lparen_token = lparen_token; - if (initializer) - ast->initializer = initializer->clone(pool); - if (condition) - ast->condition = condition->clone(pool); - ast->semicolon_token = semicolon_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rparen_token = rparen_token; - if (statement) - ast->statement = statement->clone(pool); - return ast; -} - void ForStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1670,20 +1195,6 @@ unsigned ForStatementAST::lastToken() const return for_token + 1; } -FunctionDeclaratorAST *FunctionDeclaratorAST::clone(MemoryPool *pool) const -{ - FunctionDeclaratorAST *ast = new (pool) FunctionDeclaratorAST; - ast->lparen_token = lparen_token; - if (parameters) - ast->parameters = parameters->clone(pool); - ast->rparen_token = rparen_token; - if (cv_qualifier_seq) - ast->cv_qualifier_seq = cv_qualifier_seq->clone(pool); - if (exception_specification) - ast->exception_specification = exception_specification->clone(pool); - return ast; -} - void FunctionDeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1718,20 +1229,6 @@ unsigned FunctionDeclaratorAST::lastToken() const return lparen_token + 1; } -FunctionDefinitionAST *FunctionDefinitionAST::clone(MemoryPool *pool) const -{ - FunctionDefinitionAST *ast = new (pool) FunctionDefinitionAST; - if (decl_specifier_seq) - ast->decl_specifier_seq = decl_specifier_seq->clone(pool); - if (declarator) - ast->declarator = declarator->clone(pool); - if (ctor_initializer) - ast->ctor_initializer = ctor_initializer->clone(pool); - if (function_body) - ast->function_body = function_body->clone(pool); - return ast; -} - void FunctionDefinitionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1774,15 +1271,6 @@ unsigned FunctionDefinitionAST::lastToken() const return 0; } -GotoStatementAST *GotoStatementAST::clone(MemoryPool *pool) const -{ - GotoStatementAST *ast = new (pool) GotoStatementAST; - ast->goto_token = goto_token; - ast->identifier_token = identifier_token; - ast->semicolon_token = semicolon_token; - return ast; -} - void GotoStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1806,22 +1294,6 @@ unsigned GotoStatementAST::lastToken() const return 0; } -IfStatementAST *IfStatementAST::clone(MemoryPool *pool) const -{ - IfStatementAST *ast = new (pool) IfStatementAST; - ast->if_token = if_token; - ast->lparen_token = lparen_token; - if (condition) - ast->condition = condition->clone(pool); - ast->rparen_token = rparen_token; - if (statement) - ast->statement = statement->clone(pool); - ast->else_token = else_token; - if (else_statement) - ast->else_statement = else_statement->clone(pool); - return ast; -} - void IfStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1854,16 +1326,6 @@ unsigned IfStatementAST::lastToken() const return if_token + 1; } -LabeledStatementAST *LabeledStatementAST::clone(MemoryPool *pool) const -{ - LabeledStatementAST *ast = new (pool) LabeledStatementAST; - ast->label_token = label_token; - ast->colon_token = colon_token; - if (statement) - ast->statement = statement->clone(pool); - return ast; -} - void LabeledStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1886,16 +1348,6 @@ unsigned LabeledStatementAST::lastToken() const return label_token + 1; } -LinkageBodyAST *LinkageBodyAST::clone(MemoryPool *pool) const -{ - LinkageBodyAST *ast = new (pool) LinkageBodyAST; - ast->lbrace_token = lbrace_token; - if (declarations) - ast->declarations = declarations->clone(pool); - ast->rbrace_token = rbrace_token; - return ast; -} - void LinkageBodyAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1924,16 +1376,6 @@ unsigned LinkageBodyAST::lastToken() const return lbrace_token + 1; } -LinkageSpecificationAST *LinkageSpecificationAST::clone(MemoryPool *pool) const -{ - LinkageSpecificationAST *ast = new (pool) LinkageSpecificationAST; - ast->extern_token = extern_token; - ast->extern_type_token = extern_type_token; - if (declaration) - ast->declaration = declaration->clone(pool); - return ast; -} - void LinkageSpecificationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1956,21 +1398,6 @@ unsigned LinkageSpecificationAST::lastToken() const return extern_token + 1; } -MemInitializerAST *MemInitializerAST::clone(MemoryPool *pool) const -{ - MemInitializerAST *ast = new (pool) MemInitializerAST; - ast->comma_token = comma_token; - if (name) - ast->name = name->clone(pool); - ast->lparen_token = lparen_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rparen_token = rparen_token; - if (next) - ast->next = next->clone(pool); - return ast; -} - void MemInitializerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -1995,16 +1422,6 @@ unsigned MemInitializerAST::lastToken() const return name->lastToken(); } -MemberAccessAST *MemberAccessAST::clone(MemoryPool *pool) const -{ - MemberAccessAST *ast = new (pool) MemberAccessAST; - ast->access_token = access_token; - ast->template_token = template_token; - if (member_name) - ast->member_name = member_name->clone(pool); - return ast; -} - void MemberAccessAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2027,14 +1444,6 @@ unsigned MemberAccessAST::lastToken() const return access_token + 1; } -NamedTypeSpecifierAST *NamedTypeSpecifierAST::clone(MemoryPool *pool) const -{ - NamedTypeSpecifierAST *ast = new (pool) NamedTypeSpecifierAST; - if (name) - ast->name = name->clone(pool); - return ast; -} - void NamedTypeSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2053,18 +1462,6 @@ unsigned NamedTypeSpecifierAST::lastToken() const return name->lastToken(); } -NamespaceAST *NamespaceAST::clone(MemoryPool *pool) const -{ - NamespaceAST *ast = new (pool) NamespaceAST; - ast->namespace_token = namespace_token; - ast->identifier_token = identifier_token; - if (attributes) - ast->attributes = attributes->clone(pool); - if (linkage_body) - ast->linkage_body = linkage_body->clone(pool); - return ast; -} - void NamespaceAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2097,18 +1494,6 @@ unsigned NamespaceAST::lastToken() const return namespace_token + 1; } -NamespaceAliasDefinitionAST *NamespaceAliasDefinitionAST::clone(MemoryPool *pool) const -{ - NamespaceAliasDefinitionAST *ast = new (pool) NamespaceAliasDefinitionAST; - ast->namespace_token = namespace_token; - ast->namespace_name_token = namespace_name_token; - ast->equal_token = equal_token; - if (name) - ast->name = name->clone(pool); - ast->semicolon_token = semicolon_token; - return ast; -} - void NamespaceAliasDefinitionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2135,16 +1520,6 @@ unsigned NamespaceAliasDefinitionAST::lastToken() const return namespace_token + 1; } -NestedDeclaratorAST *NestedDeclaratorAST::clone(MemoryPool *pool) const -{ - NestedDeclaratorAST *ast = new (pool) NestedDeclaratorAST; - ast->lparen_token = lparen_token; - if (declarator) - ast->declarator = declarator->clone(pool); - ast->rparen_token = rparen_token; - return ast; -} - void NestedDeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2167,16 +1542,6 @@ unsigned NestedDeclaratorAST::lastToken() const return lparen_token + 1; } -NestedExpressionAST *NestedExpressionAST::clone(MemoryPool *pool) const -{ - NestedExpressionAST *ast = new (pool) NestedExpressionAST; - ast->lparen_token = lparen_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rparen_token = rparen_token; - return ast; -} - void NestedExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2199,17 +1564,6 @@ unsigned NestedExpressionAST::lastToken() const return lparen_token + 1; } -NestedNameSpecifierAST *NestedNameSpecifierAST::clone(MemoryPool *pool) const -{ - NestedNameSpecifierAST *ast = new (pool) NestedNameSpecifierAST; - if (class_or_namespace_name) - ast->class_or_namespace_name = class_or_namespace_name->clone(pool); - ast->scope_token = scope_token; - if (next) - ast->next = next->clone(pool); - return ast; -} - void NestedNameSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2231,16 +1585,6 @@ unsigned NestedNameSpecifierAST::lastToken() const return class_or_namespace_name->lastToken(); } -NewPlacementAST *NewPlacementAST::clone(MemoryPool *pool) const -{ - NewPlacementAST *ast = new (pool) NewPlacementAST; - ast->lparen_token = lparen_token; - if (expression_list) - ast->expression_list = expression_list->clone(pool); - ast->rparen_token = rparen_token; - return ast; -} - void NewPlacementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2261,18 +1605,6 @@ unsigned NewPlacementAST::lastToken() const return rparen_token + 1; } -NewArrayDeclaratorAST *NewArrayDeclaratorAST::clone(MemoryPool *pool) const -{ - NewArrayDeclaratorAST *ast = new (pool) NewArrayDeclaratorAST; - ast->lbracket_token = lbracket_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rbracket_token = rbracket_token; - if (next) - ast->next = next->clone(pool); - return ast; -} - void NewArrayDeclaratorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2292,25 +1624,6 @@ unsigned NewArrayDeclaratorAST::lastToken() const return rbracket_token + 1; } -NewExpressionAST *NewExpressionAST::clone(MemoryPool *pool) const -{ - NewExpressionAST *ast = new (pool) NewExpressionAST; - - ast->scope_token = scope_token; - ast->new_token = new_token; - if (new_placement) - ast->new_placement = new_placement->clone(pool); - ast->lparen_token = lparen_token; - if (type_id) - ast->type_id = type_id->clone(pool); - ast->rparen_token = rparen_token; - if (new_type_id) - ast->new_type_id = new_type_id->clone(pool); - if (new_initializer) - ast->new_initializer = new_initializer->clone(pool); - return ast; -} - void NewExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2340,16 +1653,6 @@ unsigned NewExpressionAST::lastToken() const return 0; } -NewInitializerAST *NewInitializerAST::clone(MemoryPool *pool) const -{ - NewInitializerAST *ast = new (pool) NewInitializerAST; - ast->lparen_token = lparen_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rparen_token = rparen_token; - return ast; -} - void NewInitializerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2372,29 +1675,6 @@ unsigned NewInitializerAST::lastToken() const return lparen_token + 1; } -TypeIdAST *TypeIdAST::clone(MemoryPool *pool) const -{ - TypeIdAST *ast = new (pool) TypeIdAST; - if (type_specifier) - ast->type_specifier = type_specifier->clone(pool); - if (declarator) - ast->declarator = declarator->clone(pool); - return ast; -} - -NewTypeIdAST *NewTypeIdAST::clone(MemoryPool *pool) const -{ - NewTypeIdAST *ast = new (pool) NewTypeIdAST; - - if (type_specifier) - ast->type_specifier = type_specifier->clone(pool); - if (ptr_operators) - ast->ptr_operators = ptr_operators->clone(pool); - if (new_array_declarators) - ast->new_array_declarators = new_array_declarators->clone(pool); - return ast; -} - void NewTypeIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2435,13 +1715,6 @@ unsigned NewTypeIdAST::lastToken() const return 0; } -NumericLiteralAST *NumericLiteralAST::clone(MemoryPool *pool) const -{ - NumericLiteralAST *ast = new (pool) NumericLiteralAST; - ast->literal_token = literal_token; - return ast; -} - void NumericLiteralAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2459,15 +1732,6 @@ unsigned NumericLiteralAST::lastToken() const return literal_token + 1; } -OperatorAST *OperatorAST::clone(MemoryPool *pool) const -{ - OperatorAST *ast = new (pool) OperatorAST; - ast->op_token = op_token; - ast->open_token = open_token; - ast->close_token = close_token; - return ast; -} - void OperatorAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2489,15 +1753,6 @@ unsigned OperatorAST::lastToken() const return op_token + 1; } -OperatorFunctionIdAST *OperatorFunctionIdAST::clone(MemoryPool *pool) const -{ - OperatorFunctionIdAST *ast = new (pool) OperatorFunctionIdAST; - ast->operator_token = operator_token; - if (op) - ast->op = op->clone(pool); - return ast; -} - void OperatorFunctionIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2518,19 +1773,6 @@ unsigned OperatorFunctionIdAST::lastToken() const return operator_token + 1; } -ParameterDeclarationAST *ParameterDeclarationAST::clone(MemoryPool *pool) const -{ - ParameterDeclarationAST *ast = new (pool) ParameterDeclarationAST; - if (type_specifier) - ast->type_specifier = type_specifier->clone(pool); - if (declarator) - ast->declarator = declarator->clone(pool); - ast->equal_token = equal_token; - if (expression) - ast->expression = expression->clone(pool); - return ast; -} - void ParameterDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2563,15 +1805,6 @@ unsigned ParameterDeclarationAST::lastToken() const return 0; } -ParameterDeclarationClauseAST *ParameterDeclarationClauseAST::clone(MemoryPool *pool) const -{ - ParameterDeclarationClauseAST *ast = new (pool) ParameterDeclarationClauseAST; - if (parameter_declarations) - ast->parameter_declarations = parameter_declarations; - ast->dot_dot_dot_token = dot_dot_dot_token; - return ast; -} - void ParameterDeclarationClauseAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2596,15 +1829,6 @@ unsigned ParameterDeclarationClauseAST::lastToken() const return parameter_declarations->lastToken(); } -PointerAST *PointerAST::clone(MemoryPool *pool) const -{ - PointerAST *ast = new (pool) PointerAST; - ast->star_token = star_token; - if (cv_qualifier_seq) - ast->cv_qualifier_seq = cv_qualifier_seq->clone(pool); - return ast; -} - void PointerAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2629,18 +1853,6 @@ unsigned PointerAST::lastToken() const return star_token + 1; } -PointerToMemberAST *PointerToMemberAST::clone(MemoryPool *pool) const -{ - PointerToMemberAST *ast = new (pool) PointerToMemberAST; - ast->global_scope_token = global_scope_token; - if (nested_name_specifier) - ast->nested_name_specifier = nested_name_specifier->clone(pool); - ast->star_token = star_token; - if (cv_qualifier_seq) - ast->cv_qualifier_seq = cv_qualifier_seq->clone(pool); - return ast; -} - void PointerToMemberAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2682,13 +1894,6 @@ unsigned PointerToMemberAST::lastToken() const return 0; } -PostIncrDecrAST *PostIncrDecrAST::clone(MemoryPool *pool) const -{ - PostIncrDecrAST *ast = new (pool) PostIncrDecrAST; - ast->incr_decr_token = incr_decr_token; - return ast; -} - void PostIncrDecrAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2706,16 +1911,6 @@ unsigned PostIncrDecrAST::lastToken() const return incr_decr_token + 1; } -PostfixExpressionAST *PostfixExpressionAST::clone(MemoryPool *pool) const -{ - PostfixExpressionAST *ast = new (pool) PostfixExpressionAST; - if (base_expression) - ast->base_expression = base_expression->clone(pool); - if (postfix_expressions) - ast->postfix_expressions = postfix_expressions->clone(pool); - return ast; -} - void PostfixExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2740,17 +1935,6 @@ unsigned PostfixExpressionAST::lastToken() const return base_expression->lastToken(); } -QualifiedNameAST *QualifiedNameAST::clone(MemoryPool *pool) const -{ - QualifiedNameAST *ast = new (pool) QualifiedNameAST; - ast->global_scope_token = global_scope_token; - if (nested_name_specifier) - ast->nested_name_specifier = nested_name_specifier->clone(pool); - if (unqualified_name) - ast->unqualified_name = unqualified_name->clone(pool); - return ast; -} - void QualifiedNameAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2785,13 +1969,6 @@ unsigned QualifiedNameAST::lastToken() const return 0; } -ReferenceAST *ReferenceAST::clone(MemoryPool *pool) const -{ - ReferenceAST *ast = new (pool) ReferenceAST; - ast->amp_token = amp_token; - return ast; -} - void ReferenceAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2809,16 +1986,6 @@ unsigned ReferenceAST::lastToken() const return amp_token + 1; } -ReturnStatementAST *ReturnStatementAST::clone(MemoryPool *pool) const -{ - ReturnStatementAST *ast = new (pool) ReturnStatementAST; - ast->return_token = return_token; - if (expression) - ast->expression = expression->clone(pool); - ast->semicolon_token = semicolon_token; - return ast; -} - void ReturnStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2841,17 +2008,6 @@ unsigned ReturnStatementAST::lastToken() const return return_token + 1; } -SimpleDeclarationAST *SimpleDeclarationAST::clone(MemoryPool *pool) const -{ - SimpleDeclarationAST *ast = new (pool) SimpleDeclarationAST; - if (decl_specifier_seq) - ast->decl_specifier_seq = decl_specifier_seq->clone(pool); - if (declarators) - ast->declarators = declarators->clone(pool); - ast->semicolon_token = semicolon_token; - return ast; -} - void SimpleDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2890,13 +2046,6 @@ unsigned SimpleDeclarationAST::lastToken() const return 0; } -SimpleNameAST *SimpleNameAST::clone(MemoryPool *pool) const -{ - SimpleNameAST *ast = new (pool) SimpleNameAST; - ast->identifier_token = identifier_token; - return ast; -} - void SimpleNameAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2921,15 +2070,6 @@ void SimpleSpecifierAST::accept0(ASTVisitor *visitor) visitor->endVisit(this); } -SimpleSpecifierAST *SimpleSpecifierAST::clone(MemoryPool *pool) const -{ - SimpleSpecifierAST *ast = new (pool) SimpleSpecifierAST; - ast->specifier_token = specifier_token; - if (next) - ast->next = next->clone(pool); - return ast; -} - unsigned SimpleSpecifierAST::firstToken() const { return specifier_token; @@ -2940,19 +2080,6 @@ unsigned SimpleSpecifierAST::lastToken() const return specifier_token + 1; } -TypeofSpecifierAST *TypeofSpecifierAST::clone(MemoryPool *pool) const -{ - TypeofSpecifierAST *ast = new (pool) TypeofSpecifierAST; - ast->typeof_token = typeof_token; - ast->lparen_token = lparen_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rparen_token = rparen_token; - if (next) - ast->next = next->clone(pool); - return ast; -} - void TypeofSpecifierAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -2973,15 +2100,6 @@ unsigned TypeofSpecifierAST::lastToken() const return typeof_token + 1; } -SizeofExpressionAST *SizeofExpressionAST::clone(MemoryPool *pool) const -{ - SizeofExpressionAST *ast = new (pool) SizeofExpressionAST; - ast->sizeof_token = sizeof_token; - if (expression) - ast->expression = expression->clone(pool); - return ast; -} - void SizeofExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3002,15 +2120,6 @@ unsigned SizeofExpressionAST::lastToken() const return sizeof_token + 1; } -StringLiteralAST *StringLiteralAST::clone(MemoryPool *pool) const -{ - StringLiteralAST *ast = new (pool) StringLiteralAST; - ast->literal_token = literal_token; - if (next) - ast->next = next->clone(pool); - return ast; -} - void StringLiteralAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3031,19 +2140,6 @@ unsigned StringLiteralAST::lastToken() const return literal_token + 1; } -SwitchStatementAST *SwitchStatementAST::clone(MemoryPool *pool) const -{ - SwitchStatementAST *ast = new (pool) SwitchStatementAST; - ast->switch_token = switch_token; - ast->lparen_token = lparen_token; - if (condition) - ast->condition = condition->clone(pool); - ast->rparen_token = rparen_token; - if (statement) - ast->statement = statement->clone(pool); - return ast; -} - void SwitchStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3071,17 +2167,6 @@ unsigned SwitchStatementAST::lastToken() const return switch_token + 1; } -TemplateArgumentListAST *TemplateArgumentListAST::clone(MemoryPool *pool) const -{ - TemplateArgumentListAST *ast = new (pool) TemplateArgumentListAST; - ast->comma_token = comma_token; - if (template_argument) - ast->template_argument = template_argument->clone(pool); - if (next) - ast->next = next->clone(pool); - return ast; -} - void TemplateArgumentListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3105,20 +2190,6 @@ unsigned TemplateArgumentListAST::lastToken() const return 0; } -TemplateDeclarationAST *TemplateDeclarationAST::clone(MemoryPool *pool) const -{ - TemplateDeclarationAST *ast = new (pool) TemplateDeclarationAST; - ast->export_token = export_token; - ast->template_token = template_token; - ast->less_token = less_token; - if (template_parameters) - ast->template_parameters = template_parameters->clone(pool); - ast->greater_token = greater_token; - if (declaration) - ast->declaration = declaration->clone(pool); - return ast; -} - void TemplateDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3159,17 +2230,6 @@ unsigned TemplateDeclarationAST::lastToken() const return 0; } -TemplateIdAST *TemplateIdAST::clone(MemoryPool *pool) const -{ - TemplateIdAST *ast = new (pool) TemplateIdAST; - ast->identifier_token = identifier_token; - ast->less_token = less_token; - if (template_arguments) - ast->template_arguments = template_arguments->clone(pool); - ast->greater_token = greater_token; - return ast; -} - void TemplateIdAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3201,23 +2261,6 @@ unsigned TemplateIdAST::lastToken() const return identifier_token + 1; } -TemplateTypeParameterAST *TemplateTypeParameterAST::clone(MemoryPool *pool) const -{ - TemplateTypeParameterAST *ast = new (pool) TemplateTypeParameterAST; - ast->template_token = template_token; - ast->less_token = less_token; - if (template_parameters) - ast->template_parameters = template_parameters->clone(pool); - ast->greater_token = greater_token; - ast->class_token = class_token; - if (name) - ast->name = name->clone(pool); - ast->equal_token = equal_token; - if (type_id) - ast->type_id = type_id->clone(pool); - return ast; -} - void TemplateTypeParameterAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3254,13 +2297,6 @@ unsigned TemplateTypeParameterAST::lastToken() const return template_token + 1; } -ThisExpressionAST *ThisExpressionAST::clone(MemoryPool *pool) const -{ - ThisExpressionAST *ast = new (pool) ThisExpressionAST; - ast->this_token = this_token; - return ast; -} - void ThisExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3278,15 +2314,6 @@ unsigned ThisExpressionAST::lastToken() const return this_token + 1; } -ThrowExpressionAST *ThrowExpressionAST::clone(MemoryPool *pool) const -{ - ThrowExpressionAST *ast = new (pool) ThrowExpressionAST; - ast->throw_token = throw_token; - if (expression) - ast->expression = expression->clone(pool); - return ast; -} - void ThrowExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3307,14 +2334,6 @@ unsigned ThrowExpressionAST::lastToken() const return throw_token + 1; } -TranslationUnitAST *TranslationUnitAST::clone(MemoryPool *pool) const -{ - TranslationUnitAST *ast = new (pool) TranslationUnitAST; - if (declarations) - ast->declarations = declarations->clone(pool); - return ast; -} - void TranslationUnitAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3339,17 +2358,6 @@ unsigned TranslationUnitAST::lastToken() const return 0; } -TryBlockStatementAST *TryBlockStatementAST::clone(MemoryPool *pool) const -{ - TryBlockStatementAST *ast = new (pool) TryBlockStatementAST; - ast->try_token = try_token; - if (statement) - ast->statement = statement->clone(pool); - if (catch_clause_seq) - ast->catch_clause_seq = catch_clause_seq->clone(pool); - return ast; -} - void TryBlockStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3377,18 +2385,6 @@ unsigned TryBlockStatementAST::lastToken() const return try_token + 1; } -TypeConstructorCallAST *TypeConstructorCallAST::clone(MemoryPool *pool) const -{ - TypeConstructorCallAST *ast = new (pool) TypeConstructorCallAST; - if (type_specifier) - ast->type_specifier = type_specifier->clone(pool); - ast->lparen_token = lparen_token; - if (expression_list) - ast->expression_list = expression_list; - ast->rparen_token = rparen_token; - return ast; -} - void TypeConstructorCallAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3456,17 +2452,6 @@ unsigned TypeIdAST::lastToken() const return 0; } -TypeidExpressionAST *TypeidExpressionAST::clone(MemoryPool *pool) const -{ - TypeidExpressionAST *ast = new (pool) TypeidExpressionAST; - ast->typeid_token = typeid_token; - ast->lparen_token = lparen_token; - if (expression) - ast->expression = expression->clone(pool); - ast->rparen_token = rparen_token; - return ast; -} - void TypeidExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3492,19 +2477,6 @@ unsigned TypeidExpressionAST::lastToken() const return typeid_token + 1; } -TypenameCallExpressionAST *TypenameCallExpressionAST::clone(MemoryPool *pool) const -{ - TypenameCallExpressionAST *ast = new (pool) TypenameCallExpressionAST; - ast->typename_token = typename_token; - if (name) - ast->name = name->clone(pool); - ast->lparen_token = lparen_token; - if (expression_list) - ast->expression_list = expression_list; - ast->rparen_token = rparen_token; - return ast; -} - void TypenameCallExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3539,18 +2511,6 @@ unsigned TypenameCallExpressionAST::lastToken() const return typename_token + 1; } -TypenameTypeParameterAST *TypenameTypeParameterAST::clone(MemoryPool *pool) const -{ - TypenameTypeParameterAST *ast = new (pool) TypenameTypeParameterAST; - ast->classkey_token = classkey_token; - if (name) - ast->name = name->clone(pool); - ast->equal_token = equal_token; - if (type_id) - ast->type_id = type_id->clone(pool); - return ast; -} - void TypenameTypeParameterAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3576,15 +2536,6 @@ unsigned TypenameTypeParameterAST::lastToken() const return classkey_token + 1; } -UnaryExpressionAST *UnaryExpressionAST::clone(MemoryPool *pool) const -{ - UnaryExpressionAST *ast = new (pool) UnaryExpressionAST; - ast->unary_op_token = unary_op_token; - if (expression) - ast->expression = expression->clone(pool); - return ast; -} - void UnaryExpressionAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3605,17 +2556,6 @@ unsigned UnaryExpressionAST::lastToken() const return unary_op_token + 1; } -UsingAST *UsingAST::clone(MemoryPool *pool) const -{ - UsingAST *ast = new (pool) UsingAST; - ast->using_token = using_token; - ast->typename_token = typename_token; - if (name) - ast->name = name->clone(pool); - ast->semicolon_token = semicolon_token; - return ast; -} - void UsingAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3640,17 +2580,6 @@ unsigned UsingAST::lastToken() const return using_token + 1; } -UsingDirectiveAST *UsingDirectiveAST::clone(MemoryPool *pool) const -{ - UsingDirectiveAST *ast = new (pool) UsingDirectiveAST; - ast->using_token = using_token; - ast->namespace_token = namespace_token; - if (name) - ast->name = name->clone(pool); - ast->semicolon_token = semicolon_token; - return ast; -} - void UsingDirectiveAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3675,19 +2604,6 @@ unsigned UsingDirectiveAST::lastToken() const return using_token + 1; } -WhileStatementAST *WhileStatementAST::clone(MemoryPool *pool) const -{ - WhileStatementAST *ast = new (pool) WhileStatementAST; - ast->while_token = while_token; - ast->lparen_token = lparen_token; - if (condition) - ast->condition = condition->clone(pool); - ast->rparen_token = rparen_token; - if (statement) - ast->statement = statement->clone(pool); - return ast; -} - void WhileStatementAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3732,15 +2648,6 @@ unsigned IdentifierListAST::lastToken() const return 0; } -IdentifierListAST *IdentifierListAST::clone(MemoryPool *pool) const -{ - IdentifierListAST *ast = new (pool) IdentifierListAST; - ast->identifier_token = identifier_token; - if (next) - ast->next = next->clone(pool); - return ast; -} - void IdentifierListAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { @@ -3773,18 +2680,6 @@ unsigned ObjCClassDeclarationAST::lastToken() const return class_token + 1; } -ObjCClassDeclarationAST *ObjCClassDeclarationAST::clone(MemoryPool *pool) const -{ - ObjCClassDeclarationAST *ast = new (pool) ObjCClassDeclarationAST; - if (attributes) - ast->attributes = attributes->clone(pool); - ast->class_token = class_token; - if (identifier_list) - ast->identifier_list = identifier_list->clone(pool); - ast->semicolon_token = semicolon_token; - return ast; -} - void ObjCClassDeclarationAST::accept0(ASTVisitor *visitor) { if (visitor->visit(this)) { diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp new file mode 100644 index 0000000000..605c97c486 --- /dev/null +++ b/src/shared/cplusplus/ASTClone.cpp @@ -0,0 +1,1087 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** +**************************************************************************/ + +#include "AST.h" + +CPLUSPLUS_BEGIN_NAMESPACE + +SimpleSpecifierAST *SimpleSpecifierAST::clone(MemoryPool *pool) const +{ + SimpleSpecifierAST *ast = new (pool) SimpleSpecifierAST; + // copy SimpleSpecifierAST + ast->specifier_token = specifier_token; + return ast; +} + +AttributeSpecifierAST *AttributeSpecifierAST::clone(MemoryPool *pool) const +{ + AttributeSpecifierAST *ast = new (pool) AttributeSpecifierAST; + // copy AttributeSpecifierAST + ast->attribute_token = attribute_token; + ast->first_lparen_token = first_lparen_token; + ast->second_lparen_token = second_lparen_token; + if (attributes) ast->attributes = attributes->clone(pool); + ast->first_rparen_token = first_rparen_token; + ast->second_rparen_token = second_rparen_token; + return ast; +} + +AttributeAST *AttributeAST::clone(MemoryPool *pool) const +{ + AttributeAST *ast = new (pool) AttributeAST; + // copy AttributeAST + ast->identifier_token = identifier_token; + ast->lparen_token = lparen_token; + ast->tag_token = tag_token; + if (expression_list) ast->expression_list = expression_list->clone(pool); + ast->rparen_token = rparen_token; + if (next) ast->next = next->clone(pool); + ast->comma_token = comma_token; + return ast; +} + +TypeofSpecifierAST *TypeofSpecifierAST::clone(MemoryPool *pool) const +{ + TypeofSpecifierAST *ast = new (pool) TypeofSpecifierAST; + // copy TypeofSpecifierAST + ast->typeof_token = typeof_token; + ast->lparen_token = lparen_token; + if (expression) ast->expression = expression->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +DeclaratorAST *DeclaratorAST::clone(MemoryPool *pool) const +{ + DeclaratorAST *ast = new (pool) DeclaratorAST; + // copy DeclaratorAST + if (ptr_operators) ast->ptr_operators = ptr_operators->clone(pool); + if (core_declarator) ast->core_declarator = core_declarator->clone(pool); + if (postfix_declarators) ast->postfix_declarators = postfix_declarators->clone(pool); + if (attributes) ast->attributes = attributes->clone(pool); + ast->equals_token = equals_token; + if (initializer) ast->initializer = initializer->clone(pool); + return ast; +} + +ExpressionListAST *ExpressionListAST::clone(MemoryPool *pool) const +{ + ExpressionListAST *ast = new (pool) ExpressionListAST; + // copy ExpressionListAST + ast->comma_token = comma_token; + if (expression) ast->expression = expression->clone(pool); + if (next) ast->next = next->clone(pool); + return ast; +} + +SimpleDeclarationAST *SimpleDeclarationAST::clone(MemoryPool *pool) const +{ + SimpleDeclarationAST *ast = new (pool) SimpleDeclarationAST; + // copy SimpleDeclarationAST + ast->qt_invokable_token = qt_invokable_token; + if (decl_specifier_seq) ast->decl_specifier_seq = decl_specifier_seq->clone(pool); + if (declarators) ast->declarators = declarators->clone(pool); + ast->semicolon_token = semicolon_token; + return ast; +} + +EmptyDeclarationAST *EmptyDeclarationAST::clone(MemoryPool *pool) const +{ + EmptyDeclarationAST *ast = new (pool) EmptyDeclarationAST; + // copy EmptyDeclarationAST + ast->semicolon_token = semicolon_token; + return ast; +} + +AccessDeclarationAST *AccessDeclarationAST::clone(MemoryPool *pool) const +{ + AccessDeclarationAST *ast = new (pool) AccessDeclarationAST; + // copy AccessDeclarationAST + ast->access_specifier_token = access_specifier_token; + ast->slots_token = slots_token; + ast->colon_token = colon_token; + return ast; +} + +AsmDefinitionAST *AsmDefinitionAST::clone(MemoryPool *pool) const +{ + AsmDefinitionAST *ast = new (pool) AsmDefinitionAST; + // copy AsmDefinitionAST + ast->asm_token = asm_token; + ast->volatile_token = volatile_token; + ast->lparen_token = lparen_token; + ast->rparen_token = rparen_token; + ast->semicolon_token = semicolon_token; + return ast; +} + +BaseSpecifierAST *BaseSpecifierAST::clone(MemoryPool *pool) const +{ + BaseSpecifierAST *ast = new (pool) BaseSpecifierAST; + // copy BaseSpecifierAST + ast->comma_token = comma_token; + ast->virtual_token = virtual_token; + ast->access_specifier_token = access_specifier_token; + if (name) ast->name = name->clone(pool); + if (next) ast->next = next->clone(pool); + return ast; +} + +CompoundLiteralAST *CompoundLiteralAST::clone(MemoryPool *pool) const +{ + CompoundLiteralAST *ast = new (pool) CompoundLiteralAST; + // copy CompoundLiteralAST + ast->lparen_token = lparen_token; + if (type_id) ast->type_id = type_id->clone(pool); + ast->rparen_token = rparen_token; + if (initializer) ast->initializer = initializer->clone(pool); + return ast; +} + +QtMethodAST *QtMethodAST::clone(MemoryPool *pool) const +{ + QtMethodAST *ast = new (pool) QtMethodAST; + // copy QtMethodAST + ast->method_token = method_token; + ast->lparen_token = lparen_token; + if (declarator) ast->declarator = declarator->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +BinaryExpressionAST *BinaryExpressionAST::clone(MemoryPool *pool) const +{ + BinaryExpressionAST *ast = new (pool) BinaryExpressionAST; + // copy BinaryExpressionAST + if (left_expression) ast->left_expression = left_expression->clone(pool); + ast->binary_op_token = binary_op_token; + if (right_expression) ast->right_expression = right_expression->clone(pool); + return ast; +} + +CastExpressionAST *CastExpressionAST::clone(MemoryPool *pool) const +{ + CastExpressionAST *ast = new (pool) CastExpressionAST; + // copy CastExpressionAST + ast->lparen_token = lparen_token; + if (type_id) ast->type_id = type_id->clone(pool); + ast->rparen_token = rparen_token; + if (expression) ast->expression = expression->clone(pool); + return ast; +} + +ClassSpecifierAST *ClassSpecifierAST::clone(MemoryPool *pool) const +{ + ClassSpecifierAST *ast = new (pool) ClassSpecifierAST; + // copy ClassSpecifierAST + ast->classkey_token = classkey_token; + if (attributes) ast->attributes = attributes->clone(pool); + if (name) ast->name = name->clone(pool); + ast->colon_token = colon_token; + if (base_clause) ast->base_clause = base_clause->clone(pool); + ast->lbrace_token = lbrace_token; + if (member_specifiers) ast->member_specifiers = member_specifiers->clone(pool); + ast->rbrace_token = rbrace_token; + return ast; +} + +CaseStatementAST *CaseStatementAST::clone(MemoryPool *pool) const +{ + CaseStatementAST *ast = new (pool) CaseStatementAST; + // copy CaseStatementAST + ast->case_token = case_token; + if (expression) ast->expression = expression->clone(pool); + ast->colon_token = colon_token; + if (statement) ast->statement = statement->clone(pool); + return ast; +} + +CompoundStatementAST *CompoundStatementAST::clone(MemoryPool *pool) const +{ + CompoundStatementAST *ast = new (pool) CompoundStatementAST; + // copy CompoundStatementAST + ast->lbrace_token = lbrace_token; + if (statements) ast->statements = statements->clone(pool); + ast->rbrace_token = rbrace_token; + return ast; +} + +ConditionAST *ConditionAST::clone(MemoryPool *pool) const +{ + ConditionAST *ast = new (pool) ConditionAST; + // copy ConditionAST + if (type_specifier) ast->type_specifier = type_specifier->clone(pool); + if (declarator) ast->declarator = declarator->clone(pool); + return ast; +} + +ConditionalExpressionAST *ConditionalExpressionAST::clone(MemoryPool *pool) const +{ + ConditionalExpressionAST *ast = new (pool) ConditionalExpressionAST; + // copy ConditionalExpressionAST + if (condition) ast->condition = condition->clone(pool); + ast->question_token = question_token; + if (left_expression) ast->left_expression = left_expression->clone(pool); + ast->colon_token = colon_token; + if (right_expression) ast->right_expression = right_expression->clone(pool); + return ast; +} + +CppCastExpressionAST *CppCastExpressionAST::clone(MemoryPool *pool) const +{ + CppCastExpressionAST *ast = new (pool) CppCastExpressionAST; + // copy CppCastExpressionAST + ast->cast_token = cast_token; + ast->less_token = less_token; + if (type_id) ast->type_id = type_id->clone(pool); + ast->greater_token = greater_token; + ast->lparen_token = lparen_token; + if (expression) ast->expression = expression->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +CtorInitializerAST *CtorInitializerAST::clone(MemoryPool *pool) const +{ + CtorInitializerAST *ast = new (pool) CtorInitializerAST; + // copy CtorInitializerAST + ast->colon_token = colon_token; + if (member_initializers) ast->member_initializers = member_initializers->clone(pool); + return ast; +} + +DeclarationStatementAST *DeclarationStatementAST::clone(MemoryPool *pool) const +{ + DeclarationStatementAST *ast = new (pool) DeclarationStatementAST; + // copy DeclarationStatementAST + if (declaration) ast->declaration = declaration->clone(pool); + return ast; +} + +DeclaratorIdAST *DeclaratorIdAST::clone(MemoryPool *pool) const +{ + DeclaratorIdAST *ast = new (pool) DeclaratorIdAST; + // copy DeclaratorIdAST + if (name) ast->name = name->clone(pool); + return ast; +} + +NestedDeclaratorAST *NestedDeclaratorAST::clone(MemoryPool *pool) const +{ + NestedDeclaratorAST *ast = new (pool) NestedDeclaratorAST; + // copy NestedDeclaratorAST + ast->lparen_token = lparen_token; + if (declarator) ast->declarator = declarator->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +FunctionDeclaratorAST *FunctionDeclaratorAST::clone(MemoryPool *pool) const +{ + FunctionDeclaratorAST *ast = new (pool) FunctionDeclaratorAST; + // copy FunctionDeclaratorAST + ast->lparen_token = lparen_token; + if (parameters) ast->parameters = parameters->clone(pool); + ast->rparen_token = rparen_token; + if (cv_qualifier_seq) ast->cv_qualifier_seq = cv_qualifier_seq->clone(pool); + if (exception_specification) ast->exception_specification = exception_specification->clone(pool); + if (as_cpp_initializer) ast->as_cpp_initializer = as_cpp_initializer->clone(pool); + return ast; +} + +ArrayDeclaratorAST *ArrayDeclaratorAST::clone(MemoryPool *pool) const +{ + ArrayDeclaratorAST *ast = new (pool) ArrayDeclaratorAST; + // copy ArrayDeclaratorAST + ast->lbracket_token = lbracket_token; + if (expression) ast->expression = expression->clone(pool); + ast->rbracket_token = rbracket_token; + return ast; +} + +DeclaratorListAST *DeclaratorListAST::clone(MemoryPool *pool) const +{ + DeclaratorListAST *ast = new (pool) DeclaratorListAST; + // copy DeclaratorListAST + ast->comma_token = comma_token; + if (declarator) ast->declarator = declarator->clone(pool); + if (next) ast->next = next->clone(pool); + return ast; +} + +DeleteExpressionAST *DeleteExpressionAST::clone(MemoryPool *pool) const +{ + DeleteExpressionAST *ast = new (pool) DeleteExpressionAST; + // copy DeleteExpressionAST + ast->scope_token = scope_token; + ast->delete_token = delete_token; + ast->lbracket_token = lbracket_token; + ast->rbracket_token = rbracket_token; + if (expression) ast->expression = expression->clone(pool); + return ast; +} + +DoStatementAST *DoStatementAST::clone(MemoryPool *pool) const +{ + DoStatementAST *ast = new (pool) DoStatementAST; + // copy DoStatementAST + ast->do_token = do_token; + if (statement) ast->statement = statement->clone(pool); + ast->while_token = while_token; + ast->lparen_token = lparen_token; + if (expression) ast->expression = expression->clone(pool); + ast->rparen_token = rparen_token; + ast->semicolon_token = semicolon_token; + return ast; +} + +NamedTypeSpecifierAST *NamedTypeSpecifierAST::clone(MemoryPool *pool) const +{ + NamedTypeSpecifierAST *ast = new (pool) NamedTypeSpecifierAST; + // copy NamedTypeSpecifierAST + if (name) ast->name = name->clone(pool); + return ast; +} + +ElaboratedTypeSpecifierAST *ElaboratedTypeSpecifierAST::clone(MemoryPool *pool) const +{ + ElaboratedTypeSpecifierAST *ast = new (pool) ElaboratedTypeSpecifierAST; + // copy ElaboratedTypeSpecifierAST + ast->classkey_token = classkey_token; + if (name) ast->name = name->clone(pool); + return ast; +} + +EnumSpecifierAST *EnumSpecifierAST::clone(MemoryPool *pool) const +{ + EnumSpecifierAST *ast = new (pool) EnumSpecifierAST; + // copy EnumSpecifierAST + ast->enum_token = enum_token; + if (name) ast->name = name->clone(pool); + ast->lbrace_token = lbrace_token; + if (enumerators) ast->enumerators = enumerators->clone(pool); + ast->rbrace_token = rbrace_token; + return ast; +} + +EnumeratorAST *EnumeratorAST::clone(MemoryPool *pool) const +{ + EnumeratorAST *ast = new (pool) EnumeratorAST; + // copy EnumeratorAST + ast->comma_token = comma_token; + ast->identifier_token = identifier_token; + ast->equal_token = equal_token; + if (expression) ast->expression = expression->clone(pool); + if (next) ast->next = next->clone(pool); + return ast; +} + +ExceptionDeclarationAST *ExceptionDeclarationAST::clone(MemoryPool *pool) const +{ + ExceptionDeclarationAST *ast = new (pool) ExceptionDeclarationAST; + // copy ExceptionDeclarationAST + if (type_specifier) ast->type_specifier = type_specifier->clone(pool); + if (declarator) ast->declarator = declarator->clone(pool); + ast->dot_dot_dot_token = dot_dot_dot_token; + return ast; +} + +ExceptionSpecificationAST *ExceptionSpecificationAST::clone(MemoryPool *pool) const +{ + ExceptionSpecificationAST *ast = new (pool) ExceptionSpecificationAST; + // copy ExceptionSpecificationAST + ast->throw_token = throw_token; + ast->lparen_token = lparen_token; + ast->dot_dot_dot_token = dot_dot_dot_token; + if (type_ids) ast->type_ids = type_ids->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +ExpressionOrDeclarationStatementAST *ExpressionOrDeclarationStatementAST::clone(MemoryPool *pool) const +{ + ExpressionOrDeclarationStatementAST *ast = new (pool) ExpressionOrDeclarationStatementAST; + // copy ExpressionOrDeclarationStatementAST + if (expression) ast->expression = expression->clone(pool); + if (declaration) ast->declaration = declaration->clone(pool); + return ast; +} + +ExpressionStatementAST *ExpressionStatementAST::clone(MemoryPool *pool) const +{ + ExpressionStatementAST *ast = new (pool) ExpressionStatementAST; + // copy ExpressionStatementAST + if (expression) ast->expression = expression->clone(pool); + ast->semicolon_token = semicolon_token; + return ast; +} + +FunctionDefinitionAST *FunctionDefinitionAST::clone(MemoryPool *pool) const +{ + FunctionDefinitionAST *ast = new (pool) FunctionDefinitionAST; + // copy FunctionDefinitionAST + ast->qt_invokable_token = qt_invokable_token; + if (decl_specifier_seq) ast->decl_specifier_seq = decl_specifier_seq->clone(pool); + if (declarator) ast->declarator = declarator->clone(pool); + if (ctor_initializer) ast->ctor_initializer = ctor_initializer->clone(pool); + if (function_body) ast->function_body = function_body->clone(pool); + return ast; +} + +ForStatementAST *ForStatementAST::clone(MemoryPool *pool) const +{ + ForStatementAST *ast = new (pool) ForStatementAST; + // copy ForStatementAST + ast->for_token = for_token; + ast->lparen_token = lparen_token; + if (initializer) ast->initializer = initializer->clone(pool); + if (condition) ast->condition = condition->clone(pool); + ast->semicolon_token = semicolon_token; + if (expression) ast->expression = expression->clone(pool); + ast->rparen_token = rparen_token; + if (statement) ast->statement = statement->clone(pool); + return ast; +} + +IfStatementAST *IfStatementAST::clone(MemoryPool *pool) const +{ + IfStatementAST *ast = new (pool) IfStatementAST; + // copy IfStatementAST + ast->if_token = if_token; + ast->lparen_token = lparen_token; + if (condition) ast->condition = condition->clone(pool); + ast->rparen_token = rparen_token; + if (statement) ast->statement = statement->clone(pool); + ast->else_token = else_token; + if (else_statement) ast->else_statement = else_statement->clone(pool); + return ast; +} + +ArrayInitializerAST *ArrayInitializerAST::clone(MemoryPool *pool) const +{ + ArrayInitializerAST *ast = new (pool) ArrayInitializerAST; + // copy ArrayInitializerAST + ast->lbrace_token = lbrace_token; + if (expression_list) ast->expression_list = expression_list->clone(pool); + ast->rbrace_token = rbrace_token; + return ast; +} + +LabeledStatementAST *LabeledStatementAST::clone(MemoryPool *pool) const +{ + LabeledStatementAST *ast = new (pool) LabeledStatementAST; + // copy LabeledStatementAST + ast->label_token = label_token; + ast->colon_token = colon_token; + if (statement) ast->statement = statement->clone(pool); + return ast; +} + +LinkageBodyAST *LinkageBodyAST::clone(MemoryPool *pool) const +{ + LinkageBodyAST *ast = new (pool) LinkageBodyAST; + // copy LinkageBodyAST + ast->lbrace_token = lbrace_token; + if (declarations) ast->declarations = declarations->clone(pool); + ast->rbrace_token = rbrace_token; + return ast; +} + +LinkageSpecificationAST *LinkageSpecificationAST::clone(MemoryPool *pool) const +{ + LinkageSpecificationAST *ast = new (pool) LinkageSpecificationAST; + // copy LinkageSpecificationAST + ast->extern_token = extern_token; + ast->extern_type_token = extern_type_token; + if (declaration) ast->declaration = declaration->clone(pool); + return ast; +} + +MemInitializerAST *MemInitializerAST::clone(MemoryPool *pool) const +{ + MemInitializerAST *ast = new (pool) MemInitializerAST; + // copy MemInitializerAST + ast->comma_token = comma_token; + if (name) ast->name = name->clone(pool); + ast->lparen_token = lparen_token; + if (expression) ast->expression = expression->clone(pool); + ast->rparen_token = rparen_token; + if (next) ast->next = next->clone(pool); + return ast; +} + +NestedNameSpecifierAST *NestedNameSpecifierAST::clone(MemoryPool *pool) const +{ + NestedNameSpecifierAST *ast = new (pool) NestedNameSpecifierAST; + // copy NestedNameSpecifierAST + if (class_or_namespace_name) ast->class_or_namespace_name = class_or_namespace_name->clone(pool); + ast->scope_token = scope_token; + if (next) ast->next = next->clone(pool); + return ast; +} + +QualifiedNameAST *QualifiedNameAST::clone(MemoryPool *pool) const +{ + QualifiedNameAST *ast = new (pool) QualifiedNameAST; + // copy QualifiedNameAST + ast->global_scope_token = global_scope_token; + if (nested_name_specifier) ast->nested_name_specifier = nested_name_specifier->clone(pool); + if (unqualified_name) ast->unqualified_name = unqualified_name->clone(pool); + return ast; +} + +OperatorFunctionIdAST *OperatorFunctionIdAST::clone(MemoryPool *pool) const +{ + OperatorFunctionIdAST *ast = new (pool) OperatorFunctionIdAST; + // copy OperatorFunctionIdAST + ast->operator_token = operator_token; + if (op) ast->op = op->clone(pool); + return ast; +} + +ConversionFunctionIdAST *ConversionFunctionIdAST::clone(MemoryPool *pool) const +{ + ConversionFunctionIdAST *ast = new (pool) ConversionFunctionIdAST; + // copy ConversionFunctionIdAST + ast->operator_token = operator_token; + if (type_specifier) ast->type_specifier = type_specifier->clone(pool); + if (ptr_operators) ast->ptr_operators = ptr_operators->clone(pool); + return ast; +} + +SimpleNameAST *SimpleNameAST::clone(MemoryPool *pool) const +{ + SimpleNameAST *ast = new (pool) SimpleNameAST; + // copy SimpleNameAST + ast->identifier_token = identifier_token; + return ast; +} + +DestructorNameAST *DestructorNameAST::clone(MemoryPool *pool) const +{ + DestructorNameAST *ast = new (pool) DestructorNameAST; + // copy DestructorNameAST + ast->tilde_token = tilde_token; + ast->identifier_token = identifier_token; + return ast; +} + +TemplateIdAST *TemplateIdAST::clone(MemoryPool *pool) const +{ + TemplateIdAST *ast = new (pool) TemplateIdAST; + // copy TemplateIdAST + ast->identifier_token = identifier_token; + ast->less_token = less_token; + if (template_arguments) ast->template_arguments = template_arguments->clone(pool); + ast->greater_token = greater_token; + return ast; +} + +NamespaceAST *NamespaceAST::clone(MemoryPool *pool) const +{ + NamespaceAST *ast = new (pool) NamespaceAST; + // copy NamespaceAST + ast->namespace_token = namespace_token; + ast->identifier_token = identifier_token; + if (attributes) ast->attributes = attributes->clone(pool); + if (linkage_body) ast->linkage_body = linkage_body->clone(pool); + return ast; +} + +NamespaceAliasDefinitionAST *NamespaceAliasDefinitionAST::clone(MemoryPool *pool) const +{ + NamespaceAliasDefinitionAST *ast = new (pool) NamespaceAliasDefinitionAST; + // copy NamespaceAliasDefinitionAST + ast->namespace_token = namespace_token; + ast->namespace_name_token = namespace_name_token; + ast->equal_token = equal_token; + if (name) ast->name = name->clone(pool); + ast->semicolon_token = semicolon_token; + return ast; +} + +NewPlacementAST *NewPlacementAST::clone(MemoryPool *pool) const +{ + NewPlacementAST *ast = new (pool) NewPlacementAST; + // copy NewPlacementAST + ast->lparen_token = lparen_token; + if (expression_list) ast->expression_list = expression_list->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +NewArrayDeclaratorAST *NewArrayDeclaratorAST::clone(MemoryPool *pool) const +{ + NewArrayDeclaratorAST *ast = new (pool) NewArrayDeclaratorAST; + // copy NewArrayDeclaratorAST + ast->lbracket_token = lbracket_token; + if (expression) ast->expression = expression->clone(pool); + ast->rbracket_token = rbracket_token; + if (next) ast->next = next->clone(pool); + return ast; +} + +NewExpressionAST *NewExpressionAST::clone(MemoryPool *pool) const +{ + NewExpressionAST *ast = new (pool) NewExpressionAST; + // copy NewExpressionAST + ast->scope_token = scope_token; + ast->new_token = new_token; + if (new_placement) ast->new_placement = new_placement->clone(pool); + ast->lparen_token = lparen_token; + if (type_id) ast->type_id = type_id->clone(pool); + ast->rparen_token = rparen_token; + if (new_type_id) ast->new_type_id = new_type_id->clone(pool); + if (new_initializer) ast->new_initializer = new_initializer->clone(pool); + return ast; +} + +NewInitializerAST *NewInitializerAST::clone(MemoryPool *pool) const +{ + NewInitializerAST *ast = new (pool) NewInitializerAST; + // copy NewInitializerAST + ast->lparen_token = lparen_token; + if (expression) ast->expression = expression->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +NewTypeIdAST *NewTypeIdAST::clone(MemoryPool *pool) const +{ + NewTypeIdAST *ast = new (pool) NewTypeIdAST; + // copy NewTypeIdAST + if (type_specifier) ast->type_specifier = type_specifier->clone(pool); + if (ptr_operators) ast->ptr_operators = ptr_operators->clone(pool); + if (new_array_declarators) ast->new_array_declarators = new_array_declarators->clone(pool); + return ast; +} + +OperatorAST *OperatorAST::clone(MemoryPool *pool) const +{ + OperatorAST *ast = new (pool) OperatorAST; + // copy OperatorAST + ast->op_token = op_token; + ast->open_token = open_token; + ast->close_token = close_token; + return ast; +} + +ParameterDeclarationAST *ParameterDeclarationAST::clone(MemoryPool *pool) const +{ + ParameterDeclarationAST *ast = new (pool) ParameterDeclarationAST; + // copy ParameterDeclarationAST + if (type_specifier) ast->type_specifier = type_specifier->clone(pool); + if (declarator) ast->declarator = declarator->clone(pool); + ast->equal_token = equal_token; + if (expression) ast->expression = expression->clone(pool); + return ast; +} + +ParameterDeclarationClauseAST *ParameterDeclarationClauseAST::clone(MemoryPool *pool) const +{ + ParameterDeclarationClauseAST *ast = new (pool) ParameterDeclarationClauseAST; + // copy ParameterDeclarationClauseAST + if (parameter_declarations) ast->parameter_declarations = parameter_declarations->clone(pool); + ast->dot_dot_dot_token = dot_dot_dot_token; + return ast; +} + +CallAST *CallAST::clone(MemoryPool *pool) const +{ + CallAST *ast = new (pool) CallAST; + // copy CallAST + ast->lparen_token = lparen_token; + if (expression_list) ast->expression_list = expression_list->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +ArrayAccessAST *ArrayAccessAST::clone(MemoryPool *pool) const +{ + ArrayAccessAST *ast = new (pool) ArrayAccessAST; + // copy ArrayAccessAST + ast->lbracket_token = lbracket_token; + if (expression) ast->expression = expression->clone(pool); + ast->rbracket_token = rbracket_token; + return ast; +} + +PostIncrDecrAST *PostIncrDecrAST::clone(MemoryPool *pool) const +{ + PostIncrDecrAST *ast = new (pool) PostIncrDecrAST; + // copy PostIncrDecrAST + ast->incr_decr_token = incr_decr_token; + return ast; +} + +MemberAccessAST *MemberAccessAST::clone(MemoryPool *pool) const +{ + MemberAccessAST *ast = new (pool) MemberAccessAST; + // copy MemberAccessAST + ast->access_token = access_token; + ast->template_token = template_token; + if (member_name) ast->member_name = member_name->clone(pool); + return ast; +} + +TypeidExpressionAST *TypeidExpressionAST::clone(MemoryPool *pool) const +{ + TypeidExpressionAST *ast = new (pool) TypeidExpressionAST; + // copy TypeidExpressionAST + ast->typeid_token = typeid_token; + ast->lparen_token = lparen_token; + if (expression) ast->expression = expression->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +TypenameCallExpressionAST *TypenameCallExpressionAST::clone(MemoryPool *pool) const +{ + TypenameCallExpressionAST *ast = new (pool) TypenameCallExpressionAST; + // copy TypenameCallExpressionAST + ast->typename_token = typename_token; + if (name) ast->name = name->clone(pool); + ast->lparen_token = lparen_token; + if (expression_list) ast->expression_list = expression_list->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +TypeConstructorCallAST *TypeConstructorCallAST::clone(MemoryPool *pool) const +{ + TypeConstructorCallAST *ast = new (pool) TypeConstructorCallAST; + // copy TypeConstructorCallAST + if (type_specifier) ast->type_specifier = type_specifier->clone(pool); + ast->lparen_token = lparen_token; + if (expression_list) ast->expression_list = expression_list->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +PostfixExpressionAST *PostfixExpressionAST::clone(MemoryPool *pool) const +{ + PostfixExpressionAST *ast = new (pool) PostfixExpressionAST; + // copy PostfixExpressionAST + if (base_expression) ast->base_expression = base_expression->clone(pool); + if (postfix_expressions) ast->postfix_expressions = postfix_expressions->clone(pool); + return ast; +} + +PointerToMemberAST *PointerToMemberAST::clone(MemoryPool *pool) const +{ + PointerToMemberAST *ast = new (pool) PointerToMemberAST; + // copy PointerToMemberAST + ast->global_scope_token = global_scope_token; + if (nested_name_specifier) ast->nested_name_specifier = nested_name_specifier->clone(pool); + ast->star_token = star_token; + if (cv_qualifier_seq) ast->cv_qualifier_seq = cv_qualifier_seq->clone(pool); + return ast; +} + +PointerAST *PointerAST::clone(MemoryPool *pool) const +{ + PointerAST *ast = new (pool) PointerAST; + // copy PointerAST + ast->star_token = star_token; + if (cv_qualifier_seq) ast->cv_qualifier_seq = cv_qualifier_seq->clone(pool); + return ast; +} + +ReferenceAST *ReferenceAST::clone(MemoryPool *pool) const +{ + ReferenceAST *ast = new (pool) ReferenceAST; + // copy ReferenceAST + ast->amp_token = amp_token; + return ast; +} + +BreakStatementAST *BreakStatementAST::clone(MemoryPool *pool) const +{ + BreakStatementAST *ast = new (pool) BreakStatementAST; + // copy BreakStatementAST + ast->break_token = break_token; + ast->semicolon_token = semicolon_token; + return ast; +} + +ContinueStatementAST *ContinueStatementAST::clone(MemoryPool *pool) const +{ + ContinueStatementAST *ast = new (pool) ContinueStatementAST; + // copy ContinueStatementAST + ast->continue_token = continue_token; + ast->semicolon_token = semicolon_token; + return ast; +} + +GotoStatementAST *GotoStatementAST::clone(MemoryPool *pool) const +{ + GotoStatementAST *ast = new (pool) GotoStatementAST; + // copy GotoStatementAST + ast->goto_token = goto_token; + ast->identifier_token = identifier_token; + ast->semicolon_token = semicolon_token; + return ast; +} + +ReturnStatementAST *ReturnStatementAST::clone(MemoryPool *pool) const +{ + ReturnStatementAST *ast = new (pool) ReturnStatementAST; + // copy ReturnStatementAST + ast->return_token = return_token; + if (expression) ast->expression = expression->clone(pool); + ast->semicolon_token = semicolon_token; + return ast; +} + +SizeofExpressionAST *SizeofExpressionAST::clone(MemoryPool *pool) const +{ + SizeofExpressionAST *ast = new (pool) SizeofExpressionAST; + // copy SizeofExpressionAST + ast->sizeof_token = sizeof_token; + if (expression) ast->expression = expression->clone(pool); + return ast; +} + +NumericLiteralAST *NumericLiteralAST::clone(MemoryPool *pool) const +{ + NumericLiteralAST *ast = new (pool) NumericLiteralAST; + // copy NumericLiteralAST + ast->literal_token = literal_token; + return ast; +} + +BoolLiteralAST *BoolLiteralAST::clone(MemoryPool *pool) const +{ + BoolLiteralAST *ast = new (pool) BoolLiteralAST; + // copy BoolLiteralAST + ast->literal_token = literal_token; + return ast; +} + +ThisExpressionAST *ThisExpressionAST::clone(MemoryPool *pool) const +{ + ThisExpressionAST *ast = new (pool) ThisExpressionAST; + // copy ThisExpressionAST + ast->this_token = this_token; + return ast; +} + +NestedExpressionAST *NestedExpressionAST::clone(MemoryPool *pool) const +{ + NestedExpressionAST *ast = new (pool) NestedExpressionAST; + // copy NestedExpressionAST + ast->lparen_token = lparen_token; + if (expression) ast->expression = expression->clone(pool); + ast->rparen_token = rparen_token; + return ast; +} + +StringLiteralAST *StringLiteralAST::clone(MemoryPool *pool) const +{ + StringLiteralAST *ast = new (pool) StringLiteralAST; + // copy StringLiteralAST + ast->literal_token = literal_token; + if (next) ast->next = next->clone(pool); + return ast; +} + +SwitchStatementAST *SwitchStatementAST::clone(MemoryPool *pool) const +{ + SwitchStatementAST *ast = new (pool) SwitchStatementAST; + // copy SwitchStatementAST + ast->switch_token = switch_token; + ast->lparen_token = lparen_token; + if (condition) ast->condition = condition->clone(pool); + ast->rparen_token = rparen_token; + if (statement) ast->statement = statement->clone(pool); + return ast; +} + +TemplateArgumentListAST *TemplateArgumentListAST::clone(MemoryPool *pool) const +{ + TemplateArgumentListAST *ast = new (pool) TemplateArgumentListAST; + // copy TemplateArgumentListAST + ast->comma_token = comma_token; + if (template_argument) ast->template_argument = template_argument->clone(pool); + if (next) ast->next = next->clone(pool); + return ast; +} + +TemplateDeclarationAST *TemplateDeclarationAST::clone(MemoryPool *pool) const +{ + TemplateDeclarationAST *ast = new (pool) TemplateDeclarationAST; + // copy TemplateDeclarationAST + ast->export_token = export_token; + ast->template_token = template_token; + ast->less_token = less_token; + if (template_parameters) ast->template_parameters = template_parameters->clone(pool); + ast->greater_token = greater_token; + if (declaration) ast->declaration = declaration->clone(pool); + return ast; +} + +ThrowExpressionAST *ThrowExpressionAST::clone(MemoryPool *pool) const +{ + ThrowExpressionAST *ast = new (pool) ThrowExpressionAST; + // copy ThrowExpressionAST + ast->throw_token = throw_token; + if (expression) ast->expression = expression->clone(pool); + return ast; +} + +TranslationUnitAST *TranslationUnitAST::clone(MemoryPool *pool) const +{ + TranslationUnitAST *ast = new (pool) TranslationUnitAST; + // copy TranslationUnitAST + if (declarations) ast->declarations = declarations->clone(pool); + return ast; +} + +TryBlockStatementAST *TryBlockStatementAST::clone(MemoryPool *pool) const +{ + TryBlockStatementAST *ast = new (pool) TryBlockStatementAST; + // copy TryBlockStatementAST + ast->try_token = try_token; + if (statement) ast->statement = statement->clone(pool); + if (catch_clause_seq) ast->catch_clause_seq = catch_clause_seq->clone(pool); + return ast; +} + +CatchClauseAST *CatchClauseAST::clone(MemoryPool *pool) const +{ + CatchClauseAST *ast = new (pool) CatchClauseAST; + // copy CatchClauseAST + ast->catch_token = catch_token; + ast->lparen_token = lparen_token; + if (exception_declaration) ast->exception_declaration = exception_declaration->clone(pool); + ast->rparen_token = rparen_token; + if (statement) ast->statement = statement->clone(pool); + if (next) ast->next = next->clone(pool); + return ast; +} + +TypeIdAST *TypeIdAST::clone(MemoryPool *pool) const +{ + TypeIdAST *ast = new (pool) TypeIdAST; + // copy TypeIdAST + if (type_specifier) ast->type_specifier = type_specifier->clone(pool); + if (declarator) ast->declarator = declarator->clone(pool); + return ast; +} + +TypenameTypeParameterAST *TypenameTypeParameterAST::clone(MemoryPool *pool) const +{ + TypenameTypeParameterAST *ast = new (pool) TypenameTypeParameterAST; + // copy TypenameTypeParameterAST + ast->classkey_token = classkey_token; + if (name) ast->name = name->clone(pool); + ast->equal_token = equal_token; + if (type_id) ast->type_id = type_id->clone(pool); + return ast; +} + +TemplateTypeParameterAST *TemplateTypeParameterAST::clone(MemoryPool *pool) const +{ + TemplateTypeParameterAST *ast = new (pool) TemplateTypeParameterAST; + // copy TemplateTypeParameterAST + ast->template_token = template_token; + ast->less_token = less_token; + if (template_parameters) ast->template_parameters = template_parameters->clone(pool); + ast->greater_token = greater_token; + ast->class_token = class_token; + if (name) ast->name = name->clone(pool); + ast->equal_token = equal_token; + if (type_id) ast->type_id = type_id->clone(pool); + return ast; +} + +UnaryExpressionAST *UnaryExpressionAST::clone(MemoryPool *pool) const +{ + UnaryExpressionAST *ast = new (pool) UnaryExpressionAST; + // copy UnaryExpressionAST + ast->unary_op_token = unary_op_token; + if (expression) ast->expression = expression->clone(pool); + return ast; +} + +UsingAST *UsingAST::clone(MemoryPool *pool) const +{ + UsingAST *ast = new (pool) UsingAST; + // copy UsingAST + ast->using_token = using_token; + ast->typename_token = typename_token; + if (name) ast->name = name->clone(pool); + ast->semicolon_token = semicolon_token; + return ast; +} + +UsingDirectiveAST *UsingDirectiveAST::clone(MemoryPool *pool) const +{ + UsingDirectiveAST *ast = new (pool) UsingDirectiveAST; + // copy UsingDirectiveAST + ast->using_token = using_token; + ast->namespace_token = namespace_token; + if (name) ast->name = name->clone(pool); + ast->semicolon_token = semicolon_token; + return ast; +} + +WhileStatementAST *WhileStatementAST::clone(MemoryPool *pool) const +{ + WhileStatementAST *ast = new (pool) WhileStatementAST; + // copy WhileStatementAST + ast->while_token = while_token; + ast->lparen_token = lparen_token; + if (condition) ast->condition = condition->clone(pool); + ast->rparen_token = rparen_token; + if (statement) ast->statement = statement->clone(pool); + return ast; +} + +IdentifierListAST *IdentifierListAST::clone(MemoryPool *pool) const +{ + IdentifierListAST *ast = new (pool) IdentifierListAST; + // copy IdentifierListAST + ast->identifier_token = identifier_token; + if (next) ast->next = next->clone(pool); + return ast; +} + +ObjCClassDeclarationAST *ObjCClassDeclarationAST::clone(MemoryPool *pool) const +{ + ObjCClassDeclarationAST *ast = new (pool) ObjCClassDeclarationAST; + // copy ObjCClassDeclarationAST + if (attributes) ast->attributes = attributes->clone(pool); + ast->class_token = class_token; + if (identifier_list) ast->identifier_list = identifier_list->clone(pool); + ast->semicolon_token = semicolon_token; + return ast; +} + +CPLUSPLUS_END_NAMESPACE diff --git a/src/shared/cplusplus/cplusplus.pri b/src/shared/cplusplus/cplusplus.pri index 3a62ed6b7d..b3abaa545c 100644 --- a/src/shared/cplusplus/cplusplus.pri +++ b/src/shared/cplusplus/cplusplus.pri @@ -41,6 +41,7 @@ HEADERS += \ SOURCES += \ $$PWD/AST.cpp \ + $$PWD/ASTClone.cpp \ $$PWD/ASTVisitor.cpp \ $$PWD/Array.cpp \ $$PWD/CheckDeclaration.cpp \ |