Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2008-12-17 15:41:35 +0000
committerMike Kucera2008-12-17 15:41:35 +0000
commita036483c1817b7aadb44c6f3fbbca01ae89ad835 (patch)
treec4e6d54200e939ef80e45953fd44f5796caa08b8 /core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal
parentde24d81d292e37940a457897f60432af7d9e0ef5 (diff)
downloadorg.eclipse.cdt-a036483c1817b7aadb44c6f3fbbca01ae89ad835.tar.gz
org.eclipse.cdt-a036483c1817b7aadb44c6f3fbbca01ae89ad835.tar.xz
org.eclipse.cdt-a036483c1817b7aadb44c6f3fbbca01ae89ad835.zip
bug 258345, implementation of IASTNode.copy()
Diffstat (limited to 'core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTAmbiguousCastVsFunctionCallExpression.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTEnumerator.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTProblem.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTTranslationUnit.java16
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/IASTInternalEnumerationSpecifier.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTASMDeclaration.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousBinaryVsCastExpression.java5
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousDeclarator.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousExpression.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousParameterDeclaration.java5
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDeclarator.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDesignator.java5
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayModifier.java5
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayRangeDesignator.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArraySubscriptExpression.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBaseDeclSpecifier.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBinaryExpression.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBreakStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCaseStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCastExpression.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompositeTypeSpecifier.java15
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatementExpression.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTConditionalExpression.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTContinueStatement.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarationStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarator.java16
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDefaultStatement.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDesignatedInitializer.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDoStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTElaboratedTypeSpecifier.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerationSpecifier.java14
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerator.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionList.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionStatement.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDeclarator.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDesignator.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldReference.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTForStatement.java14
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionCallExpression.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDeclarator.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDefinition.java15
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTGotoStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIfStatement.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerExpression.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerList.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTKnRFunctionDeclarator.java25
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLabelStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLiteralExpression.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTModifiedArrayModifier.java13
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTName.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTNullStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTParameterDeclaration.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTPointer.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblem.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemDeclaration.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemExpression.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemOwner.java5
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTReturnStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclSpecifier.java19
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclaration.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSwitchStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTranslationUnit.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeId.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdExpression.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdInitializerExpression.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTUnaryExpression.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTWhileStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GCCASTSimpleDeclSpecifier.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTASMDeclaration.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousBinaryVsCastExpression.java5
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclaration.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclarator.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousExpression.java5
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousStatement.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousTemplateArgument.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayDeclarator.java13
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayModifier.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseDeclSpecifier.java13
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseSpecifier.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryExpression.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBreakStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCaseStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCastExpression.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCatchHandler.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompositeTypeSpecifier.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatementExpression.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConditionalExpression.java22
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorChainInitializer.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorInitializer.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTContinueStatement.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConversionName.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarationStatement.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java28
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDefaultStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeleteExpression.java17
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDoStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTElaboratedTypeSpecifier.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerationSpecifier.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerator.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExplicitTemplateInstantiation.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionList.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionStatement.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldDeclarator.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldReference.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTForStatement.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionCallExpression.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDeclarator.java17
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDefinition.java20
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionWithTryBlock.java21
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTGotoStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIdExpression.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIfStatement.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerExpression.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerList.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLabelStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTName.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamedTypeSpecifier.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceAlias.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceDefinition.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNewExpression.java19
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNullStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTOperatorName.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTParameterDeclaration.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointer.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointerToMember.java12
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblem.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemDeclaration.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemExpression.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemOwner.java5
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemStatement.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemTypeId.java17
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReferenceOperator.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReturnStatement.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclSpecifier.java20
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclaration.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeConstructorExpression.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeTemplateParameter.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSwitchStatement.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateId.java39
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateSpecialization.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplatedTypeTemplateParameter.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTranslationUnit.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTryBlockStatement.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeId.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeIdExpression.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypenameExpression.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUnaryExpression.java14
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDeclaration.java7
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDirective.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTVisibilityLabel.java6
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTWhileStatement.java9
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTExplicitTemplateInstantiation.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointer.java10
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointerToMember.java11
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTSimpleDeclSpecifier.java14
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/ASTLiteralNode.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ContainerNode.java8
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorName.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMASTAdapter.java4
171 files changed, 1476 insertions, 77 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTAmbiguousCastVsFunctionCallExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTAmbiguousCastVsFunctionCallExpression.java
index 03048ed0b85..bf1c1f883da 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTAmbiguousCastVsFunctionCallExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTAmbiguousCastVsFunctionCallExpression.java
@@ -46,6 +46,10 @@ public abstract class ASTAmbiguousCastVsFunctionCallExpression extends ASTNode i
fFunctionCallExpression= functionCall;
}
+ public IASTExpression copy() {
+ throw new UnsupportedOperationException();
+ }
+
public void addExpression(IASTExpression e) {
Assert.isLegal(false);
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTEnumerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTEnumerator.java
index 5bf0a5e1a7e..2999c79708f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTEnumerator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTEnumerator.java
@@ -35,6 +35,12 @@ public abstract class ASTEnumerator extends ASTNode implements IASTEnumerator, I
setName(name);
setValue(value);
}
+
+ protected void copyAbstractEnumerator(ASTEnumerator copy) {
+ copy.setName(name == null ? null : name.copy());
+ copy.setValue(value == null ? null : value.copy());
+ copy.setOffsetAndLength(this);
+ }
public void setName(IASTName name) {
assertNotFrozen();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTProblem.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTProblem.java
index 7751d9f3dc0..cc7b392ef55 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTProblem.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTProblem.java
@@ -49,6 +49,12 @@ public class ASTProblem extends ASTNode implements IASTProblem {
this.isError= isError;
}
+ public ASTProblem copy() {
+ ASTProblem problem = new ASTProblem(id, arg == null ? null : arg.clone(), isError);
+ problem.setOffsetAndLength(this);
+ return problem;
+ }
+
public int getID() {
return id;
}
@@ -93,6 +99,10 @@ public class ASTProblem extends ASTNode implements IASTProblem {
return arg == null ? new String[0] : new String[] {new String(arg)};
}
+ public char[] getArgument() {
+ return arg;
+ }
+
protected static final Map<Integer, String> errorMessages;
static {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTTranslationUnit.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTTranslationUnit.java
index af48519d648..ec19144401d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTTranslationUnit.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTTranslationUnit.java
@@ -60,7 +60,8 @@ public abstract class ASTTranslationUnit extends ASTNode implements IASTTranslat
private boolean fIsHeader= true;
private IIndexFileSet fIndexFileSet;
private INodeFactory fNodeFactory;
-
+
+
@Override
public final IASTTranslationUnit getTranslationUnit() {
return this;
@@ -362,4 +363,17 @@ public abstract class ASTTranslationUnit extends ASTNode implements IASTTranslat
}
});
}
+
+
+ protected void copyAbstractTU(ASTTranslationUnit copy) {
+ copy.setIndex(fIndex);
+ copy.setIsHeaderUnit(fIsHeader);
+ copy.setASTNodeFactory(fNodeFactory);
+ copy.setLocationResolver(fLocationResolver);
+
+ for(IASTDeclaration declaration : getDeclarations())
+ copy.addDeclaration(declaration == null ? null : declaration.copy());
+
+ copy.setOffsetAndLength(this);
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/IASTInternalEnumerationSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/IASTInternalEnumerationSpecifier.java
index 4dfd9c06106..7bc08231750 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/IASTInternalEnumerationSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/IASTInternalEnumerationSpecifier.java
@@ -14,6 +14,7 @@ import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier;
/**
* Internal interface for c- or c++ enumeration specifiers.
+ * @noimplement This interface is not intended to be implemented by clients.
*/
public interface IASTInternalEnumerationSpecifier extends IASTEnumerationSpecifier {
/**
@@ -21,4 +22,9 @@ public interface IASTInternalEnumerationSpecifier extends IASTEnumerationSpecifi
* first attempt to do so.
*/
boolean startValueComputation();
+
+ /**
+ * @since 5.1
+ */
+ public IASTInternalEnumerationSpecifier copy();
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTASMDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTASMDeclaration.java
index 62888525d3b..4201b859b18 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTASMDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTASMDeclaration.java
@@ -29,6 +29,13 @@ public class CASTASMDeclaration extends ASTNode implements IASTASMDeclaration {
setAssembly(assembly);
}
+ public CASTASMDeclaration copy() {
+ CASTASMDeclaration copy = new CASTASMDeclaration();
+ copy.assembly = assembly == null ? null : assembly.clone();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public String getAssembly() {
if( assembly == null ) return ""; //$NON-NLS-1$
return new String( assembly );
@@ -36,7 +43,7 @@ public class CASTASMDeclaration extends ASTNode implements IASTASMDeclaration {
public void setAssembly(String assembly) {
assertNotFrozen();
- this.assembly = assembly.toCharArray();
+ this.assembly = assembly == null ? null : assembly.toCharArray();
}
@Override
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousBinaryVsCastExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousBinaryVsCastExpression.java
index 80ac21af0c0..5b66ee7495f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousBinaryVsCastExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousBinaryVsCastExpression.java
@@ -12,6 +12,7 @@ package org.eclipse.cdt.internal.core.dom.parser.c;
import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
+import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.internal.core.dom.parser.ASTAmbiguousBinaryVsCastExpression;
public class CASTAmbiguousBinaryVsCastExpression extends ASTAmbiguousBinaryVsCastExpression {
@@ -19,4 +20,8 @@ public class CASTAmbiguousBinaryVsCastExpression extends ASTAmbiguousBinaryVsCas
public CASTAmbiguousBinaryVsCastExpression(IASTBinaryExpression binaryExpr, IASTCastExpression castExpr) {
super(binaryExpr, castExpr);
}
+
+ public IASTExpression copy() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousDeclarator.java
index d79f577c9e0..ffa79493748 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousDeclarator.java
@@ -97,4 +97,8 @@ public class CASTAmbiguousDeclarator extends CASTAmbiguity implements IASTAmbigu
assertNotFrozen();
Assert.isLegal(false);
}
+
+ public IASTDeclarator copy() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousExpression.java
index 6346bdc250b..13afb3948e2 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousExpression.java
@@ -57,5 +57,9 @@ public class CASTAmbiguousExpression extends CASTAmbiguity implements IASTAmbigu
public IType getExpressionType() {
return CVisitor.getExpressionType(this);
}
+
+ public IASTExpression copy() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousParameterDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousParameterDeclaration.java
index a4cda4fc8cc..20aa19d522b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousParameterDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousParameterDeclaration.java
@@ -71,4 +71,9 @@ public class CASTAmbiguousParameterDeclaration extends CASTAmbiguity implements
assertNotFrozen();
Assert.isLegal(false);
}
+
+ public IASTParameterDeclaration copy() {
+ throw new UnsupportedOperationException();
+ }
+
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousStatement.java
index 8cfb5f6f734..1d94cc204e4 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTAmbiguousStatement.java
@@ -16,8 +16,7 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement;
-public class CASTAmbiguousStatement extends CASTAmbiguity implements
- IASTAmbiguousStatement {
+public class CASTAmbiguousStatement extends CASTAmbiguity implements IASTAmbiguousStatement {
private IASTStatement [] stmts = new IASTStatement[2];
private int stmtsPos=-1;
@@ -50,4 +49,9 @@ public class CASTAmbiguousStatement extends CASTAmbiguity implements
}
+ public IASTStatement copy() {
+ throw new UnsupportedOperationException();
+ }
+
+
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDeclarator.java
index 443e9bc414a..c5cce07557d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDeclarator.java
@@ -36,6 +36,15 @@ public class CASTArrayDeclarator extends CASTDeclarator implements IASTArrayDecl
public CASTArrayDeclarator(IASTName name) {
super(name);
}
+
+ @Override
+ public CASTArrayDeclarator copy() {
+ CASTArrayDeclarator copy = new CASTArrayDeclarator();
+ copyBaseDeclarator(copy);
+ for(IASTArrayModifier modifier : getArrayModifiers())
+ copy.addArrayModifier(modifier == null ? null : modifier.copy());
+ return copy;
+ }
public IASTArrayModifier[] getArrayModifiers() {
if( arrayMods == null ) return IASTArrayModifier.EMPTY_ARRAY;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDesignator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDesignator.java
index 1916818e067..ad45fc20754 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDesignator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayDesignator.java
@@ -36,6 +36,11 @@ public class CASTArrayDesignator extends ASTNode implements
setSubscriptExpression(exp);
}
+ public CASTArrayDesignator copy() {
+ CASTArrayDesignator copy = new CASTArrayDesignator(exp == null ? null : exp.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getSubscriptExpression() {
return exp;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayModifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayModifier.java
index dc40f6e7548..b30a9b0deb4 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayModifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayModifier.java
@@ -33,6 +33,11 @@ public class CASTArrayModifier extends ASTNode implements IASTArrayModifier, IAS
setConstantExpression(exp);
}
+ public CASTArrayModifier copy() {
+ CASTArrayModifier copy = new CASTArrayModifier(exp == null ? null : exp.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getConstantExpression() {
return exp;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayRangeDesignator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayRangeDesignator.java
index f050e30aeb9..ab651efdc2b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayRangeDesignator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArrayRangeDesignator.java
@@ -36,6 +36,14 @@ public class CASTArrayRangeDesignator extends ASTNode implements
setRangeCeiling(ceiling);
}
+ public CASTArrayRangeDesignator copy() {
+ CASTArrayRangeDesignator copy = new CASTArrayRangeDesignator();
+ copy.setRangeFloor(floor == null ? null : floor.copy());
+ copy.setRangeCeiling(ceiling == null ? null : ceiling.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getRangeFloor() {
return this.floor;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArraySubscriptExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArraySubscriptExpression.java
index 58362b47774..20233ebbadd 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArraySubscriptExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTArraySubscriptExpression.java
@@ -36,6 +36,14 @@ public class CASTArraySubscriptExpression extends ASTNode implements
setSubscriptExpression(subscript);
}
+ public CASTArraySubscriptExpression copy() {
+ CASTArraySubscriptExpression copy = new CASTArraySubscriptExpression();
+ copy.setArrayExpression(array == null ? null : array.copy());
+ copy.setSubscriptExpression(subscript == null ? null : subscript.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getArrayExpression() {
return array;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBaseDeclSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBaseDeclSpecifier.java
index 1a609995782..645072209c5 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBaseDeclSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBaseDeclSpecifier.java
@@ -25,6 +25,7 @@ public abstract class CASTBaseDeclSpecifier extends ASTNode implements ICASTDecl
protected boolean isRestrict;
protected boolean isInline;
+
public boolean isRestrict() {
return isRestrict;
}
@@ -69,4 +70,13 @@ public abstract class CASTBaseDeclSpecifier extends ASTNode implements ICASTDecl
assertNotFrozen();
this.isInline = value;
}
+
+ protected void copyBaseDeclSpec(CASTBaseDeclSpecifier copy) {
+ copy.storageClass = storageClass;
+ copy.isConst = isConst;
+ copy.isVolatile = isVolatile;
+ copy.isRestrict = isRestrict;
+ copy.isInline = isInline;
+ copy.setOffsetAndLength(this);
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBinaryExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBinaryExpression.java
index 4a785eb245a..d1bed861679 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBinaryExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBinaryExpression.java
@@ -37,6 +37,15 @@ public class CASTBinaryExpression extends ASTNode implements
setOperand1(operand1);
setOperand2(operand2);
}
+
+ public CASTBinaryExpression copy() {
+ CASTBinaryExpression copy = new CASTBinaryExpression();
+ copy.op = op;
+ copy.setOperand1(operand1 == null ? null : operand1.copy());
+ copy.setOperand2(operand2 == null ? null : operand2.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public int getOperator() {
return op;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBreakStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBreakStatement.java
index 7b5b0e7ef07..6e677e60cdb 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBreakStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTBreakStatement.java
@@ -40,4 +40,10 @@ public class CASTBreakStatement extends ASTNode implements IASTBreakStatement {
return true;
}
+
+ public CASTBreakStatement copy() {
+ CASTBreakStatement copy = new CASTBreakStatement();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCaseStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCaseStatement.java
index b3cb4045d9e..c0cd0b572f0 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCaseStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCaseStatement.java
@@ -32,6 +32,12 @@ public class CASTCaseStatement extends ASTNode implements IASTCaseStatement, IAS
public CASTCaseStatement(IASTExpression expression) {
setExpression(expression);
}
+
+ public CASTCaseStatement copy() {
+ CASTCaseStatement copy = new CASTCaseStatement(expression == null ? null : expression.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getExpression() {
return expression;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCastExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCastExpression.java
index e219667af9f..29aa8060953 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCastExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCastExpression.java
@@ -24,12 +24,23 @@ public class CASTCastExpression extends CASTUnaryExpression implements IASTCastE
public CASTCastExpression() {
+ super(op_cast, null);
}
public CASTCastExpression(IASTTypeId typeId, IASTExpression operand) {
super(op_cast, operand);
setTypeId(typeId);
}
+
+ @Override
+ public CASTCastExpression copy() {
+ CASTCastExpression copy = new CASTCastExpression();
+ copy.setTypeId(typeId == null ? null : typeId.copy());
+ IASTExpression operand = getOperand();
+ copy.setOperand(operand == null ? null : operand.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public void setTypeId(IASTTypeId typeId) {
assertNotFrozen();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompositeTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompositeTypeSpecifier.java
index 7bcfd7bd8dd..35c2a1d78ee 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompositeTypeSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompositeTypeSpecifier.java
@@ -37,6 +37,21 @@ public class CASTCompositeTypeSpecifier extends CASTBaseDeclSpecifier implements
setName(name);
}
+ public CASTCompositeTypeSpecifier copy() {
+ CASTCompositeTypeSpecifier copy = new CASTCompositeTypeSpecifier();
+ copyCompositeTypeSpecifier(copy);
+ return copy;
+ }
+
+ protected void copyCompositeTypeSpecifier(CASTCompositeTypeSpecifier copy) {
+ copyBaseDeclSpec(copy);
+ copy.setKey(key);
+ copy.setName(name == null ? null : name.copy());
+ for(IASTDeclaration member : getMembers())
+ copy.addMemberDeclaration(member == null ? null : member.copy());
+ }
+
+
public int getKey() {
return key;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatement.java
index 38a774a83be..acbffeb83be 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatement.java
@@ -30,6 +30,14 @@ public class CASTCompoundStatement extends ASTNode implements IASTCompoundStatem
private IScope scope = null;
+ public CASTCompoundStatement copy() {
+ CASTCompoundStatement copy = new CASTCompoundStatement();
+ for(IASTStatement statement : getStatements())
+ copy.addStatement(statement == null ? null : statement.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTStatement[] getStatements() {
if( statements == null ) return IASTStatement.EMPTY_STATEMENT_ARRAY;
return (IASTStatement[]) ArrayUtil.trim( IASTStatement.class, statements );
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatementExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatementExpression.java
index a78787ae33c..a995ed04ddd 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatementExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTCompoundStatementExpression.java
@@ -31,6 +31,13 @@ public class CASTCompoundStatementExpression extends ASTNode implements
public CASTCompoundStatementExpression(IASTCompoundStatement statement) {
setCompoundStatement(statement);
}
+
+ public CASTCompoundStatementExpression copy() {
+ CASTCompoundStatementExpression copy = new CASTCompoundStatementExpression();
+ copy.setCompoundStatement(statement == null ? null : statement.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTCompoundStatement getCompoundStatement() {
return statement;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTConditionalExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTConditionalExpression.java
index 189fbf67b2b..105480b4e71 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTConditionalExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTConditionalExpression.java
@@ -38,6 +38,15 @@ public class CASTConditionalExpression extends ASTNode implements
setPositiveResultExpression(positive);
setNegativeResultExpression(negative);
}
+
+ public CASTConditionalExpression copy() {
+ CASTConditionalExpression copy = new CASTConditionalExpression();
+ copy.setLogicalConditionExpression(condition == null ? null : condition.copy());
+ copy.setPositiveResultExpression(positive == null ? null : positive.copy());
+ copy.setNegativeResultExpression(negative == null ? null : negative.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getLogicalConditionExpression() {
return condition;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTContinueStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTContinueStatement.java
index c93d13a2126..017cd079e58 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTContinueStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTContinueStatement.java
@@ -18,8 +18,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
/**
* @author jcamelon
*/
-public class CASTContinueStatement extends ASTNode implements
- IASTContinueStatement {
+public class CASTContinueStatement extends ASTNode implements IASTContinueStatement {
@Override
public boolean accept( ASTVisitor action ){
@@ -39,4 +38,10 @@ public class CASTContinueStatement extends ASTNode implements
}
return true;
}
+
+ public CASTContinueStatement copy() {
+ CASTContinueStatement copy = new CASTContinueStatement();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarationStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarationStatement.java
index a4a39529fb7..3f4c5fefd50 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarationStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarationStatement.java
@@ -31,6 +31,14 @@ public class CASTDeclarationStatement extends ASTNode implements IASTDeclaration
setDeclaration(declaration);
}
+
+ public CASTDeclarationStatement copy() {
+ CASTDeclarationStatement copy = new CASTDeclarationStatement();
+ copy.setDeclaration(declaration == null ? null : declaration.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTDeclaration getDeclaration() {
return declaration;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarator.java
index 3be37d4cf65..dc02f58c747 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDeclarator.java
@@ -51,6 +51,22 @@ public class CASTDeclarator extends ASTNode implements IASTDeclarator, IASTAmbig
setName(name);
}
+ public CASTDeclarator copy() {
+ CASTDeclarator copy = new CASTDeclarator();
+ copyBaseDeclarator(copy);
+ return copy;
+ }
+
+ protected void copyBaseDeclarator(CASTDeclarator copy) {
+ copy.setName(name == null ? null : name.copy());
+ copy.setInitializer(initializer == null ? null : initializer.copy());
+ copy.setNestedDeclarator(nestedDeclarator == null ? null : nestedDeclarator.copy());
+ for(IASTPointerOperator pointer : getPointerOperators())
+ copy.addPointerOperator(pointer == null ? null : pointer.copy());
+ copy.setOffsetAndLength(this);
+ }
+
+
public IASTPointerOperator[] getPointerOperators() {
if (pointerOps == null) return IASTPointerOperator.EMPTY_ARRAY;
pointerOps = (IASTPointerOperator[]) ArrayUtil.removeNullsAfter(IASTPointerOperator.class, pointerOps, pointerOpsPos);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDefaultStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDefaultStatement.java
index 65a93450d44..d8655f2fa44 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDefaultStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDefaultStatement.java
@@ -18,8 +18,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
/**
* @author jcamelon
*/
-public class CASTDefaultStatement extends ASTNode implements
- IASTDefaultStatement {
+public class CASTDefaultStatement extends ASTNode implements IASTDefaultStatement {
@Override
public boolean accept( ASTVisitor action ){
@@ -39,4 +38,10 @@ public class CASTDefaultStatement extends ASTNode implements
}
return true;
}
+
+ public CASTDefaultStatement copy() {
+ CASTDefaultStatement copy = new CASTDefaultStatement();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDesignatedInitializer.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDesignatedInitializer.java
index d820630c0ae..0b746a82d3e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDesignatedInitializer.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDesignatedInitializer.java
@@ -21,8 +21,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
/**
* @author jcamelon
*/
-public class CASTDesignatedInitializer extends ASTNode implements
- ICASTDesignatedInitializer {
+public class CASTDesignatedInitializer extends ASTNode implements ICASTDesignatedInitializer {
private IASTInitializer rhs;
@@ -34,6 +33,14 @@ public class CASTDesignatedInitializer extends ASTNode implements
setOperandInitializer(operandInitializer);
}
+ public CASTDesignatedInitializer copy() {
+ CASTDesignatedInitializer copy = new CASTDesignatedInitializer(rhs == null ? null : rhs.copy());
+ for(ICASTDesignator designator : getDesignators())
+ copy.addDesignator(designator == null ? null : designator.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public void addDesignator(ICASTDesignator designator) {
assertNotFrozen();
if (designator != null) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDoStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDoStatement.java
index 8c36926edc2..f67975a1e74 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDoStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTDoStatement.java
@@ -36,6 +36,14 @@ public class CASTDoStatement extends ASTNode implements IASTDoStatement, IASTAmb
setCondition(condition);
}
+ public CASTDoStatement copy() {
+ CASTDoStatement copy = new CASTDoStatement();
+ copy.setBody(body == null ? null : body.copy());
+ copy.setCondition(condition == null ? null : condition.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTStatement getBody() {
return body;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTElaboratedTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTElaboratedTypeSpecifier.java
index 87ada0e748b..0604e5ad64b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTElaboratedTypeSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTElaboratedTypeSpecifier.java
@@ -43,6 +43,12 @@ public class CASTElaboratedTypeSpecifier extends CASTBaseDeclSpecifier implement
setName(name);
}
+ public CASTElaboratedTypeSpecifier copy() {
+ CASTElaboratedTypeSpecifier copy = new CASTElaboratedTypeSpecifier(kind, name == null ? null : name.copy());
+ copyBaseDeclSpec(copy);
+ return copy;
+ }
+
public int getKind() {
return kind;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerationSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerationSpecifier.java
index d0651af81d8..2ed80ab93c8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerationSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerationSpecifier.java
@@ -35,6 +35,20 @@ public class CASTEnumerationSpecifier extends CASTBaseDeclSpecifier
setName(name);
}
+ public CASTEnumerationSpecifier copy() {
+ CASTEnumerationSpecifier copy = new CASTEnumerationSpecifier();
+ copyEnumerationSpecifier(copy);
+ return copy;
+ }
+
+ protected void copyEnumerationSpecifier(CASTEnumerationSpecifier copy) {
+ copyBaseDeclSpec(copy);
+ copy.setName(name == null ? null : name.copy());
+ for(IASTEnumerator enumerator : getEnumerators())
+ copy.addEnumerator(enumerator == null ? null : enumerator.copy());
+ }
+
+
public boolean startValueComputation() {
if (valuesComputed)
return false;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerator.java
index d37b3827853..9ec6dbbd240 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTEnumerator.java
@@ -18,6 +18,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTEnumerator;
* C-specific enumerator
*/
public class CASTEnumerator extends ASTEnumerator {
+
public CASTEnumerator() {
super();
}
@@ -25,4 +26,10 @@ public class CASTEnumerator extends ASTEnumerator {
public CASTEnumerator(IASTName name, IASTExpression value) {
super(name, value);
}
+
+ public CASTEnumerator copy() {
+ CASTEnumerator copy = new CASTEnumerator();
+ copyAbstractEnumerator(copy);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionList.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionList.java
index 07c1fa6d3cc..b3c19110d04 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionList.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionList.java
@@ -27,6 +27,14 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent;
public class CASTExpressionList extends ASTNode implements IASTExpressionList,
IASTAmbiguityParent {
+ public CASTExpressionList copy() {
+ CASTExpressionList copy = new CASTExpressionList();
+ for(IASTExpression expr : getExpressions())
+ copy.addExpression(expr == null ? null : expr.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression[] getExpressions() {
if (expressions == null)
return IASTExpression.EMPTY_EXPRESSION_ARRAY;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionStatement.java
index 0938e15ab61..82f50113bea 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTExpressionStatement.java
@@ -34,6 +34,13 @@ public class CASTExpressionStatement extends ASTNode implements
setExpression(expression);
}
+ public CASTExpressionStatement copy() {
+ CASTExpressionStatement copy = new CASTExpressionStatement();
+ copy.setExpression(expression == null ? null : expression.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getExpression() {
return expression;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDeclarator.java
index acacb792500..e7bc7f185a6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDeclarator.java
@@ -31,6 +31,14 @@ public class CASTFieldDeclarator extends CASTDeclarator implements IASTFieldDecl
setBitFieldSize(bitFieldSize);
}
+ @Override
+ public CASTFieldDeclarator copy() {
+ CASTFieldDeclarator copy = new CASTFieldDeclarator();
+ copyBaseDeclarator(copy);
+ copy.setBitFieldSize(bitFieldSize == null ? null : bitFieldSize.copy());
+ return copy;
+ }
+
public IASTExpression getBitFieldSize() {
return bitFieldSize;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDesignator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDesignator.java
index 2f51227469d..c541fdbf8e9 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDesignator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldDesignator.java
@@ -21,8 +21,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
/**
* @author jcamelon
*/
-public class CASTFieldDesignator extends ASTNode implements
- ICASTFieldDesignator {
+public class CASTFieldDesignator extends ASTNode implements ICASTFieldDesignator {
private IASTName name;
@@ -33,6 +32,12 @@ public class CASTFieldDesignator extends ASTNode implements
public CASTFieldDesignator(IASTName name) {
setName(name);
}
+
+ public CASTFieldDesignator copy() {
+ CASTFieldDesignator copy = new CASTFieldDesignator(name == null ? null : name.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTName getName() {
return name;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldReference.java
index 718a136ef48..414d05fdcb6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldReference.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFieldReference.java
@@ -46,6 +46,15 @@ public class CASTFieldReference extends ASTNode implements IASTFieldReference, I
setFieldName(name);
this.ptr = ptr;
}
+
+ public CASTFieldReference copy() {
+ CASTFieldReference copy = new CASTFieldReference();
+ copy.setFieldOwner(owner == null ? null : owner.copy());
+ copy.setFieldName(name == null ? null : name.copy());
+ copy.ptr = ptr;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getFieldOwner() {
return owner;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTForStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTForStatement.java
index bbd25c7d61e..30e23d5925e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTForStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTForStatement.java
@@ -43,6 +43,20 @@ public class CASTForStatement extends ASTNode implements IASTForStatement, IASTA
setBody(body);
}
+ public CASTForStatement copy() {
+ CASTForStatement copy = new CASTForStatement();
+ copyForStatement(copy);
+ return copy;
+ }
+
+ protected void copyForStatement(CASTForStatement copy) {
+ copy.setInitializerStatement(init == null ? null : init.copy());
+ copy.setConditionExpression(condition == null ? null : condition.copy());
+ copy.setIterationExpression(iterationExpression == null ? null : iterationExpression.copy());
+ copy.setBody(body == null ? null : body.copy());
+ copy.setOffsetAndLength(this);
+ }
+
public IASTExpression getConditionExpression() {
return condition;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionCallExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionCallExpression.java
index 8bec97d282f..972de1bce84 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionCallExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionCallExpression.java
@@ -37,6 +37,14 @@ public class CASTFunctionCallExpression extends ASTNode implements
setParameterExpression(parameter);
}
+ public CASTFunctionCallExpression copy() {
+ CASTFunctionCallExpression copy = new CASTFunctionCallExpression();
+ copy.setFunctionNameExpression(functionName == null ? null : functionName.copy());
+ copy.setParameterExpression(parameter == null ? null : parameter.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public void setFunctionNameExpression(IASTExpression expression) {
assertNotFrozen();
this.functionName = expression;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDeclarator.java
index b49708a0bb6..130dc32e735 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDeclarator.java
@@ -34,6 +34,18 @@ public class CASTFunctionDeclarator extends CASTDeclarator implements IASTStanda
super(name);
}
+ @Override
+ public CASTFunctionDeclarator copy() {
+ CASTFunctionDeclarator copy = new CASTFunctionDeclarator();
+ copyBaseDeclarator(copy);
+ copy.varArgs = varArgs;
+
+ for(IASTParameterDeclaration param : getParameters())
+ copy.addParameterDeclaration(param == null ? null : param.copy());
+
+ return copy;
+ }
+
public IASTParameterDeclaration[] getParameters() {
if( parameters == null ) return IASTParameterDeclaration.EMPTY_PARAMETERDECLARATION_ARRAY;
parameters = (IASTParameterDeclaration[]) ArrayUtil.removeNullsAfter( IASTParameterDeclaration.class, parameters, parametersPos );
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDefinition.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDefinition.java
index b3fea48f7aa..5bf76095342 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDefinition.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTFunctionDefinition.java
@@ -45,6 +45,21 @@ public class CASTFunctionDefinition extends ASTNode implements
setBody(bodyStatement);
}
+ public CASTFunctionDefinition copy() {
+ CASTFunctionDefinition copy = new CASTFunctionDefinition();
+ copy.setDeclSpecifier(declSpecifier == null ? null : declSpecifier.copy());
+
+ if(declarator != null) {
+ IASTDeclarator outer = CVisitor.findOutermostDeclarator(declarator);
+ outer = outer.copy();
+ copy.setDeclarator((IASTFunctionDeclarator)CVisitor.findTypeRelevantDeclarator(outer));
+ }
+
+ copy.setBody(bodyStatement == null ? null : bodyStatement.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTDeclSpecifier getDeclSpecifier() {
return declSpecifier;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTGotoStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTGotoStatement.java
index 809dc41cf37..acf082c7de6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTGotoStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTGotoStatement.java
@@ -30,6 +30,12 @@ public class CASTGotoStatement extends ASTNode implements IASTGotoStatement {
setName(name);
}
+ public CASTGotoStatement copy() {
+ CASTGotoStatement copy = new CASTGotoStatement(name == null ? null : name.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTName getName() {
return this.name;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java
index 4ff074aedf0..d7eb66cf7a5 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIdExpression.java
@@ -39,6 +39,12 @@ public class CASTIdExpression extends ASTNode implements IASTIdExpression, IASTC
setName(name);
}
+ public CASTIdExpression copy() {
+ CASTIdExpression copy = new CASTIdExpression(name == null ? null : name.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTName getName() {
return name;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIfStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIfStatement.java
index 124857cbd13..ba8ccb9aaa2 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIfStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTIfStatement.java
@@ -44,6 +44,15 @@ public class CASTIfStatement extends ASTNode implements IASTIfStatement, IASTAmb
setElseClause(elseClause);
}
+ public CASTIfStatement copy() {
+ CASTIfStatement copy = new CASTIfStatement();
+ copy.setConditionExpression(condition == null ? null : condition.copy());
+ copy.setThenClause(thenClause == null ? null : thenClause.copy());
+ copy.setElseClause(elseClause == null ? null : elseClause.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getConditionExpression() {
return condition;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerExpression.java
index 067810f74cf..34abea73a86 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerExpression.java
@@ -33,6 +33,13 @@ public class CASTInitializerExpression extends ASTNode implements
public CASTInitializerExpression(IASTExpression expression) {
setExpression(expression);
}
+
+ public CASTInitializerExpression copy() {
+ CASTInitializerExpression copy = new CASTInitializerExpression();
+ copy.setExpression(expression == null ? null : expression.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getExpression() {
return expression;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerList.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerList.java
index cd64fb29bc5..806abe0e1b4 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerList.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTInitializerList.java
@@ -21,10 +21,16 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
/**
* @author jcamelon
*/
-public class CASTInitializerList extends ASTNode implements
- IASTInitializerList {
-
+public class CASTInitializerList extends ASTNode implements IASTInitializerList {
+ public CASTInitializerList copy() {
+ CASTInitializerList copy = new CASTInitializerList();
+ for(IASTInitializer initializer : getInitializers())
+ copy.addInitializer(initializer == null ? null : initializer.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTInitializer[] getInitializers() {
if( initializers == null ) return IASTInitializer.EMPTY_INITIALIZER_ARRAY;
initializers = (IASTInitializer[]) ArrayUtil.removeNullsAfter( IASTInitializer.class, initializers, initializersPos );
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTKnRFunctionDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTKnRFunctionDeclarator.java
index b4b8408176c..e3c0f08ade4 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTKnRFunctionDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTKnRFunctionDeclarator.java
@@ -38,6 +38,31 @@ public class CASTKnRFunctionDeclarator extends CASTDeclarator implements ICASTKn
setParameterDeclarations(parameterDeclarations);
}
+ @Override
+ public CASTKnRFunctionDeclarator copy() {
+ CASTKnRFunctionDeclarator copy = new CASTKnRFunctionDeclarator();
+ copyBaseDeclarator(copy);
+
+ copy.parameterNames = new IASTName[parameterNames.length];
+ for(int i = 0; i < parameterNames.length; i++) {
+ if(parameterNames[i] != null) {
+ copy.parameterNames[i] = parameterNames[i].copy();
+ copy.parameterNames[i].setParent(copy);
+ copy.parameterNames[i].setPropertyInParent(PARAMETER_NAME);
+ }
+ }
+
+ copy.parameterDeclarations = new IASTDeclaration[parameterDeclarations.length];
+ for(int i = 0; i < parameterDeclarations.length; i++) {
+ if(parameterDeclarations[i] != null) {
+ copy.parameterDeclarations[i] = parameterDeclarations[i].copy();
+ copy.parameterDeclarations[i].setParent(copy);
+ copy.parameterDeclarations[i].setPropertyInParent(FUNCTION_PARAMETER);
+ }
+ }
+
+ return copy;
+ }
public void setParameterNames(IASTName[] names) {
assertNotFrozen();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLabelStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLabelStatement.java
index 0d40cf72cb8..423d7be59c8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLabelStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLabelStatement.java
@@ -35,6 +35,14 @@ public class CASTLabelStatement extends ASTNode implements IASTLabelStatement, I
setName(name);
setNestedStatement(nestedStatement);
}
+
+ public CASTLabelStatement copy() {
+ CASTLabelStatement copy = new CASTLabelStatement();
+ copy.setName(name == null ? null : name.copy());
+ copy.setNestedStatement(nestedStatement == null ? null : nestedStatement.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTName getName() {
return name;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLiteralExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLiteralExpression.java
index cd80ef5ceed..812774e4b2e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLiteralExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTLiteralExpression.java
@@ -33,6 +33,12 @@ public class CASTLiteralExpression extends ASTNode implements IASTLiteralExpress
this.kind = kind;
this.value = value;
}
+
+ public CASTLiteralExpression copy() {
+ CASTLiteralExpression copy = new CASTLiteralExpression(kind, value == null ? null : value.clone());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public int getKind() {
return kind;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTModifiedArrayModifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTModifiedArrayModifier.java
index 78012a1d884..a9aeac10b3c 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTModifiedArrayModifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTModifiedArrayModifier.java
@@ -31,6 +31,19 @@ public class CASTModifiedArrayModifier extends CASTArrayModifier implements ICAS
super(exp);
}
+ @Override
+ public CASTModifiedArrayModifier copy() {
+ IASTExpression exp = getConstantExpression();
+ CASTModifiedArrayModifier copy = new CASTModifiedArrayModifier(exp == null ? null : exp.copy());
+ copy.isVolatile = isVolatile;
+ copy.isRestrict = isRestrict;
+ copy.isStatic = isStatic;
+ copy.isConst = isConst;
+ copy.varSized = varSized;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public boolean isConst() {
return isConst;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTName.java
index dd8eae3bfab..48f2ea99b40 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTName.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTName.java
@@ -50,6 +50,12 @@ public class CASTName extends ASTNode implements IASTName, IASTCompletionContext
name = EMPTY_CHAR_ARRAY;
}
+ public CASTName copy() {
+ CASTName copy = new CASTName(name == null ? null : name.clone());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IBinding resolveBinding() {
if (binding == null) {
CVisitor.createBinding(this);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTNullStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTNullStatement.java
index ea15e951828..caa43d98709 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTNullStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTNullStatement.java
@@ -38,4 +38,10 @@ public class CASTNullStatement extends ASTNode implements IASTNullStatement {
}
return true;
}
+
+ public CASTNullStatement copy() {
+ CASTNullStatement copy = new CASTNullStatement();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTParameterDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTParameterDeclaration.java
index 159137d5fc2..8dc941de1b6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTParameterDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTParameterDeclaration.java
@@ -24,10 +24,10 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent;
* @author jcamelon
*/
public class CASTParameterDeclaration extends ASTNode implements IASTParameterDeclaration, IASTAmbiguityParent {
+
private IASTDeclSpecifier declSpec;
private IASTDeclarator declarator;
-
public CASTParameterDeclaration() {
}
@@ -36,6 +36,14 @@ public class CASTParameterDeclaration extends ASTNode implements IASTParameterDe
setDeclarator(declarator);
}
+ public CASTParameterDeclaration copy() {
+ CASTParameterDeclaration copy = new CASTParameterDeclaration();
+ copy.setDeclSpecifier(declSpec == null ? null : declSpec.copy());
+ copy.setDeclarator(declarator == null ? null : declarator.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTDeclSpecifier getDeclSpecifier() {
return declSpec;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTPointer.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTPointer.java
index 0be5518ff64..3e7d8aef2c3 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTPointer.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTPointer.java
@@ -23,6 +23,15 @@ public class CASTPointer extends ASTNode implements ICASTPointer {
private boolean isVolatile;
private boolean isConst;
+ public CASTPointer copy() {
+ CASTPointer copy = new CASTPointer();
+ copy.isRestrict = isRestrict;
+ copy.isVolatile = isVolatile;
+ copy.isConst = isConst;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public boolean isRestrict() {
return isRestrict;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblem.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblem.java
index aecaad8b69c..aca1870b326 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblem.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblem.java
@@ -26,6 +26,14 @@ public class CASTProblem extends ASTProblem {
}
@Override
+ public CASTProblem copy() {
+ char[] arg = getArgument();
+ CASTProblem problem = new CASTProblem(getID(), arg == null ? null : arg.clone(), isError());
+ problem.setOffsetAndLength(this);
+ return problem;
+ }
+
+ @Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitProblems ){
switch( action.visit( this ) ){
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemDeclaration.java
index 3fb8783bad9..5c2ff538de3 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemDeclaration.java
@@ -30,6 +30,12 @@ public class CASTProblemDeclaration extends CASTProblemOwner implements
super(problem);
}
+ public CASTProblemDeclaration copy() {
+ CASTProblemDeclaration copy = new CASTProblemDeclaration();
+ copyBaseProblem(copy);
+ return copy;
+ }
+
@Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitDeclarations ){
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemExpression.java
index 1f4041aae68..ec1ba3a1b9b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemExpression.java
@@ -30,6 +30,12 @@ public class CASTProblemExpression extends CASTProblemOwner implements IASTProbl
super(problem);
}
+ public CASTProblemExpression copy() {
+ CASTProblemExpression copy = new CASTProblemExpression();
+ copyBaseProblem(copy);
+ return copy;
+ }
+
@Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitExpressions ){
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemOwner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemOwner.java
index b9c726df719..f3ca375da7c 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemOwner.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemOwner.java
@@ -30,6 +30,11 @@ abstract class CASTProblemOwner extends ASTNode implements IASTProblemHolder {
setProblem(problem);
}
+ protected void copyBaseProblem(CASTProblemOwner copy) {
+ copy.setProblem(problem == null ? null : problem.copy());
+ copy.setOffsetAndLength(this);
+ }
+
public IASTProblem getProblem() {
return problem;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemStatement.java
index 91740787c4c..39f8af954ca 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTProblemStatement.java
@@ -28,6 +28,12 @@ public class CASTProblemStatement extends CASTProblemOwner implements IASTProble
super(problem);
}
+ public CASTProblemStatement copy() {
+ CASTProblemStatement copy = new CASTProblemStatement();
+ copyBaseProblem(copy);
+ return copy;
+ }
+
@Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitStatements ){
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTReturnStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTReturnStatement.java
index 85c89a72aa9..e2cb41ae187 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTReturnStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTReturnStatement.java
@@ -32,6 +32,12 @@ public class CASTReturnStatement extends ASTNode implements
public CASTReturnStatement(IASTExpression retValue) {
setReturnValue(retValue);
}
+
+ public CASTReturnStatement copy() {
+ CASTReturnStatement copy = new CASTReturnStatement(retValue == null ? null : retValue.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getReturnValue() {
return retValue;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclSpecifier.java
index ddd2b84e5d6..e705e7d84c2 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclSpecifier.java
@@ -28,6 +28,25 @@ public class CASTSimpleDeclSpecifier extends CASTBaseDeclSpecifier implements IC
private boolean complex=false;
private boolean imaginary=false;
+ public CASTSimpleDeclSpecifier copy() {
+ CASTSimpleDeclSpecifier copy = new CASTSimpleDeclSpecifier();
+ copySimpleDeclSpec(copy);
+ return copy;
+ }
+
+ protected void copySimpleDeclSpec(CASTSimpleDeclSpecifier copy) {
+ copyBaseDeclSpec(copy);
+ copy.simpleType = simpleType;
+ copy.isSigned = isSigned;
+ copy.isUnsigned = isUnsigned;
+ copy.isShort = isShort;
+ copy.isLong = isLong;
+ copy.longlong = longlong;
+ copy.complex = complex;
+ copy.imaginary = imaginary;
+ }
+
+
public int getType() {
return simpleType;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclaration.java
index 623c01b0621..28ae1e24aae 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSimpleDeclaration.java
@@ -32,6 +32,17 @@ public class CASTSimpleDeclaration extends ASTNode implements IASTSimpleDeclarat
setDeclSpecifier(declSpecifier);
}
+ public CASTSimpleDeclaration copy() {
+ CASTSimpleDeclaration copy = new CASTSimpleDeclaration();
+ copy.setDeclSpecifier(declSpecifier == null ? null : declSpecifier.copy());
+
+ for(IASTDeclarator declarator : getDeclarators())
+ copy.addDeclarator(declarator == null ? null : declarator.copy());
+
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTDeclSpecifier getDeclSpecifier() {
return declSpecifier;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSwitchStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSwitchStatement.java
index 443845b7b74..b4a0223742f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSwitchStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTSwitchStatement.java
@@ -35,6 +35,14 @@ public class CASTSwitchStatement extends ASTNode implements
setControllerExpression(controller);
setBody(body);
}
+
+ public CASTSwitchStatement copy() {
+ CASTSwitchStatement copy = new CASTSwitchStatement();
+ copy.setControllerExpression(controller == null ? null : controller.copy());
+ copy.setBody(body == null ? null : body.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getControllerExpression() {
return controller;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTranslationUnit.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTranslationUnit.java
index 48235905c65..1171a817588 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTranslationUnit.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTranslationUnit.java
@@ -30,6 +30,13 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit;
public class CASTTranslationUnit extends ASTTranslationUnit {
private CScope compilationUnit = null;
+
+ public CASTTranslationUnit copy() {
+ CASTTranslationUnit copy = new CASTTranslationUnit();
+ copyAbstractTU(copy);
+ return copy;
+ }
+
/*
* (non-Javadoc)
*
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeId.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeId.java
index 1a7386f7714..8cf11a0e6ca 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeId.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeId.java
@@ -32,6 +32,14 @@ public class CASTTypeId extends ASTNode implements IASTTypeId {
setDeclSpecifier(declSpecifier);
setAbstractDeclarator(declarator);
}
+
+ public CASTTypeId copy() {
+ CASTTypeId copy = new CASTTypeId();
+ copy.setDeclSpecifier(declSpecifier == null ? null : declSpecifier.copy());
+ copy.setAbstractDeclarator(declarator == null ? null : declarator.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTDeclSpecifier getDeclSpecifier() {
return declSpecifier;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdExpression.java
index 146fc750208..8c9663b65f8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdExpression.java
@@ -20,8 +20,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
/**
* @author jcamelon
*/
-public class CASTTypeIdExpression extends ASTNode implements
- IASTTypeIdExpression {
+public class CASTTypeIdExpression extends ASTNode implements IASTTypeIdExpression {
private int op;
private IASTTypeId typeId;
@@ -33,6 +32,12 @@ public class CASTTypeIdExpression extends ASTNode implements
this.op = op;
setTypeId(typeId);
}
+
+ public CASTTypeIdExpression copy() {
+ CASTTypeIdExpression copy = new CASTTypeIdExpression(op, typeId == null ? null : typeId.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public int getOperator() {
return op;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdInitializerExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdInitializerExpression.java
index 19cb07cd078..6ba875e2c85 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdInitializerExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypeIdInitializerExpression.java
@@ -36,6 +36,14 @@ public class CASTTypeIdInitializerExpression extends ASTNode implements
setInitializer(i);
}
+ public CASTTypeIdInitializerExpression copy() {
+ CASTTypeIdInitializerExpression copy = new CASTTypeIdInitializerExpression();
+ copy.setTypeId(typeId == null ? null : typeId.copy());
+ copy.setInitializer(initializer == null ? null : initializer.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTTypeId getTypeId() {
return typeId;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java
index eb67d985907..014f699613b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTTypedefNameSpecifier.java
@@ -36,6 +36,12 @@ public class CASTTypedefNameSpecifier extends CASTBaseDeclSpecifier implements
setName(name);
}
+ public CASTTypedefNameSpecifier copy() {
+ CASTTypedefNameSpecifier copy = new CASTTypedefNameSpecifier(name == null ? null : name.copy());
+ copyBaseDeclSpec(copy);
+ return copy;
+ }
+
public IASTName getName() {
return name;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTUnaryExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTUnaryExpression.java
index 2425cdd594f..326c3031d78 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTUnaryExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTUnaryExpression.java
@@ -37,6 +37,12 @@ public class CASTUnaryExpression extends ASTNode implements
setOperand(operand);
}
+ public CASTUnaryExpression copy() {
+ CASTUnaryExpression copy = new CASTUnaryExpression(operator, operand == null ? null : operand.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public int getOperator() {
return operator;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTWhileStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTWhileStatement.java
index 5941a6d6726..e58325544d8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTWhileStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/CASTWhileStatement.java
@@ -36,6 +36,14 @@ public class CASTWhileStatement extends ASTNode implements IASTWhileStatement, I
setBody(body);
}
+ public CASTWhileStatement copy() {
+ CASTWhileStatement copy = new CASTWhileStatement();
+ copy.setCondition(condition == null ? null : condition.copy());
+ copy.setBody(body == null ? null : body.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getCondition() {
return condition;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GCCASTSimpleDeclSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GCCASTSimpleDeclSpecifier.java
index 8ee8a38ba91..f1977c8de6d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GCCASTSimpleDeclSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GCCASTSimpleDeclSpecifier.java
@@ -32,6 +32,14 @@ public class GCCASTSimpleDeclSpecifier extends CASTSimpleDeclSpecifier implement
setTypeofExpression(typeofExpression);
}
+ @Override
+ public GCCASTSimpleDeclSpecifier copy() {
+ GCCASTSimpleDeclSpecifier copy = new GCCASTSimpleDeclSpecifier();
+ copySimpleDeclSpec(copy);
+ copy.setTypeofExpression(typeOfExpression == null ? null : typeOfExpression.copy());
+ return copy;
+ }
+
public void setTypeofExpression(IASTExpression typeofExpression) {
this.typeOfExpression = typeofExpression;
if (typeofExpression != null) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTASMDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTASMDeclaration.java
index 4c47b26a780..183dcf28b69 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTASMDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTASMDeclaration.java
@@ -27,6 +27,13 @@ public class CPPASTASMDeclaration extends ASTNode implements IASTASMDeclaration
setAssembly(assembly);
}
+ public CPPASTASMDeclaration copy() {
+ CPPASTASMDeclaration copy = new CPPASTASMDeclaration();
+ copy.assembly = assembly.clone();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public String getAssembly() {
if( assembly == null )
return ""; //$NON-NLS-1$
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousBinaryVsCastExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousBinaryVsCastExpression.java
index 3e26049e014..a13c3c4cbd2 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousBinaryVsCastExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousBinaryVsCastExpression.java
@@ -12,6 +12,7 @@ package org.eclipse.cdt.internal.core.dom.parser.cpp;
import org.eclipse.cdt.core.dom.ast.IASTBinaryExpression;
import org.eclipse.cdt.core.dom.ast.IASTCastExpression;
+import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.internal.core.dom.parser.ASTAmbiguousBinaryVsCastExpression;
public class CPPASTAmbiguousBinaryVsCastExpression extends ASTAmbiguousBinaryVsCastExpression {
@@ -19,4 +20,8 @@ public class CPPASTAmbiguousBinaryVsCastExpression extends ASTAmbiguousBinaryVsC
public CPPASTAmbiguousBinaryVsCastExpression(IASTBinaryExpression bexp, IASTCastExpression castExpr) {
super(bexp, castExpr);
}
+
+ public IASTExpression copy() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclaration.java
index 6118322dfbc..98c935d31bf 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclaration.java
@@ -21,6 +21,10 @@ public class CPPASTAmbiguousDeclaration extends CPPASTAmbiguity implements IASTA
protected IASTNode[] getNodes() {
return getDeclarations();
}
+
+ public IASTDeclaration copy() {
+ throw new UnsupportedOperationException();
+ }
private IASTDeclaration [] decls = new IASTDeclaration[2];
private int declsPos=-1;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclarator.java
index 66bcc8977e3..f610c2b0bbb 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousDeclarator.java
@@ -39,6 +39,10 @@ public class CPPASTAmbiguousDeclarator extends CPPASTAmbiguity implements IASTAm
}
}
+ public IASTDeclarator copy() {
+ throw new UnsupportedOperationException();
+ }
+
public void addDeclarator(IASTDeclarator d) {
assertNotFrozen();
if (d != null) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousExpression.java
index 9909d069e88..c6e8ec80af4 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousExpression.java
@@ -35,6 +35,11 @@ public class CPPASTAmbiguousExpression extends CPPASTAmbiguity implements
addExpression(e);
}
+
+ public IASTExpression copy() {
+ throw new UnsupportedOperationException();
+ }
+
public void addExpression(IASTExpression e) {
assertNotFrozen();
if (e != null) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousStatement.java
index a348a3bb5c7..dda23a5b7d8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousStatement.java
@@ -26,6 +26,10 @@ public class CPPASTAmbiguousStatement extends CPPASTAmbiguity implements
addStatement(s);
}
+ public IASTStatement copy() {
+ throw new UnsupportedOperationException();
+ }
+
public void addStatement(IASTStatement s) {
assertNotFrozen();
if (s != null) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousTemplateArgument.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousTemplateArgument.java
index bbc3cdcf460..3e099d06028 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousTemplateArgument.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguousTemplateArgument.java
@@ -49,6 +49,10 @@ public class CPPASTAmbiguousTemplateArgument extends CPPASTAmbiguity implements
}
}
+ public IASTNode copy() {
+ throw new UnsupportedOperationException();
+ }
+
@Override
protected IScope getAffectedScope() {
// a template argument does not introduce names to a parent scope.
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayDeclarator.java
index 60ed1825353..bc606c885ff 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayDeclarator.java
@@ -21,8 +21,7 @@ import org.eclipse.cdt.core.parser.util.ArrayUtil;
/**
* @author jcamelon
*/
-public class CPPASTArrayDeclarator extends CPPASTDeclarator implements
- IASTArrayDeclarator {
+public class CPPASTArrayDeclarator extends CPPASTDeclarator implements IASTArrayDeclarator {
private IASTArrayModifier [] arrayMods = null;
private int arrayModsPos=-1;
@@ -40,6 +39,16 @@ public class CPPASTArrayDeclarator extends CPPASTDeclarator implements
public CPPASTArrayDeclarator() {
}
+ @Override
+ public CPPASTArrayDeclarator copy() {
+ CPPASTArrayDeclarator copy = new CPPASTArrayDeclarator();
+ copyBaseDeclarator(copy);
+ for(IASTArrayModifier modifier : getArrayModifiers())
+ copy.addArrayModifier(modifier == null ? null : modifier.copy());
+ return copy;
+ }
+
+
public IASTArrayModifier[] getArrayModifiers() {
if( arrayMods == null ) return IASTArrayModifier.EMPTY_ARRAY;
arrayMods = (IASTArrayModifier[]) ArrayUtil.removeNullsAfter( IASTArrayModifier.class, arrayMods, arrayModsPos );
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayModifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayModifier.java
index f414205a24e..07d81b2974e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayModifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArrayModifier.java
@@ -36,6 +36,12 @@ public class CPPASTArrayModifier extends ASTNode implements IASTArrayModifier, I
return exp;
}
+ public CPPASTArrayModifier copy() {
+ CPPASTArrayModifier copy = new CPPASTArrayModifier(exp == null ? null : exp.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public void setConstantExpression(IASTExpression expression) {
assertNotFrozen();
exp = expression;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java
index 3dcfc77d85c..78b381e42ba 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java
@@ -35,6 +35,15 @@ public class CPPASTArraySubscriptExpression extends ASTNode implements IASTArray
setArrayExpression(arrayExpression);
setSubscriptExpression(subscriptExp);
}
+
+ public CPPASTArraySubscriptExpression copy() {
+ CPPASTArraySubscriptExpression copy = new CPPASTArraySubscriptExpression();
+ copy.setArrayExpression(arrayExpression == null ? null : arrayExpression.copy());
+ copy.setSubscriptExpression(subscriptExp == null ? null : subscriptExp.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getArrayExpression() {
return arrayExpression;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseDeclSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseDeclSpecifier.java
index 3366c983052..f1cbae94fe5 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseDeclSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseDeclSpecifier.java
@@ -26,7 +26,7 @@ public abstract class CPPASTBaseDeclSpecifier extends ASTNode implements ICPPAST
private int sc;
private boolean virtual;
private boolean explicit;
-
+
public boolean isFriend() {
return friend;
}
@@ -90,6 +90,17 @@ public abstract class CPPASTBaseDeclSpecifier extends ASTNode implements ICPPAST
this.explicit = value;
}
+ protected void copyBaseDeclSpec(CPPASTBaseDeclSpecifier other) {
+ other.friend = friend;
+ other.inline = inline;
+ other.volatil = volatil;
+ other.isConst = isConst;
+ other.virtual = virtual;
+ other.explicit = explicit;
+ other.sc = sc;
+ other.setOffsetAndLength(this);
+ }
+
@Override
public String toString() {
return ASTSignatureUtil.getSignature(this);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseSpecifier.java
index 431385ce674..8f24e23f8ab 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBaseSpecifier.java
@@ -39,6 +39,10 @@ public class CPPASTBaseSpecifier extends ASTNode implements
public CPPASTBaseSpecifier() {
}
+
+ public CPPASTBaseSpecifier(IASTName name) {
+ setName(name);
+ }
public CPPASTBaseSpecifier(IASTName name, int visibility, boolean isVirtual) {
this.isVirtual = isVirtual;
@@ -46,6 +50,14 @@ public class CPPASTBaseSpecifier extends ASTNode implements
setName(name);
}
+ public CPPASTBaseSpecifier copy() {
+ CPPASTBaseSpecifier copy = new CPPASTBaseSpecifier(name == null ? null : name.copy());
+ copy.isVirtual = isVirtual;
+ copy.visibility = visibility;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public boolean isVirtual() {
return isVirtual;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryExpression.java
index 618c995b140..64456400acf 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBinaryExpression.java
@@ -38,6 +38,15 @@ public class CPPASTBinaryExpression extends ASTNode implements
setOperand2(operand2);
}
+ public CPPASTBinaryExpression copy() {
+ CPPASTBinaryExpression copy = new CPPASTBinaryExpression();
+ copy.op = op;
+ copy.setOperand1(operand1 == null ? null : operand1.copy());
+ copy.setOperand2(operand2 == null ? null : operand2.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public int getOperator() {
return op;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBreakStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBreakStatement.java
index ffa194a8d03..133c0bcf14d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBreakStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTBreakStatement.java
@@ -17,8 +17,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
/**
* @author jcamelon
*/
-public class CPPASTBreakStatement extends ASTNode implements
- IASTBreakStatement {
+public class CPPASTBreakStatement extends ASTNode implements IASTBreakStatement {
@Override
public boolean accept( ASTVisitor action ){
@@ -40,4 +39,9 @@ public class CPPASTBreakStatement extends ASTNode implements
return true;
}
+ public CPPASTBreakStatement copy() {
+ CPPASTBreakStatement copy = new CPPASTBreakStatement();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCaseStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCaseStatement.java
index e3112278b85..8f24687dc8f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCaseStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCaseStatement.java
@@ -30,6 +30,12 @@ public class CPPASTCaseStatement extends ASTNode implements IASTCaseStatement, I
public CPPASTCaseStatement(IASTExpression expression) {
setExpression(expression);
}
+
+ public CPPASTCaseStatement copy() {
+ CPPASTCaseStatement copy = new CPPASTCaseStatement(expression == null ? null : expression.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getExpression() {
return expression;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCastExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCastExpression.java
index c9cb3384b0b..8a8b9c419f7 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCastExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCastExpression.java
@@ -30,6 +30,18 @@ public class CPPASTCastExpression extends CPPASTUnaryExpression implements ICPPA
super(operator, operand);
setTypeId(typeId);
}
+
+ @Override
+ public CPPASTCastExpression copy() {
+ CPPASTCastExpression copy = new CPPASTCastExpression();
+ copy.setOperator(getOperator());
+ copy.setTypeId(typeId == null ? null : typeId.copy());
+ IASTExpression operand = getOperand();
+ copy.setOperand(operand == null ? null : operand.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public void setTypeId(IASTTypeId typeId) {
assertNotFrozen();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCatchHandler.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCatchHandler.java
index cdb33bae0f1..4f608de62fe 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCatchHandler.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCatchHandler.java
@@ -37,6 +37,15 @@ public class CPPASTCatchHandler extends ASTNode implements ICPPASTCatchHandler,
setCatchBody(body);
setDeclaration(declaration);
}
+
+ public CPPASTCatchHandler copy() {
+ CPPASTCatchHandler copy = new CPPASTCatchHandler();
+ copy.setDeclaration(declaration == null ? null : declaration.copy());
+ copy.setCatchBody(body == null ? null : body.copy());
+ copy.setIsCatchAll(isCatchAll);
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public void setIsCatchAll(boolean isEllipsis) {
assertNotFrozen();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompositeTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompositeTypeSpecifier.java
index 1277b08e32a..3361679f802 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompositeTypeSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompositeTypeSpecifier.java
@@ -40,6 +40,16 @@ public class CPPASTCompositeTypeSpecifier extends CPPASTBaseDeclSpecifier
setName(n);
}
+ public CPPASTCompositeTypeSpecifier copy() {
+ CPPASTCompositeTypeSpecifier copy = new CPPASTCompositeTypeSpecifier(k, n == null ? null : n.copy());
+ copyBaseDeclSpec(copy);
+ for(IASTDeclaration member : getMembers())
+ copy.addMemberDeclaration(member == null ? null : member.copy());
+ for(ICPPASTBaseSpecifier baseSpecifier : getBaseSpecifiers())
+ copy.addBaseSpecifier(baseSpecifier == null ? null : baseSpecifier.copy());
+ return copy;
+ }
+
@Override
public String getRawSignature() {
return getName().toString() == null ? "" : getName().toString(); //$NON-NLS-1$
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatement.java
index c700cbd185a..ea424aff157 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatement.java
@@ -29,6 +29,14 @@ public class CPPASTCompoundStatement extends ASTNode implements
private IASTStatement [] statements = new IASTStatement[2];
private ICPPScope scope = null;
+
+ public CPPASTCompoundStatement copy() {
+ CPPASTCompoundStatement copy = new CPPASTCompoundStatement();
+ for(IASTStatement statement : getStatements())
+ copy.addStatement(statement == null ? null : statement.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTStatement[] getStatements() {
if( statements == null ) return IASTStatement.EMPTY_STATEMENT_ARRAY;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatementExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatementExpression.java
index 15ced24a36e..0b1ca787860 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatementExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTCompoundStatementExpression.java
@@ -32,6 +32,13 @@ public class CPPASTCompoundStatementExpression extends ASTNode implements IGNUAS
setCompoundStatement(statement);
}
+ public CPPASTCompoundStatementExpression copy() {
+ CPPASTCompoundStatementExpression copy = new CPPASTCompoundStatementExpression();
+ copy.setCompoundStatement(statement == null ? null : statement.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTCompoundStatement getCompoundStatement() {
return statement;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConditionalExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConditionalExpression.java
index d150e58eb56..ad12bab9f06 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConditionalExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConditionalExpression.java
@@ -27,7 +27,7 @@ public class CPPASTConditionalExpression extends ASTNode implements
private IASTExpression condition;
private IASTExpression negative;
- private IASTExpression postive;
+ private IASTExpression positive;
public CPPASTConditionalExpression() {
@@ -39,6 +39,16 @@ public class CPPASTConditionalExpression extends ASTNode implements
setNegativeResultExpression(negative);
}
+
+ public CPPASTConditionalExpression copy() {
+ CPPASTConditionalExpression copy = new CPPASTConditionalExpression();
+ copy.setLogicalConditionExpression(condition == null ? null : condition.copy());
+ copy.setPositiveResultExpression(positive == null ? null : positive.copy());
+ copy.setNegativeResultExpression(negative == null ? null : negative.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getLogicalConditionExpression() {
return condition;
}
@@ -53,12 +63,12 @@ public class CPPASTConditionalExpression extends ASTNode implements
}
public IASTExpression getPositiveResultExpression() {
- return postive;
+ return positive;
}
public void setPositiveResultExpression(IASTExpression expression) {
assertNotFrozen();
- this.postive = expression;
+ this.positive = expression;
if (expression != null) {
expression.setParent(this);
expression.setPropertyInParent(POSITIVE_RESULT);
@@ -89,7 +99,7 @@ public class CPPASTConditionalExpression extends ASTNode implements
}
if( condition != null ) if( !condition.accept( action ) ) return false;
- if( postive != null ) if( !postive.accept( action ) ) return false;
+ if( positive != null ) if( !positive.accept( action ) ) return false;
if( negative != null ) if( !negative.accept( action ) ) return false;
if( action.shouldVisitExpressions ){
@@ -109,11 +119,11 @@ public class CPPASTConditionalExpression extends ASTNode implements
other.setParent( child.getParent() );
condition = (IASTExpression) other;
}
- if( child == postive )
+ if( child == positive )
{
other.setPropertyInParent( child.getPropertyInParent() );
other.setParent( child.getParent() );
- postive = (IASTExpression) other;
+ positive = (IASTExpression) other;
}
if( child == negative )
{
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorChainInitializer.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorChainInitializer.java
index ac2214c28f5..1cae1d16a37 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorChainInitializer.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorChainInitializer.java
@@ -37,6 +37,14 @@ public class CPPASTConstructorChainInitializer extends ASTNode implements
setInitializerValue(initializerValue);
}
+ public CPPASTConstructorChainInitializer copy() {
+ CPPASTConstructorChainInitializer copy = new CPPASTConstructorChainInitializer();
+ copy.setMemberInitializerId(name == null ? null : name.copy());
+ copy.setInitializerValue(value == null ? null : value.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTName getMemberInitializerId() {
return name;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorInitializer.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorInitializer.java
index 4e6f55973e5..ec68d7846ff 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorInitializer.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConstructorInitializer.java
@@ -33,6 +33,12 @@ public class CPPASTConstructorInitializer extends ASTNode implements
setExpression(exp);
}
+ public CPPASTConstructorInitializer copy() {
+ CPPASTConstructorInitializer copy = new CPPASTConstructorInitializer(exp == null ? null : exp.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getExpression() {
return exp;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTContinueStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTContinueStatement.java
index 69af6774a15..82f859067b6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTContinueStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTContinueStatement.java
@@ -17,8 +17,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
/**
* @author jcamelon
*/
-public class CPPASTContinueStatement extends ASTNode implements
- IASTContinueStatement {
+public class CPPASTContinueStatement extends ASTNode implements IASTContinueStatement {
@Override
public boolean accept( ASTVisitor action ){
@@ -38,4 +37,10 @@ public class CPPASTContinueStatement extends ASTNode implements
}
return true;
}
+
+ public CPPASTContinueStatement copy() {
+ CPPASTContinueStatement copy = new CPPASTContinueStatement();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConversionName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConversionName.java
index 5829309d946..69b2dd3ad9b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConversionName.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConversionName.java
@@ -35,6 +35,16 @@ public class CPPASTConversionName extends CPPASTName implements ICPPASTConversio
super(name);
setTypeId(typeId);
}
+
+ @Override
+ public CPPASTConversionName copy() {
+ char[] name = toCharArray();
+ CPPASTConversionName copy = new CPPASTConversionName(name == null ? null : name.clone());
+ copy.setTypeId(typeId == null ? null : typeId.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTTypeId getTypeId() {
return typeId;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarationStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarationStatement.java
index 3a7e60bee16..58f23e33981 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarationStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarationStatement.java
@@ -33,6 +33,13 @@ public class CPPASTDeclarationStatement extends ASTNode implements
setDeclaration(declaration);
}
+ public CPPASTDeclarationStatement copy() {
+ CPPASTDeclarationStatement copy = new CPPASTDeclarationStatement();
+ copy.setDeclaration(declaration == null ? null : declaration.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTDeclaration getDeclaration() {
return declaration;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java
index 6dd63b1d5ab..fd5ab25e68c 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeclarator.java
@@ -34,7 +34,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
public class CPPASTDeclarator extends ASTNode implements IASTDeclarator {
private IASTInitializer initializer;
private IASTName name;
- private IASTDeclarator nestedDeclarator;
+ private IASTDeclarator nested;
private IASTPointerOperator[] pointerOps = null;
private int pointerOpsPos= -1;
@@ -50,6 +50,22 @@ public class CPPASTDeclarator extends ASTNode implements IASTDeclarator {
setInitializer(initializer);
}
+
+ public CPPASTDeclarator copy() {
+ CPPASTDeclarator copy = new CPPASTDeclarator();
+ copyBaseDeclarator(copy);
+ return copy;
+ }
+
+ protected void copyBaseDeclarator(CPPASTDeclarator copy) {
+ copy.setName(name == null ? null : name.copy());
+ copy.setInitializer(initializer == null ? null : initializer.copy());
+ copy.setNestedDeclarator(nested == null ? null : nested.copy());
+ for(IASTPointerOperator pointer : getPointerOperators())
+ copy.addPointerOperator(pointer == null ? null : pointer.copy());
+ copy.setOffsetAndLength(this);
+ }
+
public IASTPointerOperator[] getPointerOperators() {
if (pointerOps == null) return IASTPointerOperator.EMPTY_ARRAY;
pointerOps = (IASTPointerOperator[]) ArrayUtil.removeNullsAfter(IASTPointerOperator.class, pointerOps, pointerOpsPos);
@@ -57,7 +73,7 @@ public class CPPASTDeclarator extends ASTNode implements IASTDeclarator {
}
public IASTDeclarator getNestedDeclarator() {
- return nestedDeclarator;
+ return nested;
}
public IASTName getName() {
@@ -88,7 +104,7 @@ public class CPPASTDeclarator extends ASTNode implements IASTDeclarator {
public void setNestedDeclarator(IASTDeclarator nested) {
assertNotFrozen();
- this.nestedDeclarator = nested;
+ this.nested = nested;
if (nested != null) {
nested.setParent(this);
nested.setPropertyInParent(NESTED_DECLARATOR);
@@ -119,15 +135,15 @@ public class CPPASTDeclarator extends ASTNode implements IASTDeclarator {
if (!ptrOps[i].accept(action)) return false;
}
- if (nestedDeclarator == null && name != null) {
+ if (nested == null && name != null) {
IASTDeclarator outermost= CPPVisitor.findOutermostDeclarator(this);
if (outermost.getPropertyInParent() != IASTTypeId.ABSTRACT_DECLARATOR) {
if (!name.accept(action)) return false;
}
}
- if (nestedDeclarator != null) {
- if (!nestedDeclarator.accept(action)) return false;
+ if (nested != null) {
+ if (!nested.accept(action)) return false;
}
if (!postAccept(action))
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDefaultStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDefaultStatement.java
index 5e22642cdc7..194c76d196f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDefaultStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDefaultStatement.java
@@ -37,5 +37,11 @@ public class CPPASTDefaultStatement extends ASTNode implements IASTDefaultStatem
}
return true;
}
+
+ public CPPASTDefaultStatement copy() {
+ CPPASTDefaultStatement copy = new CPPASTDefaultStatement();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeleteExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeleteExpression.java
index 13b2ef5da89..5c4ac063ec0 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeleteExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDeleteExpression.java
@@ -20,15 +20,13 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
/**
* @author jcamelon
*/
-public class CPPASTDeleteExpression extends ASTNode implements
- ICPPASTDeleteExpression {
+public class CPPASTDeleteExpression extends ASTNode implements ICPPASTDeleteExpression {
private IASTExpression operand;
private boolean isGlobal;
private boolean isVectored;
-
public CPPASTDeleteExpression() {
}
@@ -36,7 +34,18 @@ public class CPPASTDeleteExpression extends ASTNode implements
setOperand(operand);
}
-
+ public CPPASTDeleteExpression(CPPASTDeleteExpression from) {
+ setOperand(from.operand);
+ }
+
+ public CPPASTDeleteExpression copy() {
+ CPPASTDeleteExpression copy = new CPPASTDeleteExpression(operand == null ? null : operand.copy());
+ copy.isGlobal = isGlobal;
+ copy.isVectored = isVectored;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getOperand() {
return operand;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDoStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDoStatement.java
index b3e92296a99..0d70da842f3 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDoStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTDoStatement.java
@@ -35,6 +35,14 @@ public class CPPASTDoStatement extends ASTNode implements IASTDoStatement, IASTA
setCondition(condition);
}
+ public CPPASTDoStatement copy() {
+ CPPASTDoStatement copy = new CPPASTDoStatement();
+ copy.setBody(body == null ? null : body.copy());
+ copy.setCondition(condition == null ? null : condition.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTStatement getBody() {
return body;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTElaboratedTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTElaboratedTypeSpecifier.java
index 73c3b6c642b..4bcb661b6ee 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTElaboratedTypeSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTElaboratedTypeSpecifier.java
@@ -39,6 +39,12 @@ public class CPPASTElaboratedTypeSpecifier extends CPPASTBaseDeclSpecifier
setName(name);
}
+ public CPPASTElaboratedTypeSpecifier copy() {
+ CPPASTElaboratedTypeSpecifier copy = new CPPASTElaboratedTypeSpecifier(kind, name == null ? null : name.copy());
+ copyBaseDeclSpec(copy);
+ return copy;
+ }
+
public int getKind() {
return kind;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerationSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerationSpecifier.java
index 052052dd9d8..cb03b30b740 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerationSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerationSpecifier.java
@@ -33,6 +33,15 @@ public class CPPASTEnumerationSpecifier extends CPPASTBaseDeclSpecifier
setName(name);
}
+ public CPPASTEnumerationSpecifier copy() {
+ CPPASTEnumerationSpecifier copy = new CPPASTEnumerationSpecifier(name == null ? null : name.copy());
+ for(IASTEnumerator enumerator : getEnumerators())
+ copy.addEnumerator(enumerator == null ? null : enumerator.copy());
+ copyBaseDeclSpec(copy);
+ return copy;
+ }
+
+
public boolean startValueComputation() {
if (valuesComputed)
return false;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerator.java
index 73848a44185..61f6a2245ea 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTEnumerator.java
@@ -19,6 +19,7 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTEnumerator;
* C++-specific enumerator.
*/
public class CPPASTEnumerator extends ASTEnumerator {
+
public CPPASTEnumerator() {
super();
}
@@ -26,4 +27,10 @@ public class CPPASTEnumerator extends ASTEnumerator {
public CPPASTEnumerator(IASTName name, IASTExpression value) {
super(name, value);
}
+
+ public CPPASTEnumerator copy() {
+ CPPASTEnumerator copy = new CPPASTEnumerator();
+ copyAbstractEnumerator(copy);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExplicitTemplateInstantiation.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExplicitTemplateInstantiation.java
index d6325985abb..c9620a7dbe0 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExplicitTemplateInstantiation.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExplicitTemplateInstantiation.java
@@ -33,6 +33,13 @@ public class CPPASTExplicitTemplateInstantiation extends ASTNode implements
setDeclaration(declaration);
}
+ public CPPASTExplicitTemplateInstantiation copy() {
+ CPPASTExplicitTemplateInstantiation copy = new CPPASTExplicitTemplateInstantiation();
+ copy.setDeclaration(declaration == null ? null : declaration.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTDeclaration getDeclaration() {
return declaration;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionList.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionList.java
index c296ca18390..c3de2a70b20 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionList.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionList.java
@@ -26,6 +26,14 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
public class CPPASTExpressionList extends ASTNode implements
IASTExpressionList, IASTAmbiguityParent {
+ public CPPASTExpressionList copy() {
+ CPPASTExpressionList copy = new CPPASTExpressionList();
+ for(IASTExpression expr : getExpressions())
+ copy.addExpression(expr == null ? null : expr.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression [] getExpressions() {
if( expressions == null ) return IASTExpression.EMPTY_EXPRESSION_ARRAY;
return (IASTExpression[]) ArrayUtil.trim( IASTExpression.class, expressions );
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionStatement.java
index 8b5c13bb8a2..315b6159cef 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTExpressionStatement.java
@@ -33,6 +33,13 @@ public class CPPASTExpressionStatement extends ASTNode implements
setExpression(expression);
}
+ public CPPASTExpressionStatement copy() {
+ CPPASTExpressionStatement copy = new CPPASTExpressionStatement();
+ copy.setExpression(expression == null ? null : expression.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getExpression() {
return expression;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldDeclarator.java
index ff8a1548e38..34ea4a14ca3 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldDeclarator.java
@@ -29,12 +29,24 @@ public class CPPASTFieldDeclarator extends CPPASTDeclarator implements
public CPPASTFieldDeclarator() {
}
+
+ public CPPASTFieldDeclarator(IASTName name) {
+ super(name);
+ }
public CPPASTFieldDeclarator(IASTName name, IASTExpression bitField) {
super(name);
setBitFieldSize(bitField);
}
+ @Override
+ public CPPASTFieldDeclarator copy() {
+ CPPASTFieldDeclarator copy = new CPPASTFieldDeclarator();
+ copyBaseDeclarator(copy);
+ copy.setBitFieldSize(bitField == null ? null : bitField.copy());
+ return copy;
+ }
+
public IASTExpression getBitFieldSize() {
return bitField;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldReference.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldReference.java
index e2fa1a1d8f7..4a17590ab1f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldReference.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFieldReference.java
@@ -47,6 +47,16 @@ public class CPPASTFieldReference extends ASTNode implements
setFieldName(name);
setFieldOwner(owner);
}
+
+ public CPPASTFieldReference copy() {
+ CPPASTFieldReference copy = new CPPASTFieldReference();
+ copy.setFieldName(name == null ? null : name.copy());
+ copy.setFieldOwner(owner == null ? null : owner.copy());
+ copy.isTemplate = isTemplate;
+ copy.isDeref = isDeref;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public boolean isTemplate() {
return isTemplate;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTForStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTForStatement.java
index c684808b98b..1cb23218e91 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTForStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTForStatement.java
@@ -53,6 +53,17 @@ public class CPPASTForStatement extends ASTNode implements ICPPASTForStatement,
setBody(body);
}
+ public CPPASTForStatement copy() {
+ CPPASTForStatement copy = new CPPASTForStatement();
+ copy.setInitializerStatement(init == null ? null : init.copy());
+ copy.setConditionDeclaration(condDeclaration == null ? null : condDeclaration.copy());
+ copy.setConditionExpression(condition == null ? null : condition.copy());
+ copy.setIterationExpression(iterationExpression == null ? null : iterationExpression.copy());
+ copy.setBody(body == null ? null : body.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getConditionExpression() {
return condition;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionCallExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionCallExpression.java
index d8278eae8af..05798a520e7 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionCallExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionCallExpression.java
@@ -37,6 +37,14 @@ public class CPPASTFunctionCallExpression extends ASTNode implements
setParameterExpression(parameter);
}
+ public CPPASTFunctionCallExpression copy() {
+ CPPASTFunctionCallExpression copy = new CPPASTFunctionCallExpression();
+ copy.setFunctionNameExpression(functionName == null ? null : functionName.copy());
+ copy.setParameterExpression(parameter == null ? null : parameter.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public void setFunctionNameExpression(IASTExpression expression) {
assertNotFrozen();
this.functionName = expression;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDeclarator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDeclarator.java
index c558e443894..22ac6d7e455 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDeclarator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDeclarator.java
@@ -45,6 +45,23 @@ public class CPPASTFunctionDeclarator extends CPPASTDeclarator implements ICPPAS
public CPPASTFunctionDeclarator(IASTName name) {
super(name);
}
+
+ @Override
+ public CPPASTFunctionDeclarator copy() {
+ CPPASTFunctionDeclarator copy = new CPPASTFunctionDeclarator();
+ copyBaseDeclarator(copy);
+ copy.varArgs = varArgs;
+ copy.pureVirtual = pureVirtual;
+ copy.isVolatile = isVolatile;
+ copy.isConst = isConst;
+
+ for(IASTParameterDeclaration param : getParameters())
+ copy.addParameterDeclaration(param == null ? null : param.copy());
+ for(IASTTypeId typeId : getExceptionSpecification())
+ copy.addExceptionSpecificationTypeId(typeId == null ? null : typeId.copy());
+
+ return copy;
+ }
public IASTParameterDeclaration[] getParameters() {
if (parameters == null)
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDefinition.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDefinition.java
index cd6c948fa3d..638a0c1ebc1 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDefinition.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionDefinition.java
@@ -24,6 +24,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDefinition;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent;
+import org.eclipse.cdt.internal.core.dom.parser.c.CVisitor;
import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
/**
@@ -49,6 +50,25 @@ public class CPPASTFunctionDefinition extends ASTNode implements
setDeclarator(declarator);
setBody(bodyStatement);
}
+
+ public CPPASTFunctionDefinition copy() {
+ CPPASTFunctionDefinition copy = new CPPASTFunctionDefinition();
+ copy.setDeclSpecifier(declSpecifier == null ? null : declSpecifier.copy());
+
+ if(declarator != null) {
+ IASTDeclarator outer = CVisitor.findOutermostDeclarator(declarator);
+ outer = outer.copy();
+ copy.setDeclarator((IASTFunctionDeclarator)CVisitor.findTypeRelevantDeclarator(outer));
+ }
+
+ copy.setBody(bodyStatement == null ? null : bodyStatement.copy());
+
+ for(ICPPASTConstructorChainInitializer initializer : getMemberInitializers())
+ copy.addMemberInitializer(initializer == null ? null : initializer.copy());
+
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTDeclSpecifier getDeclSpecifier() {
return declSpecifier;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionWithTryBlock.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionWithTryBlock.java
index bf9dfe649e8..46fef1fd2a8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionWithTryBlock.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTFunctionWithTryBlock.java
@@ -15,6 +15,7 @@ import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTStatement;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCatchHandler;
+import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorChainInitializer;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionWithTryBlock;
import org.eclipse.cdt.core.parser.util.ArrayUtil;
@@ -31,6 +32,26 @@ public class CPPASTFunctionWithTryBlock extends CPPASTFunctionDefinition impleme
IASTFunctionDeclarator declarator, IASTStatement bodyStatement) {
super(declSpecifier, declarator, bodyStatement);
}
+
+ @Override
+ public CPPASTFunctionWithTryBlock copy() {
+ IASTDeclSpecifier declSpecifier = getDeclSpecifier();
+ IASTFunctionDeclarator declarator = getDeclarator();
+ IASTStatement bodyStatement = getBody();
+
+ CPPASTFunctionWithTryBlock copy = new CPPASTFunctionWithTryBlock();
+ copy.setDeclSpecifier(declSpecifier == null ? null : declSpecifier.copy());
+ copy.setDeclarator(declarator == null ? null : declarator.copy());
+ copy.setBody(bodyStatement == null ? null : bodyStatement.copy());
+
+ for(ICPPASTConstructorChainInitializer initializer : getMemberInitializers())
+ copy.addMemberInitializer(initializer == null ? null : initializer.copy());
+ for(ICPPASTCatchHandler handler : getCatchHandlers())
+ copy.addCatchHandler(handler == null ? null : handler.copy());
+
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public void addCatchHandler(ICPPASTCatchHandler statement) {
assertNotFrozen();
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTGotoStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTGotoStatement.java
index 765a17e3505..87d05d570b4 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTGotoStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTGotoStatement.java
@@ -30,6 +30,12 @@ public class CPPASTGotoStatement extends ASTNode implements IASTGotoStatement {
setName(name);
}
+ public CPPASTGotoStatement copy() {
+ CPPASTGotoStatement copy = new CPPASTGotoStatement(name == null ? null : name.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTName getName() {
return this.name;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIdExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIdExpression.java
index 866ccb29b81..bfa241f8639 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIdExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIdExpression.java
@@ -36,6 +36,12 @@ public class CPPASTIdExpression extends ASTNode implements IASTIdExpression, IAS
setName(name);
}
+ public CPPASTIdExpression copy() {
+ CPPASTIdExpression copy = new CPPASTIdExpression(name == null ? null : name.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTName getName() {
return name;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIfStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIfStatement.java
index 2e6b58df1c3..49c773f9d8a 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIfStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTIfStatement.java
@@ -46,7 +46,18 @@ public class CPPASTIfStatement extends ASTNode implements ICPPASTIfStatement, IA
setThenClause(thenClause);
setElseClause(elseClause);
}
+
+ public CPPASTIfStatement copy() {
+ CPPASTIfStatement copy = new CPPASTIfStatement();
+ copy.setConditionDeclaration(condDecl == null ? null : condDecl.copy());
+ copy.setConditionExpression(condition == null ? null : condition.copy());
+ copy.setThenClause(thenClause == null ? null : thenClause.copy());
+ copy.setElseClause(elseClause == null ? null : elseClause.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getConditionExpression() {
return condition;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerExpression.java
index 3fa12395013..3e65fab8672 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerExpression.java
@@ -33,6 +33,12 @@ public class CPPASTInitializerExpression extends ASTNode implements
setExpression(exp);
}
+ public CPPASTInitializerExpression copy() {
+ CPPASTInitializerExpression copy = new CPPASTInitializerExpression(exp == null ? null : exp.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getExpression() {
return exp;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerList.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerList.java
index 2fb99cc0d38..24cead27102 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerList.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTInitializerList.java
@@ -21,6 +21,14 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
*/
public class CPPASTInitializerList extends ASTNode implements IASTInitializerList {
+ public CPPASTInitializerList copy() {
+ CPPASTInitializerList copy = new CPPASTInitializerList();
+ for(IASTInitializer initializer : getInitializers())
+ copy.addInitializer(initializer == null ? null : initializer.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTInitializer [] getInitializers() {
if( initializers == null ) return IASTInitializer.EMPTY_INITIALIZER_ARRAY;
initializers = (IASTInitializer[]) ArrayUtil.removeNullsAfter( IASTInitializer.class, initializers, initializersPos );
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLabelStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLabelStatement.java
index 99e5acdeaac..f5b9a22b03b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLabelStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLabelStatement.java
@@ -35,6 +35,14 @@ public class CPPASTLabelStatement extends ASTNode implements
setName(name);
setNestedStatement(nestedStatement);
}
+
+ public CPPASTLabelStatement copy() {
+ CPPASTLabelStatement copy = new CPPASTLabelStatement();
+ copy.setName(name == null ? null : name.copy());
+ copy.setNestedStatement(nestedStatement == null ? null : nestedStatement.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTName getName() {
return name;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java
index ff98152a9b9..6a9c8b46416 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLinkageSpecification.java
@@ -32,6 +32,15 @@ public class CPPASTLinkageSpecification extends ASTNode implements
public CPPASTLinkageSpecification(String literal) {
this.literal = literal;
}
+
+ public CPPASTLinkageSpecification copy() {
+ CPPASTLinkageSpecification copy = new CPPASTLinkageSpecification(literal);
+ for(IASTDeclaration declaration : getDeclarations())
+ copy.addDeclaration(declaration == null ? null : declaration.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public String getLiteral() {
return literal;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java
index 078bbdca81f..7842c2ca4f9 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java
@@ -34,6 +34,12 @@ public class CPPASTLiteralExpression extends ASTNode implements ICPPASTLiteralEx
this.value = value;
}
+ public CPPASTLiteralExpression copy() {
+ CPPASTLiteralExpression copy = new CPPASTLiteralExpression(kind, value == null ? null : value.clone());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public int getKind() {
return kind;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTName.java
index ca95be277e4..a4c7a6e3f09 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTName.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTName.java
@@ -47,6 +47,12 @@ public class CPPASTName extends CPPASTNameBase implements IASTCompletionContext
name = CharArrayUtils.EMPTY;
}
+ public CPPASTName copy() {
+ CPPASTName copy = new CPPASTName(name == null ? null : name.clone());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
@Override
protected IBinding createIntermediateBinding() {
return CPPVisitor.createBinding(this);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamedTypeSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamedTypeSpecifier.java
index 3ceb2435872..2ac923aafae 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamedTypeSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamedTypeSpecifier.java
@@ -43,6 +43,13 @@ public class CPPASTNamedTypeSpecifier extends CPPASTBaseDeclSpecifier implements
setName(name);
}
+ public CPPASTNamedTypeSpecifier copy() {
+ CPPASTNamedTypeSpecifier copy = new CPPASTNamedTypeSpecifier(name == null ? null : name.copy());
+ copyBaseDeclSpec(copy);
+ copy.typename = typename;
+ return copy;
+ }
+
public boolean isTypename() {
return typename;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceAlias.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceAlias.java
index c1688acbb64..a83375723e7 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceAlias.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceAlias.java
@@ -33,6 +33,14 @@ public class CPPASTNamespaceAlias extends ASTNode implements ICPPASTNamespaceAli
setMappingName(qualifiedName);
}
+ public CPPASTNamespaceAlias copy() {
+ CPPASTNamespaceAlias copy = new CPPASTNamespaceAlias();
+ copy.setAlias(alias == null ? null : alias.copy());
+ copy.setMappingName(qualifiedName == null ? null : qualifiedName.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTName getAlias() {
return alias;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceDefinition.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceDefinition.java
index 4b5ac43ca93..925f9bdb3a7 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceDefinition.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNamespaceDefinition.java
@@ -39,6 +39,14 @@ public class CPPASTNamespaceDefinition extends ASTNode implements
setName(name);
}
+ public CPPASTNamespaceDefinition copy() {
+ CPPASTNamespaceDefinition copy = new CPPASTNamespaceDefinition(name == null ? null : name.copy());
+ for(IASTDeclaration declaration : getDeclarations())
+ copy.addDeclaration(declaration == null ? null : declaration.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTName getName() {
return name;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNewExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNewExpression.java
index 632637ead2a..e7d5476443c 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNewExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNewExpression.java
@@ -51,6 +51,25 @@ public class CPPASTNewExpression extends ASTNode implements
setNewInitializer(initializer);
setTypeId(typeId);
}
+
+ public CPPASTNewExpression copy() {
+ CPPASTNewExpression copy = new CPPASTNewExpression();
+ copy.setIsGlobal(global);
+ copy.setIsNewTypeId(isNewTypeId);
+ copy.setNewPlacement(placement == null ? null : placement.copy());
+ copy.setNewInitializer(initializer == null ? null : initializer.copy());
+ copy.setTypeId(typeId == null ? null : typeId.copy());
+
+ if(arrayExpressions != null) {
+ copy.arrayExpressions = new IASTExpression[arrayExpressions.length];
+ for(int i = 0; i < arrayExpressions.length; i++) {
+ copy.arrayExpressions[i] = arrayExpressions[i] == null ? null : arrayExpressions[i].copy();
+ }
+ }
+
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public boolean isGlobal() {
return global;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNullStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNullStatement.java
index e2dc0408474..fb8ca54c012 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNullStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTNullStatement.java
@@ -37,4 +37,10 @@ public class CPPASTNullStatement extends ASTNode implements IASTNullStatement {
}
return true;
}
+
+ public CPPASTNullStatement copy() {
+ CPPASTNullStatement copy = new CPPASTNullStatement();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTOperatorName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTOperatorName.java
index a69e91f3380..aa0b5757a57 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTOperatorName.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTOperatorName.java
@@ -27,4 +27,12 @@ public class CPPASTOperatorName extends CPPASTName implements ICPPASTOperatorNam
super(name);
}
+
+ @Override
+ public CPPASTOperatorName copy() {
+ char[] name = toCharArray();
+ CPPASTOperatorName copy = new CPPASTOperatorName(name == null ? null : name.clone());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTParameterDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTParameterDeclaration.java
index fe1aed9d140..f65910f0a29 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTParameterDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTParameterDeclaration.java
@@ -35,6 +35,14 @@ public class CPPASTParameterDeclaration extends ASTNode implements ICPPASTParame
setDeclSpecifier(declSpec);
setDeclarator(declarator);
}
+
+ public CPPASTParameterDeclaration copy() {
+ CPPASTParameterDeclaration copy = new CPPASTParameterDeclaration();
+ copy.setDeclSpecifier(declSpec == null ? null : declSpec.copy());
+ copy.setDeclarator(declarator == null ? null : declarator.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTDeclSpecifier getDeclSpecifier() {
return declSpec;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointer.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointer.java
index ab35f5d1b97..d39e8e99d49 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointer.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointer.java
@@ -23,6 +23,15 @@ public class CPPASTPointer extends ASTNode implements IASTPointer {
private boolean isVolatile;
+
+ public CPPASTPointer copy() {
+ CPPASTPointer copy = new CPPASTPointer();
+ copy.isConst = isConst;
+ copy.isVolatile = isVolatile;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public boolean isConst() {
return isConst;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointerToMember.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointerToMember.java
index 0aacdf0ff6a..d090808d87d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointerToMember.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTPointerToMember.java
@@ -17,8 +17,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTPointerToMember;
/**
* @author jcamelon
*/
-public class CPPASTPointerToMember extends CPPASTPointer implements
- ICPPASTPointerToMember {
+public class CPPASTPointerToMember extends CPPASTPointer implements ICPPASTPointerToMember {
private IASTName n;
@@ -29,6 +28,15 @@ public class CPPASTPointerToMember extends CPPASTPointer implements
setName(n);
}
+ @Override
+ public CPPASTPointerToMember copy() {
+ CPPASTPointerToMember copy = new CPPASTPointerToMember(n == null ? null : n.copy());
+ copy.setConst(isConst());
+ copy.setVolatile(isVolatile());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public void setName(IASTName name) {
assertNotFrozen();
n = name;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblem.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblem.java
index 983e6ef9f81..eb0b39db11e 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblem.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblem.java
@@ -25,6 +25,14 @@ public class CPPASTProblem extends ASTProblem {
}
@Override
+ public CPPASTProblem copy() {
+ char[] arg = getArgument();
+ CPPASTProblem problem = new CPPASTProblem(getID(), arg == null ? null : arg.clone(), isError());
+ problem.setOffsetAndLength(this);
+ return problem;
+ }
+
+ @Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitProblems ){
switch( action.visit( this ) ){
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemDeclaration.java
index 25946af1b8c..9390052613f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemDeclaration.java
@@ -18,8 +18,7 @@ import org.eclipse.cdt.core.dom.ast.IASTProblemDeclaration;
/**
* @author jcamelon
*/
-public class CPPASTProblemDeclaration extends CPPASTProblemOwner implements
- IASTProblemDeclaration {
+public class CPPASTProblemDeclaration extends CPPASTProblemOwner implements IASTProblemDeclaration {
public CPPASTProblemDeclaration() {
super();
@@ -29,6 +28,13 @@ public class CPPASTProblemDeclaration extends CPPASTProblemOwner implements
super(problem);
}
+ public CPPASTProblemDeclaration copy() {
+ CPPASTProblemDeclaration copy = new CPPASTProblemDeclaration();
+ copyBaseProblem(copy);
+ return copy;
+ }
+
+
@Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitDeclarations ){
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemExpression.java
index 30fbb9a2851..774c09744a8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemExpression.java
@@ -19,8 +19,7 @@ import org.eclipse.cdt.core.dom.ast.IType;
/**
* @author jcamelon
*/
-public class CPPASTProblemExpression extends CPPASTProblemOwner implements
- IASTProblemExpression {
+public class CPPASTProblemExpression extends CPPASTProblemOwner implements IASTProblemExpression {
public CPPASTProblemExpression() {
super();
@@ -30,6 +29,12 @@ public class CPPASTProblemExpression extends CPPASTProblemOwner implements
super(problem);
}
+ public CPPASTProblemExpression copy() {
+ CPPASTProblemExpression copy = new CPPASTProblemExpression();
+ copyBaseProblem(copy);
+ return copy;
+ }
+
@Override
public boolean accept( ASTVisitor action ){
if( action.shouldVisitExpressions ){
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemOwner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemOwner.java
index 86db9592d80..76254c51c96 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemOwner.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemOwner.java
@@ -30,6 +30,11 @@ abstract class CPPASTProblemOwner extends ASTNode implements IASTProblemHolder {
public CPPASTProblemOwner(IASTProblem problem) {
setProblem(problem);
}
+
+ protected void copyBaseProblem(CPPASTProblemOwner copy) {
+ copy.setProblem(problem == null ? null : problem.copy());
+ copy.setOffsetAndLength(this);
+ }
public IASTProblem getProblem() {
return problem;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemStatement.java
index d407be59474..718de9bbe44 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemStatement.java
@@ -18,8 +18,7 @@ import org.eclipse.cdt.core.dom.ast.IASTProblemStatement;
/**
* @author jcamelon
*/
-public class CPPASTProblemStatement extends CPPASTProblemOwner implements
- IASTProblemStatement {
+public class CPPASTProblemStatement extends CPPASTProblemOwner implements IASTProblemStatement {
public CPPASTProblemStatement() {
super();
@@ -28,6 +27,12 @@ public class CPPASTProblemStatement extends CPPASTProblemOwner implements
public CPPASTProblemStatement(IASTProblem problem) {
super(problem);
}
+
+ public CPPASTProblemStatement copy() {
+ CPPASTProblemStatement copy = new CPPASTProblemStatement();
+ copyBaseProblem(copy);
+ return copy;
+ }
@Override
public boolean accept( ASTVisitor action ){
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemTypeId.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemTypeId.java
index 4673091cd0a..b30312328f8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemTypeId.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTProblemTypeId.java
@@ -12,6 +12,8 @@
package org.eclipse.cdt.internal.core.dom.parser.cpp;
import org.eclipse.cdt.core.dom.ast.ASTVisitor;
+import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
+import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTProblem;
import org.eclipse.cdt.core.dom.ast.IASTProblemTypeId;
@@ -30,6 +32,21 @@ public class CPPASTProblemTypeId extends CPPASTTypeId implements IASTProblemType
setProblem(problem);
}
+ @Override
+ public CPPASTProblemTypeId copy() {
+ IASTProblem problem = getProblem();
+ IASTDeclSpecifier declSpec = getDeclSpecifier();
+ IASTDeclarator absDecl = getAbstractDeclarator();
+
+ CPPASTProblemTypeId copy = new CPPASTProblemTypeId();
+ copy.setProblem(problem == null ? null : problem.copy());
+ copy.setDeclSpecifier(declSpec == null ? null : declSpec.copy());
+ copy.setAbstractDeclarator(absDecl == null ? null : absDecl.copy());
+
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTProblem getProblem() {
return problem;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java
index de1961402bd..3b3e9c28b00 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTQualifiedName.java
@@ -56,6 +56,16 @@ public class CPPASTQualifiedName extends CPPASTNameBase
public CPPASTQualifiedName() {
}
+ public CPPASTQualifiedName copy() {
+ CPPASTQualifiedName copy = new CPPASTQualifiedName();
+ for(IASTName name : getNames())
+ copy.addName(name == null ? null : name.copy());
+ copy.setFullyQualified(isFullyQualified);
+ copy.setSignature(signature);
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
@Override
public final IBinding resolvePreBinding() {
// The full qualified name resolves to the same thing as the last name
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReferenceOperator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReferenceOperator.java
index 49e140785b4..ba04e479e72 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReferenceOperator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReferenceOperator.java
@@ -17,9 +17,14 @@ import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
/**
* @author jcamelon
*/
-public class CPPASTReferenceOperator extends ASTNode implements
- ICPPASTReferenceOperator {
+public class CPPASTReferenceOperator extends ASTNode implements ICPPASTReferenceOperator {
+ public CPPASTReferenceOperator copy() {
+ CPPASTReferenceOperator copy = new CPPASTReferenceOperator();
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
@Override
public boolean accept( ASTVisitor action ){
return true;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReturnStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReturnStatement.java
index 94938a24e5b..9a1721fe63b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReturnStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTReturnStatement.java
@@ -31,6 +31,12 @@ public class CPPASTReturnStatement extends ASTNode implements IASTReturnStatemen
setReturnValue(retValue);
}
+ public CPPASTReturnStatement copy() {
+ CPPASTReturnStatement copy = new CPPASTReturnStatement(retValue == null ? null : retValue.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getReturnValue() {
return retValue;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclSpecifier.java
index 755f7a071c9..0b24a24807f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclSpecifier.java
@@ -16,8 +16,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleDeclSpecifier;
/**
* @author jcamelon
*/
-public class CPPASTSimpleDeclSpecifier extends CPPASTBaseDeclSpecifier
- implements ICPPASTSimpleDeclSpecifier {
+public class CPPASTSimpleDeclSpecifier extends CPPASTBaseDeclSpecifier implements ICPPASTSimpleDeclSpecifier {
private int type;
private boolean isSigned;
@@ -25,7 +24,22 @@ public class CPPASTSimpleDeclSpecifier extends CPPASTBaseDeclSpecifier
private boolean isShort;
private boolean isLong;
- /**
+ public CPPASTSimpleDeclSpecifier copy() {
+ CPPASTSimpleDeclSpecifier copy = new CPPASTSimpleDeclSpecifier();
+ copySimpleDeclSpec(copy);
+ return copy;
+ }
+
+ protected void copySimpleDeclSpec(CPPASTSimpleDeclSpecifier other) {
+ copyBaseDeclSpec(other);
+ other.type = type;
+ other.isSigned = isSigned;
+ other.isUnsigned = isUnsigned;
+ other.isShort = isShort;
+ other.isLong = isLong;
+ }
+
+ /**
* @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier
*/
public int getType() {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclaration.java
index 8af4c58d36b..3fe49635ece 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleDeclaration.java
@@ -32,6 +32,15 @@ public class CPPASTSimpleDeclaration extends ASTNode implements IASTSimpleDeclar
setDeclSpecifier(declSpecifier);
}
+ public CPPASTSimpleDeclaration copy() {
+ CPPASTSimpleDeclaration copy = new CPPASTSimpleDeclaration();
+ copy.setDeclSpecifier(declSpecifier == null ? null : declSpecifier.copy());
+ for(IASTDeclarator declarator : getDeclarators())
+ copy.addDeclarator(declarator == null ? null : declarator.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTDeclSpecifier getDeclSpecifier() {
return declSpecifier;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeConstructorExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeConstructorExpression.java
index 1f3fa582f27..97dba4a23c7 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeConstructorExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeConstructorExpression.java
@@ -36,6 +36,14 @@ public class CPPASTSimpleTypeConstructorExpression extends ASTNode implements
setInitialValue(init);
}
+ public CPPASTSimpleTypeConstructorExpression copy() {
+ CPPASTSimpleTypeConstructorExpression copy = new CPPASTSimpleTypeConstructorExpression();
+ copy.st = st;
+ copy.setInitialValue(init == null ? null : init.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public int getSimpleType() {
return st;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeTemplateParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeTemplateParameter.java
index 893d906819f..9eb0d2b2427 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeTemplateParameter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSimpleTypeTemplateParameter.java
@@ -36,6 +36,15 @@ public class CPPASTSimpleTypeTemplateParameter extends ASTNode implements
setName(name);
setDefaultType(typeId);
}
+
+ public CPPASTSimpleTypeTemplateParameter copy() {
+ CPPASTSimpleTypeTemplateParameter copy = new CPPASTSimpleTypeTemplateParameter();
+ copy.type = type;
+ copy.setName(name == null ? null : name.copy());
+ copy.setDefaultType(typeId == null ? null : typeId.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public int getParameterType() {
return type;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSwitchStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSwitchStatement.java
index 7e7472d3eea..4911b83d354 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSwitchStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTSwitchStatement.java
@@ -44,6 +44,15 @@ public class CPPASTSwitchStatement extends ASTNode implements
setControllerExpression(controller);
setBody(body);
}
+
+ public CPPASTSwitchStatement copy() {
+ CPPASTSwitchStatement copy = new CPPASTSwitchStatement();
+ copy.setControllerDeclaration(decl == null ? null : decl.copy());
+ copy.setControllerExpression(controller == null ? null : controller.copy());
+ copy.setBody(body == null ? null : body.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTExpression getControllerExpression() {
return controller;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java
index 330b1282e5c..ee76c385100 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java
@@ -41,6 +41,16 @@ public class CPPASTTemplateDeclaration extends ASTNode implements
setDeclaration(declaration);
}
+ public CPPASTTemplateDeclaration copy() {
+ CPPASTTemplateDeclaration copy = new CPPASTTemplateDeclaration();
+ copy.setDeclaration(declaration == null ? null : declaration.copy());
+ copy.exported = exported;
+ for(ICPPASTTemplateParameter param : getTemplateParameters())
+ copy.addTemplateParamter(param == null ? null : param.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public boolean isExported() {
return exported;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateId.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateId.java
index 6a91920732f..50cf5e79f33 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateId.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateId.java
@@ -37,6 +37,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPTemplates;
public class CPPASTTemplateId extends CPPASTNameBase implements ICPPASTTemplateId, IASTAmbiguityParent {
private IASTName templateName;
private IASTNode[] templateArguments = null;
+
public CPPASTTemplateId() {
}
@@ -44,6 +45,14 @@ public class CPPASTTemplateId extends CPPASTNameBase implements ICPPASTTemplateI
setTemplateName(templateName);
}
+ public CPPASTTemplateId copy() {
+ CPPASTTemplateId copy = new CPPASTTemplateId(templateName == null ? null : templateName.copy());
+ for(IASTNode arg : getTemplateArguments())
+ copy.internalAddTemplateArgument(arg == null ? null : arg.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTName getTemplateName() {
return templateName;
}
@@ -57,32 +66,26 @@ public class CPPASTTemplateId extends CPPASTNameBase implements ICPPASTTemplateI
name.setPropertyInParent(TEMPLATE_NAME);
}
}
+
+ private void internalAddTemplateArgument(IASTNode node) {
+ assertNotFrozen();
+ templateArguments = (IASTNode[]) ArrayUtil.append(IASTNode.class, templateArguments, node);
+ if (node != null) {
+ node.setParent(this);
+ node.setPropertyInParent(TEMPLATE_ID_ARGUMENT);
+ }
+ }
public void addTemplateArgument(IASTTypeId typeId) {
- assertNotFrozen();
- templateArguments = (IASTNode[]) ArrayUtil.append(IASTNode.class, templateArguments, typeId);
- if (typeId != null) {
- typeId.setParent(this);
- typeId.setPropertyInParent(TEMPLATE_ID_ARGUMENT);
- }
+ internalAddTemplateArgument(typeId);
}
public void addTemplateArgument(IASTExpression expression) {
- assertNotFrozen();
- templateArguments = (IASTNode[]) ArrayUtil.append(IASTNode.class, templateArguments, expression);
- if (expression != null) {
- expression.setParent(this);
- expression.setPropertyInParent(TEMPLATE_ID_ARGUMENT);
- }
+ internalAddTemplateArgument(expression);
}
public void addTemplateArgument(ICPPASTAmbiguousTemplateArgument ata) {
- assertNotFrozen();
- templateArguments = (IASTNode[]) ArrayUtil.append(IASTNode.class, templateArguments, ata);
- if (ata != null) {
- ata.setParent(this);
- ata.setPropertyInParent(TEMPLATE_ID_ARGUMENT);
- }
+ internalAddTemplateArgument(ata);
}
public IASTNode[] getTemplateArguments() {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateSpecialization.java
index 2d85fabcd4c..19b0fb0cd97 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateSpecialization.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateSpecialization.java
@@ -39,6 +39,13 @@ public class CPPASTTemplateSpecialization extends ASTNode implements
public CPPASTTemplateSpecialization(IASTDeclaration declaration) {
setDeclaration(declaration);
}
+
+ public CPPASTTemplateSpecialization copy() {
+ CPPASTTemplateSpecialization copy = new CPPASTTemplateSpecialization();
+ copy.setDeclaration(declaration == null ? null : declaration.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTDeclaration getDeclaration() {
return declaration;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplatedTypeTemplateParameter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplatedTypeTemplateParameter.java
index 1e444197234..f33661b4266 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplatedTypeTemplateParameter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplatedTypeTemplateParameter.java
@@ -36,6 +36,16 @@ public class CPPASTTemplatedTypeTemplateParameter extends ASTNode implements
setName(name);
setDefaultValue(defaultValue);
}
+
+ public CPPASTTemplatedTypeTemplateParameter copy() {
+ CPPASTTemplatedTypeTemplateParameter copy = new CPPASTTemplatedTypeTemplateParameter();
+ copy.setName(name == null ? null : name.copy());
+ copy.setDefaultValue(defaultValue == null ? null : defaultValue.copy());
+ for(ICPPASTTemplateParameter param : getTemplateParameters())
+ copy.addTemplateParamter(param == null ? null : param.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public ICPPASTTemplateParameter[] getTemplateParameters() {
if( parameters == null ) return ICPPASTTemplateParameter.EMPTY_TEMPLATEPARAMETER_ARRAY;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTranslationUnit.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTranslationUnit.java
index ac0495bf455..1fbccd5d038 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTranslationUnit.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTranslationUnit.java
@@ -49,6 +49,12 @@ public class CPPASTTranslationUnit extends ASTTranslationUnit implements ICPPAST
public CPPASTTranslationUnit() {
}
+ public CPPASTTranslationUnit copy() {
+ CPPASTTranslationUnit copy = new CPPASTTranslationUnit();
+ copyAbstractTU(copy);
+ return copy;
+ }
+
public CPPNamespaceScope getScope() {
if (fScope == null) {
fScope = new CPPNamespaceScope(this);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTryBlockStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTryBlockStatement.java
index 77481232d57..6db67c78c60 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTryBlockStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTryBlockStatement.java
@@ -33,6 +33,14 @@ public class CPPASTTryBlockStatement extends ASTNode implements ICPPASTTryBlockS
setTryBody(tryBody);
}
+ public CPPASTTryBlockStatement copy() {
+ CPPASTTryBlockStatement copy = new CPPASTTryBlockStatement(tryBody == null ? null : tryBody.copy());
+ for(ICPPASTCatchHandler handler : getCatchHandlers())
+ copy.addCatchHandler(handler == null ? null : handler.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public void addCatchHandler(ICPPASTCatchHandler statement) {
assertNotFrozen();
if (statement != null) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeId.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeId.java
index 60ec38f2c78..db9a1ffccba 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeId.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeId.java
@@ -32,6 +32,14 @@ public class CPPASTTypeId extends ASTNode implements IASTTypeId {
setDeclSpecifier(declSpec);
setAbstractDeclarator(absDecl);
}
+
+ public CPPASTTypeId copy() {
+ CPPASTTypeId copy = new CPPASTTypeId();
+ copy.setDeclSpecifier(declSpec == null ? null : declSpec.copy());
+ copy.setAbstractDeclarator(absDecl == null ? null : absDecl.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
public IASTDeclSpecifier getDeclSpecifier() {
return declSpec;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeIdExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeIdExpression.java
index fcd39d9c3d6..b85669ffd8f 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeIdExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypeIdExpression.java
@@ -33,6 +33,12 @@ public class CPPASTTypeIdExpression extends ASTNode implements ICPPASTTypeIdExpr
setTypeId(typeId);
}
+ public CPPASTTypeIdExpression copy() {
+ CPPASTTypeIdExpression copy = new CPPASTTypeIdExpression(op, typeId == null ? null : typeId.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public int getOperator() {
return op;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypenameExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypenameExpression.java
index f6980ff9068..8f3f0a15ccc 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypenameExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTypenameExpression.java
@@ -44,6 +44,16 @@ public class CPPASTTypenameExpression extends ASTNode implements
this.isTemplate = isTemplate;
}
+ public CPPASTTypenameExpression copy() {
+ CPPASTTypenameExpression copy = new CPPASTTypenameExpression();
+ copy.setName(name == null ? null : name.copy());
+ copy.setInitialValue(init == null ? null : init.copy());
+ copy.isTemplate = isTemplate;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
+
public void setIsTemplate(boolean templateTokenConsumed) {
assertNotFrozen();
isTemplate = templateTokenConsumed;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUnaryExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUnaryExpression.java
index 821007301b4..c669f45094b 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUnaryExpression.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUnaryExpression.java
@@ -25,7 +25,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor;
public class CPPASTUnaryExpression extends ASTNode implements
ICPPASTUnaryExpression, IASTAmbiguityParent {
- private int operator;
+ private int op;
private IASTExpression operand;
@@ -33,17 +33,23 @@ public class CPPASTUnaryExpression extends ASTNode implements
}
public CPPASTUnaryExpression(int operator, IASTExpression operand) {
- this.operator = operator;
+ this.op = operator;
setOperand(operand);
}
+ public CPPASTUnaryExpression copy() {
+ CPPASTUnaryExpression copy = new CPPASTUnaryExpression(op, operand == null ? null : operand.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public int getOperator() {
- return operator;
+ return op;
}
public void setOperator(int value) {
assertNotFrozen();
- this.operator = value;
+ this.op = value;
}
public IASTExpression getOperand() {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDeclaration.java
index e3bea4858ed..c58a44ff0d4 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDeclaration.java
@@ -40,6 +40,13 @@ public class CPPASTUsingDeclaration extends ASTNode implements
setName(name);
}
+ public CPPASTUsingDeclaration copy() {
+ CPPASTUsingDeclaration copy = new CPPASTUsingDeclaration(name == null ? null : name.copy());
+ copy.typeName = typeName;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public void setIsTypename(boolean value) {
assertNotFrozen();
this.typeName = value;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDirective.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDirective.java
index 36ade6c16fb..f229b642242 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDirective.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTUsingDirective.java
@@ -38,6 +38,12 @@ public class CPPASTUsingDirective extends ASTNode implements
setQualifiedName(name);
}
+ public CPPASTUsingDirective copy() {
+ CPPASTUsingDirective copy = new CPPASTUsingDirective(name == null ? null : name.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTName getQualifiedName() {
return name;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTVisibilityLabel.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTVisibilityLabel.java
index 33410dba270..8e09b0ec70d 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTVisibilityLabel.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTVisibilityLabel.java
@@ -29,6 +29,12 @@ public class CPPASTVisibilityLabel extends ASTNode implements ICPPASTVisibilityL
this.visibility = visibility;
}
+ public CPPASTVisibilityLabel copy() {
+ CPPASTVisibilityLabel copy = new CPPASTVisibilityLabel(visibility);
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public int getVisibility() {
return visibility;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTWhileStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTWhileStatement.java
index 76cfc8d1b7a..9ea1db40ef1 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTWhileStatement.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTWhileStatement.java
@@ -44,6 +44,15 @@ public class CPPASTWhileStatement extends ASTNode implements
setBody(body);
}
+ public CPPASTWhileStatement copy() {
+ CPPASTWhileStatement copy = new CPPASTWhileStatement();
+ copy.setConditionDeclaration(condition2 == null ? null : condition2.copy());
+ copy.setCondition(condition == null ? null : condition.copy());
+ copy.setBody(body == null ? null : body.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public IASTExpression getCondition() {
return condition;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTExplicitTemplateInstantiation.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTExplicitTemplateInstantiation.java
index f7568172d68..fc1143acba6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTExplicitTemplateInstantiation.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTExplicitTemplateInstantiation.java
@@ -30,6 +30,17 @@ public class GPPASTExplicitTemplateInstantiation extends
private int mod;
+
+ @Override
+ public GPPASTExplicitTemplateInstantiation copy() {
+ GPPASTExplicitTemplateInstantiation copy = new GPPASTExplicitTemplateInstantiation();
+ IASTDeclaration declaration = getDeclaration();
+ copy.setDeclaration(declaration == null ? null : declaration.copy());
+ copy.mod = mod;
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public int getModifier() {
return mod;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointer.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointer.java
index 5e2a132e548..40c6d51f298 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointer.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointer.java
@@ -19,6 +19,16 @@ public class GPPASTPointer extends CPPASTPointer implements IGPPASTPointer {
private boolean isRestrict;
+ @Override
+ public GPPASTPointer copy() {
+ GPPASTPointer copy = new GPPASTPointer();
+ copy.setConst(isConst());
+ copy.setVolatile(isVolatile());
+ copy.setRestrict(isRestrict);
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public boolean isRestrict() {
return isRestrict;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointerToMember.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointerToMember.java
index f251ec625d6..dc3699d5904 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointerToMember.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTPointerToMember.java
@@ -29,6 +29,17 @@ public class GPPASTPointerToMember extends CPPASTPointerToMember implements
private boolean isRestrict;
+ @Override
+ public GPPASTPointerToMember copy() {
+ IASTName name = getName();
+ GPPASTPointerToMember copy = new GPPASTPointerToMember(name == null ? null : name.copy());
+ copy.setConst(isConst());
+ copy.setVolatile(isVolatile());
+ copy.setRestrict(isRestrict);
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTPointer#isRestrict()
*/
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTSimpleDeclSpecifier.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTSimpleDeclSpecifier.java
index 1ced2ca22c3..49973a871d1 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTSimpleDeclSpecifier.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GPPASTSimpleDeclSpecifier.java
@@ -33,10 +33,22 @@ public class GPPASTSimpleDeclSpecifier extends CPPASTSimpleDeclSpecifier
public GPPASTSimpleDeclSpecifier() {
}
-
+
public GPPASTSimpleDeclSpecifier(IASTExpression typeofExpression) {
setTypeofExpression(typeofExpression);
}
+
+ @Override
+ public GPPASTSimpleDeclSpecifier copy() {
+ GPPASTSimpleDeclSpecifier copy = new GPPASTSimpleDeclSpecifier();
+ copySimpleDeclSpec(copy);
+ copy.setTypeofExpression(typeOfExpression == null ? null : typeOfExpression.copy());
+ copy.longLong = longLong;
+ copy.restrict = restrict;
+ copy.complex = complex;
+ copy.imaginary = imaginary;
+ return copy;
+ }
public boolean isLongLong() {
return longLong;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/ASTLiteralNode.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/ASTLiteralNode.java
index b7e8290130d..7cdd2adddfe 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/ASTLiteralNode.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/ASTLiteralNode.java
@@ -95,4 +95,8 @@ public class ASTLiteralNode implements IASTNode {
public boolean isFrozen() {
return false;
}
+
+ public IASTNode copy() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ContainerNode.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ContainerNode.java
index 1f9a10c84c0..39f2dd0a956 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ContainerNode.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ContainerNode.java
@@ -42,6 +42,14 @@ public class ContainerNode extends ASTNode {
}
}
+ public ContainerNode copy() {
+ ContainerNode copy = new ContainerNode();
+ for(IASTNode node : getNodes())
+ copy.addNode(node == null ? null : node.copy());
+ copy.setOffsetAndLength(this);
+ return copy;
+ }
+
public void addNode(IASTNode node) {
nodes.add(node);
if(node.getParent() == null) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorName.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorName.java
index f9cb9681f41..d797787abcf 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorName.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorName.java
@@ -74,6 +74,10 @@ class ASTPreprocessorName extends ASTPreprocessorNode implements IASTName {
public IASTName getLastName() {
return this;
}
+ @Override
+ public IASTName copy() {
+ throw new UnsupportedOperationException();
+ }
}
class ASTPreprocessorDefinition extends ASTPreprocessorName {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java
index 3a3382e75c9..190f77fdfd3 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ASTPreprocessorNode.java
@@ -78,6 +78,10 @@ abstract class ASTPreprocessorNode extends ASTNode {
void findNode(ASTNodeSpecification<?> nodeSpec) {
nodeSpec.visit(this);
}
+
+ public IASTNode copy() {
+ throw new UnsupportedOperationException();
+ }
@Override
public IToken getLeadingSyntax() throws UnsupportedOperationException {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMASTAdapter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMASTAdapter.java
index ef557dd8ce3..a9d8ab539c8 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMASTAdapter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMASTAdapter.java
@@ -192,6 +192,10 @@ public class PDOMASTAdapter {
public boolean isFrozen() {
return fDelegate.isFrozen();
}
+
+ public IASTName copy() {
+ throw new UnsupportedOperationException();
+ }
}
private static class AnonymousEnumeration implements IEnumeration {

Back to the top