From a83d0a7ac9c7ccde1dea8fda147630c068d8d124 Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Tue, 6 Nov 2007 16:02:08 +0000 Subject: [PATCH] bug #206952, add constructor methods to AST node classes, set() methods now call setParent() and setPropertyInParent() --- .../core/dom/ast/IASTExpressionStatement.java | 4 +- .../parser/AbstractGNUSourceCodeParser.java | 322 +---- .../core/dom/parser/c/CASTASMDeclaration.java | 16 +- .../dom/parser/c/CASTAmbiguousExpression.java | 2 + .../dom/parser/c/CASTAmbiguousStatement.java | 2 + .../dom/parser/c/CASTArrayDeclarator.java | 19 +- .../dom/parser/c/CASTArrayDesignator.java | 19 +- .../core/dom/parser/c/CASTArrayModifier.java | 19 +- .../parser/c/CASTArrayRangeDesignator.java | 32 +- .../c/CASTArraySubscriptExpression.java | 18 +- .../dom/parser/c/CASTBaseDeclSpecifier.java | 17 +- .../dom/parser/c/CASTBinaryExpression.java | 24 +- .../core/dom/parser/c/CASTCaseStatement.java | 20 +- .../core/dom/parser/c/CASTCastExpression.java | 24 +- .../parser/c/CASTCompositeTypeSpecifier.java | 49 +- .../dom/parser/c/CASTCompoundStatement.java | 21 +- .../c/CASTCompoundStatementExpression.java | 13 +- .../parser/c/CASTConditionalExpression.java | 24 +- .../parser/c/CASTDeclarationStatement.java | 23 +- .../core/dom/parser/c/CASTDeclarator.java | 55 +- .../parser/c/CASTDesignatedInitializer.java | 32 +- .../core/dom/parser/c/CASTDoStatement.java | 35 +- .../parser/c/CASTElaboratedTypeSpecifier.java | 30 +- .../parser/c/CASTEnumerationSpecifier.java | 36 +- .../core/dom/parser/c/CASTEnumerator.java | 35 +- .../core/dom/parser/c/CASTExpressionList.java | 4 + .../dom/parser/c/CASTExpressionStatement.java | 24 +- .../dom/parser/c/CASTFieldDeclarator.java | 23 +- .../dom/parser/c/CASTFieldDesignator.java | 20 +- .../core/dom/parser/c/CASTFieldReference.java | 25 +- .../core/dom/parser/c/CASTForStatement.java | 70 +- .../parser/c/CASTFunctionCallExpression.java | 19 +- .../dom/parser/c/CASTFunctionDeclarator.java | 27 +- .../dom/parser/c/CASTFunctionDefinition.java | 46 +- .../core/dom/parser/c/CASTGotoStatement.java | 22 +- .../core/dom/parser/c/CASTIdExpression.java | 14 +- .../core/dom/parser/c/CASTIfStatement.java | 48 +- .../parser/c/CASTInitializerExpression.java | 20 +- .../dom/parser/c/CASTInitializerList.java | 10 +- .../parser/c/CASTKnRFunctionDeclarator.java | 49 +- .../core/dom/parser/c/CASTLabelStatement.java | 29 +- .../dom/parser/c/CASTLiteralExpression.java | 15 +- .../parser/c/CASTModifiedArrayModifier.java | 46 +- .../internal/core/dom/parser/c/CASTName.java | 22 +- .../parser/c/CASTParameterDeclaration.java | 31 +- .../core/dom/parser/c/CASTPointer.java | 30 +- .../core/dom/parser/c/CASTProblem.java | 73 +- .../dom/parser/c/CASTProblemDeclaration.java | 11 +- .../dom/parser/c/CASTProblemExpression.java | 14 +- .../core/dom/parser/c/CASTProblemOwner.java | 20 +- .../dom/parser/c/CASTProblemStatement.java | 15 +- .../dom/parser/c/CASTReturnStatement.java | 24 +- .../dom/parser/c/CASTSimpleDeclSpecifier.java | 49 - .../dom/parser/c/CASTSimpleDeclaration.java | 36 +- .../dom/parser/c/CASTSwitchStatement.java | 30 +- .../dom/parser/c/CASTTranslationUnit.java | 2 + .../core/dom/parser/c/CASTTypeId.java | 30 +- .../dom/parser/c/CASTTypeIdExpression.java | 15 +- .../c/CASTTypeIdInitializerExpression.java | 36 +- .../parser/c/CASTTypedefNameSpecifier.java | 25 +- .../dom/parser/c/CASTUnaryExpression.java | 15 +- .../core/dom/parser/c/CASTWhileStatement.java | 31 +- .../parser/c/GCCASTSimpleDeclSpecifier.java | 23 +- .../core/dom/parser/c/GNUCSourceParser.java | 504 +------- .../dom/parser/cpp/CPPASTASMDeclaration.java | 22 +- .../cpp/CPPASTAmbiguousDeclaration.java | 5 +- .../parser/cpp/CPPASTAmbiguousExpression.java | 4 +- .../parser/cpp/CPPASTAmbiguousStatement.java | 2 + .../dom/parser/cpp/CPPASTArrayDeclarator.java | 2 + .../dom/parser/cpp/CPPASTArrayModifier.java | 26 +- .../cpp/CPPASTArraySubscriptExpression.java | 22 +- .../parser/cpp/CPPASTBaseDeclSpecifier.java | 45 +- .../dom/parser/cpp/CPPASTBaseSpecifier.java | 25 +- .../parser/cpp/CPPASTBinaryExpression.java | 19 +- .../dom/parser/cpp/CPPASTCaseStatement.java | 25 +- .../dom/parser/cpp/CPPASTCastExpression.java | 36 +- .../dom/parser/cpp/CPPASTCatchHandler.java | 40 +- .../cpp/CPPASTCompositeTypeSpecifier.java | 54 +- .../parser/cpp/CPPASTCompoundStatement.java | 13 +- .../CPPASTCompoundStatementExpression.java | 18 +- .../cpp/CPPASTConditionalExpression.java | 25 +- .../CPPASTConstructorChainInitializer.java | 46 +- .../cpp/CPPASTConstructorInitializer.java | 20 +- .../dom/parser/cpp/CPPASTConversionName.java | 13 +- .../cpp/CPPASTDeclarationStatement.java | 20 +- .../core/dom/parser/cpp/CPPASTDeclarator.java | 56 +- .../parser/cpp/CPPASTDefaultStatement.java | 4 +- .../parser/cpp/CPPASTDeleteExpression.java | 16 +- .../dom/parser/cpp/CPPASTDoStatement.java | 34 +- .../cpp/CPPASTElaboratedTypeSpecifier.java | 30 +- .../cpp/CPPASTEnumerationSpecifier.java | 44 +- .../core/dom/parser/cpp/CPPASTEnumerator.java | 40 +- .../CPPASTExplicitTemplateInstantiation.java | 20 +- .../dom/parser/cpp/CPPASTExpressionList.java | 4 + .../parser/cpp/CPPASTExpressionStatement.java | 21 +- .../dom/parser/cpp/CPPASTFieldDeclarator.java | 20 +- .../dom/parser/cpp/CPPASTFieldReference.java | 21 +- .../dom/parser/cpp/CPPASTForStatement.java | 66 +- .../cpp/CPPASTFunctionCallExpression.java | 20 +- .../parser/cpp/CPPASTFunctionDeclarator.java | 66 +- .../parser/cpp/CPPASTFunctionDefinition.java | 45 +- .../cpp/CPPASTFunctionTryBlockDeclarator.java | 11 +- .../dom/parser/cpp/CPPASTGotoStatement.java | 29 +- .../dom/parser/cpp/CPPASTIdExpression.java | 17 +- .../dom/parser/cpp/CPPASTIfStatement.java | 53 +- .../cpp/CPPASTInitializerExpression.java | 23 +- .../dom/parser/cpp/CPPASTInitializerList.java | 12 +- .../dom/parser/cpp/CPPASTLabelStatement.java | 29 +- .../cpp/CPPASTLinkageSpecification.java | 26 +- .../parser/cpp/CPPASTLiteralExpression.java | 14 +- .../core/dom/parser/cpp/CPPASTName.java | 26 - .../parser/cpp/CPPASTNamedTypeSpecifier.java | 31 +- .../dom/parser/cpp/CPPASTNamespaceAlias.java | 28 +- .../parser/cpp/CPPASTNamespaceDefinition.java | 38 +- .../dom/parser/cpp/CPPASTNewExpression.java | 29 +- .../dom/parser/cpp/CPPASTNullStatement.java | 4 +- .../cpp/CPPASTParameterDeclaration.java | 34 +- .../core/dom/parser/cpp/CPPASTPointer.java | 20 - .../dom/parser/cpp/CPPASTPointerToMember.java | 24 +- .../core/dom/parser/cpp/CPPASTProblem.java | 79 +- .../dom/parser/cpp/CPPASTProblemOwner.java | 21 +- .../dom/parser/cpp/CPPASTProblemTypeId.java | 27 +- .../dom/parser/cpp/CPPASTQualifiedName.java | 70 +- .../dom/parser/cpp/CPPASTReturnStatement.java | 29 +- .../parser/cpp/CPPASTSimpleDeclSpecifier.java | 30 - .../parser/cpp/CPPASTSimpleDeclaration.java | 29 +- ...CPPASTSimpleTypeConstructorExpression.java | 14 +- .../CPPASTSimpleTypeTemplateParameter.java | 44 +- .../dom/parser/cpp/CPPASTSwitchStatement.java | 42 +- .../parser/cpp/CPPASTTemplateDeclaration.java | 37 +- .../core/dom/parser/cpp/CPPASTTemplateId.java | 64 +- .../cpp/CPPASTTemplateSpecialization.java | 38 +- .../CPPASTTemplatedTypeTemplateParameter.java | 38 +- .../dom/parser/cpp/CPPASTTranslationUnit.java | 123 +- .../parser/cpp/CPPASTTryBlockStatement.java | 36 +- .../core/dom/parser/cpp/CPPASTTypeId.java | 32 +- .../parser/cpp/CPPASTTypeIdExpression.java | 17 +- .../parser/cpp/CPPASTTypenameExpression.java | 19 +- .../dom/parser/cpp/CPPASTUnaryExpression.java | 18 +- .../parser/cpp/CPPASTUsingDeclaration.java | 28 +- .../dom/parser/cpp/CPPASTUsingDirective.java | 24 +- .../dom/parser/cpp/CPPASTVisibilityLabel.java | 10 +- .../dom/parser/cpp/CPPASTWhileStatement.java | 46 +- .../dom/parser/cpp/GNUCPPSourceParser.java | 1097 +++-------------- .../GPPASTExplicitTemplateInstantiation.java | 6 - .../core/dom/parser/cpp/GPPASTPointer.java | 6 - .../parser/cpp/GPPASTSimpleDeclSpecifier.java | 33 +- 147 files changed, 2362 insertions(+), 3570 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTExpressionStatement.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTExpressionStatement.java index 3159889d2b8..5846512ff73 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTExpressionStatement.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/IASTExpressionStatement.java @@ -21,8 +21,8 @@ public interface IASTExpressionStatement extends IASTStatement { * EXPRESSION is the relationship between an * IASTExpressionStatement and an IASTExpression. */ - public static final ASTNodeProperty EXPFRESSION = new ASTNodeProperty( - "IASTExpressionStatement.IASTStatement - IASTExpression for IASTExpressionStatement"); //$NON-NLS-1$ + public static final ASTNodeProperty EXPRESSION = new ASTNodeProperty( + "IASTExpressionStatement.EXPRESSION - IASTExpression for IASTExpressionStatement"); //$NON-NLS-1$ /** * Get the expression in this statement. diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java index 209bb01754a..ceefa6e9573 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java @@ -9,6 +9,7 @@ * IBM Rational Software - Initial API and implementation * Markus Schorn (Wind River Systems) * Ed Swartz (Nokia) + * Mike Kucera (IBM) - bug #206952 *******************************************************************************/ package org.eclipse.cdt.internal.core.dom.parser; @@ -37,7 +38,6 @@ import org.eclipse.cdt.core.dom.ast.IASTExpressionList; import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement; import org.eclipse.cdt.core.dom.ast.IASTFieldDeclarator; import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression; -import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition; import org.eclipse.cdt.core.dom.ast.IASTGotoStatement; import org.eclipse.cdt.core.dom.ast.IASTIdExpression; import org.eclipse.cdt.core.dom.ast.IASTIfStatement; @@ -48,7 +48,6 @@ import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IASTNullStatement; import org.eclipse.cdt.core.dom.ast.IASTProblem; import org.eclipse.cdt.core.dom.ast.IASTProblemExpression; -import org.eclipse.cdt.core.dom.ast.IASTProblemHolder; import org.eclipse.cdt.core.dom.ast.IASTProblemStatement; import org.eclipse.cdt.core.dom.ast.IASTReturnStatement; import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier; @@ -138,8 +137,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { } } - protected final void throwBacktrack(int offset, int length) - throws BacktrackException { + protected final void throwBacktrack(int offset, int length) throws BacktrackException { ++backtrackCount; backtrack.initialize(offset, (length < 0) ? 0 : length); throw backtrack; @@ -149,11 +147,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { protected ASTCompletionNode completionNode; - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.dom.parser.ISourceCodeParser#getCompletionNode() - */ + public IASTCompletionNode getCompletionNode() { return completionNode; } @@ -558,25 +552,19 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { int startingOffset = consume(IToken.tLBRACE).getOffset(); ((ASTNode) result).setOffset(startingOffset); - result.setPropertyInParent(IASTFunctionDefinition.FUNCTION_BODY); + //result.setPropertyInParent(IASTFunctionDefinition.FUNCTION_BODY); while (LT(1) != IToken.tRBRACE && LT(1) != IToken.tEOC) { int checkToken = LA(1).hashCode(); try { IASTStatement s = statement(); result.addStatement(s); - s.setParent(result); - s.setPropertyInParent(IASTCompoundStatement.NESTED_STATEMENT); } catch (BacktrackException b) { IASTProblem p = failParse(b); IASTProblemStatement ps = createProblemStatement(); ps.setProblem(p); ((ASTNode) ps).setOffsetAndLength(((ASTNode) p).getOffset(), ((ASTNode) p).getLength()); - p.setParent(ps); - p.setPropertyInParent(IASTProblemHolder.PROBLEM); result.addStatement(ps); - ps.setParent(result); - ps.setPropertyInParent(IASTCompoundStatement.NESTED_STATEMENT); if (LA(1).hashCode() == checkToken) failParseWithErrorHandling(); } @@ -604,15 +592,12 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { * @throws EndOfFileException * @throws BacktrackException */ - protected IASTExpression compoundStatementExpression() - throws EndOfFileException, BacktrackException { + protected IASTExpression compoundStatementExpression() throws EndOfFileException, BacktrackException { int startingOffset = consume().getOffset(); // tLPAREN always IASTCompoundStatement compoundStatement = null; - if (mode == ParserMode.QUICK_PARSE - || mode == ParserMode.STRUCTURAL_PARSE) + if (mode == ParserMode.QUICK_PARSE || mode == ParserMode.STRUCTURAL_PARSE) skipOverCompoundStatement(); - else if (mode == ParserMode.COMPLETION_PARSE - || mode == ParserMode.SELECTION_PARSE) { + else if (mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE) { if (scanner.isOnTopContext()) compoundStatement(); else @@ -622,13 +607,9 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { int lastOffset = consume(IToken.tRPAREN).getEndOffset(); IGNUASTCompoundStatementExpression resultExpression = createCompoundStatementExpression(); - ((ASTNode) resultExpression).setOffsetAndLength(startingOffset, - lastOffset - startingOffset); + ((ASTNode) resultExpression).setOffsetAndLength(startingOffset, lastOffset - startingOffset); if (compoundStatement != null) { resultExpression.setCompoundStatement(compoundStatement); - compoundStatement.setParent(resultExpression); - compoundStatement - .setPropertyInParent(IGNUASTCompoundStatementExpression.STATEMENT); } return resultExpression; @@ -639,8 +620,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { */ protected abstract IGNUASTCompoundStatementExpression createCompoundStatementExpression(); - protected IASTExpression expression() throws BacktrackException, - EndOfFileException { + protected IASTExpression expression() throws BacktrackException, EndOfFileException { IToken la = LA(1); int startingOffset = la.getOffset(); @@ -658,18 +638,12 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTExpressionList expressionList = createExpressionList(); ((ASTNode) expressionList).setOffset(startingOffset); expressionList.addExpression(assignmentExpression); - assignmentExpression.setParent(expressionList); - assignmentExpression - .setPropertyInParent(IASTExpressionList.NESTED_EXPRESSION); int lastOffset = 0; while (LT(1) == IToken.tCOMMA) { consume(); IASTExpression secondExpression = assignmentExpression(); expressionList.addExpression(secondExpression); - secondExpression.setParent(expressionList); - secondExpression - .setPropertyInParent(IASTExpressionList.NESTED_EXPRESSION); lastOffset = calculateEndOffset(secondExpression); } ((ASTNode) expressionList).setLength(lastOffset - startingOffset); @@ -794,9 +768,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { * @param expression * @throws BacktrackException */ - protected IASTExpression andExpression() throws EndOfFileException, - BacktrackException { - + protected IASTExpression andExpression() throws EndOfFileException, BacktrackException { IASTExpression firstExpression = equalityExpression(); while (LT(1) == IToken.tAMPER) { consume(); @@ -841,11 +813,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { int o = ((ASTNode) firstExpression).getOffset(); ((ASTNode) result).setOffsetAndLength(o, lastOffset - o); result.setOperand1(firstExpression); - firstExpression.setParent(result); - firstExpression.setPropertyInParent(IASTBinaryExpression.OPERAND_ONE); result.setOperand2(secondExpression); - secondExpression.setParent(result); - secondExpression.setPropertyInParent(IASTBinaryExpression.OPERAND_TWO); return result; } @@ -924,18 +892,9 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTConditionalExpression result = createConditionalExpression(); result.setLogicalConditionExpression(firstExpression); - firstExpression.setParent(result); - firstExpression - .setPropertyInParent(IASTConditionalExpression.LOGICAL_CONDITION); result.setPositiveResultExpression(secondExpression); - secondExpression.setParent(result); - secondExpression - .setPropertyInParent(IASTConditionalExpression.POSITIVE_RESULT); if (thirdExpression != null) { result.setNegativeResultExpression(thirdExpression); - thirdExpression.setParent(result); - thirdExpression - .setPropertyInParent(IASTConditionalExpression.NEGATIVE_RESULT); ((ASTNode) result).setOffsetAndLength(((ASTNode) firstExpression) .getOffset(), calculateEndOffset(thirdExpression) - ((ASTNode) firstExpression).getOffset()); @@ -965,11 +924,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTUnaryExpression result = createUnaryExpression(); ((ASTNode) result).setOffsetAndLength(offset, lastOffset - offset); result.setOperator(operator); - if (operand != null) { - result.setOperand(operand); - operand.setParent(result); - operand.setPropertyInParent(IASTUnaryExpression.OPERAND); - } + result.setOperand(operand); return result; } @@ -1069,25 +1024,19 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { protected IASTStatement handleFunctionBody() throws BacktrackException, EndOfFileException { - if (mode == ParserMode.QUICK_PARSE - || mode == ParserMode.STRUCTURAL_PARSE) { + if (mode == ParserMode.QUICK_PARSE || mode == ParserMode.STRUCTURAL_PARSE) { IToken curr = LA(1); IToken last = skipOverCompoundStatement(); IASTCompoundStatement cs = createCompoundStatement(); - ((ASTNode) cs).setOffsetAndLength(curr.getOffset(), last - .getEndOffset() - - curr.getOffset()); + ((ASTNode) cs).setOffsetAndLength(curr.getOffset(), last.getEndOffset() - curr.getOffset()); return cs; - } else if (mode == ParserMode.COMPLETION_PARSE - || mode == ParserMode.SELECTION_PARSE) { + } else if (mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE) { if (scanner.isOnTopContext()) return functionBody(); IToken curr = LA(1); IToken last = skipOverCompoundStatement(); IASTCompoundStatement cs = createCompoundStatement(); - ((ASTNode) cs).setOffsetAndLength(curr.getOffset(), last - .getEndOffset() - - curr.getOffset()); + ((ASTNode) cs).setOffsetAndLength(curr.getOffset(), last.getEndOffset() - curr.getOffset()); return cs; } else if (mode == ParserMode.COMPLETE_PARSE) return functionBody(); @@ -1101,8 +1050,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { * @throws BacktrackException * request a backtrack */ - protected IASTStatement functionBody() throws EndOfFileException, - BacktrackException { + protected IASTStatement functionBody() throws EndOfFileException, BacktrackException { return compoundStatement(); } @@ -1315,8 +1263,6 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTEnumerationSpecifier result = createEnumerationSpecifier(); ((ASTNode) result).setOffset(startOffset); result.setName(name); - name.setParent(result); - name.setPropertyInParent(IASTEnumerationSpecifier.ENUMERATION_NAME); consume(); // IToken.tLBRACE enumLoop: while (true) { @@ -1350,19 +1296,10 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { ((ASTNode) enumerator).setOffsetAndLength( ((ASTNode) enumeratorName).getOffset(), lastOffset - ((ASTNode) enumeratorName).getOffset()); - enumeratorName.setParent(enumerator); - enumeratorName - .setPropertyInParent(IASTEnumerationSpecifier.IASTEnumerator.ENUMERATOR_NAME); if (initialValue != null) { enumerator.setValue(initialValue); - initialValue.setParent(enumerator); - initialValue - .setPropertyInParent(IASTEnumerationSpecifier.IASTEnumerator.ENUMERATOR_VALUE); } result.addEnumerator(enumerator); - enumerator.setParent(result); - enumerator - .setPropertyInParent(IASTEnumerationSpecifier.ENUMERATOR); break; } @@ -1381,19 +1318,10 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { ((ASTNode) enumerator).setOffsetAndLength( ((ASTNode) enumeratorName).getOffset(), lastOffset - ((ASTNode) enumeratorName).getOffset()); - enumeratorName.setParent(enumerator); - enumeratorName - .setPropertyInParent(IASTEnumerationSpecifier.IASTEnumerator.ENUMERATOR_NAME); if (initialValue != null) { enumerator.setValue(initialValue); - initialValue.setParent(enumerator); - initialValue - .setPropertyInParent(IASTEnumerationSpecifier.IASTEnumerator.ENUMERATOR_VALUE); } result.addEnumerator(enumerator); - enumerator.setParent(result); - enumerator - .setPropertyInParent(IASTEnumerationSpecifier.ENUMERATOR); } int lastOffset = consume().getEndOffset(); @@ -1409,25 +1337,16 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { protected abstract IASTStatement statement() throws EndOfFileException, BacktrackException; - /** - * @return - */ + protected abstract IASTEnumerator createEnumerator(); - /** - * @return - */ + protected abstract IASTEnumerationSpecifier createEnumerationSpecifier(); - /** - * @return - */ + protected abstract IASTName createName(); - /** - * @param token - * @return - */ + protected abstract IASTName createName(IToken token); /** @@ -1439,11 +1358,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { return cond; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.ISourceCodeParser#encounteredError() - */ + public boolean encounteredError() { return !parsePassed; } @@ -1452,69 +1367,43 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { protected abstract IASTNamedTypeSpecifier createNamedTypeSpecifier(); - /** - * @return - */ + protected abstract IASTDeclarationStatement createDeclarationStatement(); - /** - * @return - */ + protected abstract IASTExpressionStatement createExpressionStatement(); - /** - * @return - */ + protected abstract IASTLabelStatement createLabelStatement(); - /** - * @return - */ + protected abstract IASTNullStatement createNullStatement(); - /** - * @return - */ + protected abstract IASTGotoStatement createGoToStatement(); - /** - * @return - */ + protected abstract IASTReturnStatement createReturnStatement(); - /** - * @return - */ + protected abstract IASTContinueStatement createContinueStatement(); - /** - * @return - */ + protected abstract IASTBreakStatement createBreakStatement(); - /** - * @return - */ + protected abstract IASTDoStatement createDoStatement(); - /** - * @return - */ + protected abstract IASTWhileStatement createWhileStatement(); - /** - * @return - */ + protected abstract IASTIdExpression createIdExpression(); - /** - * @return - */ + protected abstract IASTDefaultStatement createDefaultStatement(); - /** - * @return - */ + protected abstract IASTCaseStatement createCaseStatement(); protected abstract IASTDeclaration declaration() throws BacktrackException, @@ -1553,41 +1442,25 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { return result; } - /** - * @return - */ + protected abstract IASTASMDeclaration createASMDirective(); - /** - * @param op - * @param typeId - * @param subExpression - * @param startingOffset - * @param lastOffset - * @return - */ + protected IASTExpression buildTypeIdUnaryExpression(int op, IASTTypeId typeId, IASTExpression subExpression, int startingOffset, int lastOffset) { IASTCastExpression result = createCastExpression(); result.setOperator(op); - ((ASTNode) result).setOffsetAndLength(startingOffset, lastOffset - - startingOffset); + ((ASTNode) result).setOffsetAndLength(startingOffset, lastOffset - startingOffset); result.setTypeId(typeId); - typeId.setParent(result); - typeId.setPropertyInParent(IASTCastExpression.TYPE_ID); if (subExpression != null) { // which it can be in a completion result.setOperand(subExpression); - subExpression.setParent(result); - subExpression.setPropertyInParent(IASTCastExpression.OPERAND); } return result; } - /** - * @return - */ + protected abstract IASTCastExpression createCastExpression(); /** @@ -1614,10 +1487,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { expressionStatement = createExpressionStatement(); expressionStatement.setExpression(expression); ((ASTNode) expressionStatement).setOffsetAndLength( - mark.getOffset(), lastTokenOfExpression.getEndOffset() - - mark.getOffset()); - expression.setParent(expressionStatement); - expression.setPropertyInParent(IASTExpressionStatement.EXPFRESSION); + mark.getOffset(), lastTokenOfExpression.getEndOffset() - mark.getOffset()); } catch (BacktrackException b) { } @@ -1629,10 +1499,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTDeclaration d = declaration(); ds = createDeclarationStatement(); ds.setDeclaration(d); - ((ASTNode) ds).setOffsetAndLength(((ASTNode) d).getOffset(), - ((ASTNode) d).getLength()); - d.setParent(ds); - d.setPropertyInParent(IASTDeclarationStatement.DECLARATION); + ((ASTNode) ds).setOffsetAndLength(((ASTNode) d).getOffset(), ((ASTNode) d).getLength()); } catch (BacktrackException b) { savedBt = b; backup(mark); @@ -1654,8 +1521,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { // resolve ambiguities // A * B = C; if (expressionStatement.getExpression() instanceof IASTBinaryExpression) { - IASTBinaryExpression exp = (IASTBinaryExpression) expressionStatement - .getExpression(); + IASTBinaryExpression exp = (IASTBinaryExpression) expressionStatement.getExpression(); if (exp.getOperator() == IASTBinaryExpression.op_assign) { IASTExpression lhs = exp.getOperand1(); if (lhs instanceof IASTBinaryExpression @@ -1736,12 +1602,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTAmbiguousStatement statement = createAmbiguousStatement(); statement.addStatement(ds); - ds.setParent(statement); - ds.setPropertyInParent(IASTAmbiguousStatement.STATEMENT); statement.addStatement(expressionStatement); - expressionStatement.setParent(statement); - expressionStatement - .setPropertyInParent(IASTAmbiguousStatement.STATEMENT); ((ASTNode) statement).setOffsetAndLength((ASTNode) ds); return statement; } @@ -1765,12 +1626,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTName name = createName(labelName); label_statement.setName(name); - name.setParent(label_statement); - name.setPropertyInParent(IASTLabelStatement.NAME); - - label_statement.setNestedStatement( nestedStatement ); - nestedStatement.setParent( label_statement ); - nestedStatement.setPropertyInParent( IASTLabelStatement.NESTED_STATEMENT ); + label_statement.setNestedStatement(nestedStatement); return label_statement; } @@ -1784,9 +1640,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IToken t = consume(); // tSEMI IASTNullStatement null_statement = createNullStatement(); - ((ASTNode) null_statement).setOffsetAndLength(t.getOffset(), t - .getEndOffset() - - t.getOffset()); + ((ASTNode) null_statement).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); return null_statement; } @@ -1803,11 +1657,8 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTName goto_label_name = createName(identifier); IASTGotoStatement goto_statement = createGoToStatement(); - ((ASTNode) goto_statement).setOffsetAndLength(startOffset, lastOffset - - startOffset); + ((ASTNode) goto_statement).setOffsetAndLength(startOffset, lastOffset - startOffset); goto_statement.setName(goto_label_name); - goto_label_name.setParent(goto_statement); - goto_label_name.setPropertyInParent(IASTGotoStatement.NAME); return goto_statement; } @@ -1822,8 +1673,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { int lastOffset = consume(IToken.tSEMI).getEndOffset(); IASTBreakStatement break_statement = createBreakStatement(); - ((ASTNode) break_statement).setOffsetAndLength(startOffset, lastOffset - - startOffset); + ((ASTNode) break_statement).setOffsetAndLength(startOffset, lastOffset - startOffset); return break_statement; } @@ -1838,8 +1688,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { int lastOffset = consume(IToken.tSEMI).getEndOffset(); IASTContinueStatement continue_statement = createContinueStatement(); - ((ASTNode) continue_statement).setOffsetAndLength(startOffset, - lastOffset - startOffset); + ((ASTNode) continue_statement).setOffsetAndLength(startOffset, lastOffset - startOffset); return continue_statement; } @@ -1861,8 +1710,6 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTName name = createName(LA(1)); IASTIdExpression idExpr = createIdExpression(); idExpr.setName(name); - name.setParent(idExpr); - name.setPropertyInParent(IASTIdExpression.ID_NAME); result = idExpr; break; case IToken.tSEMI: @@ -1889,8 +1736,6 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { - startOffset); if (result != null) { return_statement.setReturnValue(result); - result.setParent(return_statement); - result.setPropertyInParent(IASTReturnStatement.RETURNVALUE); } return return_statement; } @@ -1934,16 +1779,11 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTDoStatement do_statement = createDoStatement(); - ((ASTNode) do_statement).setOffsetAndLength(startOffset, lastOffset - - startOffset); + ((ASTNode) do_statement).setOffsetAndLength(startOffset, lastOffset - startOffset); do_statement.setBody(do_body); - do_body.setParent(do_statement); - do_body.setPropertyInParent(IASTDoStatement.BODY); if (do_condition != null) { do_statement.setCondition(do_condition); - do_condition.setParent(do_statement); - do_condition.setPropertyInParent(IASTDoStatement.CONDITION); } return do_statement; @@ -1954,8 +1794,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { * @throws EndOfFileException * @throws BacktrackException */ - protected IASTStatement parseWhileStatement() throws EndOfFileException, - BacktrackException { + protected IASTStatement parseWhileStatement() throws EndOfFileException, BacktrackException { int startOffset = consume().getOffset(); consume(IToken.tLPAREN); IASTExpression while_condition = condition(); @@ -1976,15 +1815,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { ((ASTNode) while_statement).setOffsetAndLength(startOffset, (while_body != null ? calculateEndOffset(while_body) : LA(1).getEndOffset()) - startOffset); while_statement.setCondition(while_condition); - while_condition.setParent(while_statement); - while_condition - .setPropertyInParent(IASTWhileStatement.CONDITIONEXPRESSION); - - if (while_body != null) { - while_statement.setBody(while_body); - while_body.setParent(while_statement); - while_body.setPropertyInParent(IASTWhileStatement.BODY); - } + while_statement.setBody(while_body); return while_statement; } @@ -2003,16 +1834,13 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { ASTNode r = ((ASTNode) current); if (current.getElseClause() != null) { ASTNode else_clause = ((ASTNode) current.getElseClause()); - r.setLength(else_clause.getOffset() + else_clause.getLength() - - r.getOffset()); + r.setLength(else_clause.getOffset() + else_clause.getLength() - r.getOffset()); } else { ASTNode then_clause = (ASTNode) current.getThenClause(); if (then_clause != null) - r.setLength(then_clause.getOffset() - + then_clause.getLength() - r.getOffset()); + r.setLength(then_clause.getOffset() + then_clause.getLength() - r.getOffset()); } - if (current.getParent() != null - && current.getParent() instanceof IASTIfStatement) + if (current.getParent() != null && current.getParent() instanceof IASTIfStatement) current = (IASTIfStatement) current.getParent(); else current = null; @@ -2029,8 +1857,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { * @throws EndOfFileException * @throws BacktrackException */ - protected IASTStatement parseCompoundStatement() throws EndOfFileException, - BacktrackException { + protected IASTStatement parseCompoundStatement() throws EndOfFileException, BacktrackException { IASTCompoundStatement compound = compoundStatement(); return compound; } @@ -2040,14 +1867,12 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { * @throws EndOfFileException * @throws BacktrackException */ - protected IASTStatement parseDefaultStatement() throws EndOfFileException, - BacktrackException { + protected IASTStatement parseDefaultStatement() throws EndOfFileException, BacktrackException { int startOffset = consume().getOffset(); // t_default int lastOffset = consume(IToken.tCOLON).getEndOffset(); IASTDefaultStatement df = createDefaultStatement(); - ((ASTNode) df) - .setOffsetAndLength(startOffset, lastOffset - startOffset); + ((ASTNode) df).setOffsetAndLength(startOffset, lastOffset - startOffset); return df; } @@ -2056,8 +1881,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { * @throws EndOfFileException * @throws BacktrackException */ - protected IASTStatement parseCaseStatement() throws EndOfFileException, - BacktrackException { + protected IASTStatement parseCaseStatement() throws EndOfFileException, BacktrackException { int startOffset = consume().getOffset(); // t_case IASTExpression case_exp = constantExpression(); int lastOffset = 0; @@ -2071,31 +1895,19 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { } IASTCaseStatement cs = createCaseStatement(); - ((ASTNode) cs) - .setOffsetAndLength(startOffset, lastOffset - startOffset); + ((ASTNode) cs).setOffsetAndLength(startOffset, lastOffset - startOffset); cs.setExpression(case_exp); - case_exp.setParent(cs); - case_exp.setPropertyInParent(IASTCaseStatement.EXPRESSION); return cs; } - /** - * @param declSpec - * @param declarators - * @return - */ - protected int figureEndOffset(IASTDeclSpecifier declSpec, - IASTDeclarator[] declarators) { + + protected int figureEndOffset(IASTDeclSpecifier declSpec, IASTDeclarator[] declarators) { if (declarators.length == 0) return calculateEndOffset(declSpec); return calculateEndOffset(declarators[declarators.length - 1]); } - /** - * @param declSpecifier - * @param declarator - * @return - */ + protected int figureEndOffset(IASTDeclSpecifier declSpecifier, IASTDeclarator declarator) { if (declarator == null || ((ASTNode) declarator).getLength() == 0) @@ -2103,9 +1915,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { return calculateEndOffset(declarator); } - /** - * @param token - */ + protected void throwBacktrack(IToken token) throws BacktrackException { throwBacktrack(token.getOffset(), token.getLength()); } @@ -2125,8 +1935,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { if (typeIdWithParentheses) consume(IToken.tLPAREN); typeId = typeId(false); - if (typeId != null) - { + if (typeId != null) { if (typeIdWithParentheses) { switch (LT(1)) { case IToken.tRPAREN: @@ -2181,8 +1990,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { protected abstract IASTAmbiguousExpression createAmbiguousExpression(); - protected IASTExpression parseSizeofExpression() throws BacktrackException, - EndOfFileException { + protected IASTExpression parseSizeofExpression() throws BacktrackException, EndOfFileException { int startingOffset = consume().getOffset(); // t_sizeof int[] endoffset= new int[] {0}; IASTNode[] choice = parseTypeIdOrUnaryExpression(true, endoffset); @@ -2205,11 +2013,7 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { IASTUnaryExpression.op_sizeof, (IASTExpression) choice[1], startingOffset, endoffset[0]); ambExpr.addExpression(e1); - e1.setParent(ambExpr); - e1.setPropertyInParent(IASTAmbiguousExpression.SUBEXPRESSION); ambExpr.addExpression(e2); - e2.setParent(ambExpr); - e2.setPropertyInParent(IASTAmbiguousExpression.SUBEXPRESSION); ((ASTNode) ambExpr).setOffsetAndLength((ASTNode) e2); return ambExpr; default: 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 68b48263a73..e6941587b0f 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 @@ -20,17 +20,19 @@ import org.eclipse.cdt.core.dom.ast.IASTASMDeclaration; public class CASTASMDeclaration extends CASTNode implements IASTASMDeclaration { char [] assembly = null; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTASMDeclaration#getAssembly() - */ - public String getAssembly() { + + public CASTASMDeclaration() { + } + + public CASTASMDeclaration(String assembly) { + setAssembly(assembly); + } + + public String getAssembly() { if( assembly == null ) return ""; //$NON-NLS-1$ return new String( assembly ); } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTASMDeclaration#setAssembly(java.lang.String) - */ public void setAssembly(String assembly) { this.assembly = assembly.toCharArray(); } 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 a1f02d57bc5..4ccac9ea8a4 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 @@ -26,6 +26,8 @@ public class CASTAmbiguousExpression extends CASTAmbiguity implements public void addExpression(IASTExpression e) { if (e != null) { expressions = (IASTExpression[]) ArrayUtil.append( IASTExpression.class, expressions, ++expressionsPos, e ); + e.setParent(this); + e.setPropertyInParent(SUBEXPRESSION); } } 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 50233f8770b..8f10ae4ce25 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 @@ -25,6 +25,8 @@ public class CASTAmbiguousStatement extends CASTAmbiguity implements public void addStatement(IASTStatement s) { if (s != null) { stmts = (IASTStatement[]) ArrayUtil.append( IASTStatement.class, stmts, ++stmtsPos, s ); + s.setParent(this); + s.setPropertyInParent(STATEMENT); } } 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 5e84c76d7e0..09260a42d66 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 @@ -15,18 +15,29 @@ import org.eclipse.cdt.core.dom.ast.ASTVisitor; import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator; import org.eclipse.cdt.core.dom.ast.IASTArrayModifier; import org.eclipse.cdt.core.dom.ast.IASTInitializer; +import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.parser.util.ArrayUtil; /** * @author jcamelon */ -public class CASTArrayDeclarator extends CASTDeclarator implements - IASTArrayDeclarator { +public class CASTArrayDeclarator extends CASTDeclarator implements IASTArrayDeclarator { private IASTArrayModifier [] arrayMods = null; private int arrayModsPos=-1; - public IASTArrayModifier[] getArrayModifiers() { + public CASTArrayDeclarator() { + } + + public CASTArrayDeclarator(IASTName name, IASTInitializer initializer) { + super(name, initializer); + } + + public CASTArrayDeclarator(IASTName name) { + super(name); + } + + public IASTArrayModifier[] getArrayModifiers() { if( arrayMods == null ) return IASTArrayModifier.EMPTY_ARRAY; arrayMods = (IASTArrayModifier[]) ArrayUtil.removeNullsAfter( IASTArrayModifier.class, arrayMods, arrayModsPos ); return arrayMods; @@ -35,6 +46,8 @@ public class CASTArrayDeclarator extends CASTDeclarator implements public void addArrayModifier(IASTArrayModifier arrayModifier) { if (arrayModifier != null) { + arrayModifier.setParent(this); + arrayModifier.setPropertyInParent(ARRAY_MODIFIER); arrayMods = (IASTArrayModifier[]) ArrayUtil.append( IASTArrayModifier.class, arrayMods, ++arrayModsPos, arrayModifier ); } } 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 028e509f1e6..dfd882b4478 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 @@ -26,18 +26,25 @@ public class CASTArrayDesignator extends CASTNode implements private IASTExpression exp; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.ICASTArrayDesignator#getSubscriptExpression() - */ + + public CASTArrayDesignator() { + } + + public CASTArrayDesignator(IASTExpression exp) { + setSubscriptExpression(exp); + } + + public IASTExpression getSubscriptExpression() { return exp; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.ICASTArrayDesignator#setSubscriptExpression(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setSubscriptExpression(IASTExpression value) { exp = value; + if(value != null) { + value.setParent(this); + value.setPropertyInParent(SUBSCRIPT_EXPRESSION); + } } public boolean accept( ASTVisitor action ){ 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 5cf37064f2c..e274d829d33 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 @@ -23,18 +23,25 @@ public class CASTArrayModifier extends CASTNode implements IASTArrayModifier, IA private IASTExpression exp; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTArrayModifier#getConstantExpression() - */ + + public CASTArrayModifier() { + } + + public CASTArrayModifier(IASTExpression exp) { + setConstantExpression(exp); + } + + public IASTExpression getConstantExpression() { return exp; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTArrayModifier#setConstantExpression(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setConstantExpression(IASTExpression expression) { this.exp = expression; + if(expression != null) { + expression.setParent(this); + expression.setPropertyInParent(CONSTANT_EXPRESSION); + } } public boolean accept( ASTVisitor action ){ 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 0ffac91d36d..ebbc6c677d5 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 @@ -26,32 +26,36 @@ public class CASTArrayRangeDesignator extends CASTNode implements private IASTExpression floor, ceiling; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.gcc.IGCCASTArrayRangeDesignator#getRangeFloor() - */ - public IASTExpression getRangeFloor() { + public CASTArrayRangeDesignator() { + } + + public CASTArrayRangeDesignator(IASTExpression floor, IASTExpression ceiling) { + setRangeFloor(floor); + setRangeCeiling(ceiling); + } + + public IASTExpression getRangeFloor() { return this.floor; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.gcc.IGCCASTArrayRangeDesignator#setRangeFloor(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setRangeFloor(IASTExpression expression) { - floor =expression; + floor = expression; + if(expression != null) { + expression.setParent(this); + expression.setPropertyInParent(SUBSCRIPT_FLOOR_EXPRESSION); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.gcc.IGCCASTArrayRangeDesignator#getRangeCeiling() - */ public IASTExpression getRangeCeiling() { return ceiling; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.gcc.IGCCASTArrayRangeDesignator#setRangeCeiling(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setRangeCeiling(IASTExpression expression) { ceiling = expression; + if(expression != null) { + expression.setParent(this); + expression.setPropertyInParent(SUBSCRIPT_CEILING_EXPRESSION); + } } public boolean accept( ASTVisitor action ){ 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 fe3419d4fca..717e0e6e41a 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 @@ -27,12 +27,24 @@ public class CASTArraySubscriptExpression extends CASTNode implements private IASTExpression array; private IASTExpression subscript; - public IASTExpression getArrayExpression() { + public CASTArraySubscriptExpression() { + } + + public CASTArraySubscriptExpression(IASTExpression array, IASTExpression subscript) { + setArrayExpression(array); + setSubscriptExpression(subscript); + } + + public IASTExpression getArrayExpression() { return array; } public void setArrayExpression(IASTExpression expression) { array = expression; + if(expression != null) { + expression.setParent(this); + expression.setPropertyInParent(ARRAY); + } } public IASTExpression getSubscriptExpression() { @@ -41,6 +53,10 @@ public class CASTArraySubscriptExpression extends CASTNode implements public void setSubscriptExpression(IASTExpression expression) { this.subscript = expression; + if(expression != null) { + expression.setParent(this); + expression.setPropertyInParent(SUBSCRIPT); + } } public boolean accept( ASTVisitor action ){ 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 0b8dae70147..d215b1e2425 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 @@ -24,7 +24,7 @@ public abstract class CASTBaseDeclSpecifier extends CASTNode implements ICASTDec protected boolean isRestrict; protected boolean isInline; - public boolean isRestrict() { + public boolean isRestrict() { return isRestrict; } @@ -44,37 +44,22 @@ public abstract class CASTBaseDeclSpecifier extends CASTNode implements ICASTDec return isInline; } - /** - * @param storageClass The storageClass to set. - */ public void setStorageClass(int storageClass) { this.storageClass = storageClass; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier#setConst(boolean) - */ public void setConst(boolean value) { this.isConst = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier#setVolatile(boolean) - */ public void setVolatile(boolean value) { this.isVolatile = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.ICASTDeclSpecifier#setRestrict(boolean) - */ public void setRestrict(boolean value) { this.isRestrict = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier#setInline(boolean) - */ public void setInline(boolean value) { this.isInline = value; } 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 73c9ed19441..74fe0a5076f 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 @@ -28,7 +28,16 @@ public class CASTBinaryExpression extends CASTNode implements private IASTExpression operand1; private IASTExpression operand2; - public int getOperator() { + public CASTBinaryExpression() { + } + + public CASTBinaryExpression(int op, IASTExpression operand1, IASTExpression operand2) { + this.op = op; + setOperand1(operand1); + setOperand2(operand2); + } + + public int getOperator() { return op; } @@ -40,16 +49,27 @@ public class CASTBinaryExpression extends CASTNode implements return operand2; } + /** + * @param op An op_X field from {@link IASTBinaryExpression} + */ public void setOperator(int op) { this.op = op; } public void setOperand1(IASTExpression expression) { - operand1 = expression; + operand1 = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(OPERAND_ONE); + } } public void setOperand2(IASTExpression expression) { operand2 = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(OPERAND_TWO); + } } public boolean accept( ASTVisitor action ){ 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 7d71b387bfd..f0d4ce31c6b 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 @@ -24,18 +24,24 @@ public class CASTCaseStatement extends CASTNode implements IASTCaseStatement, IA private IASTExpression expression; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCaseStatement#getExpression() - */ - public IASTExpression getExpression() { + + public CASTCaseStatement() { + } + + public CASTCaseStatement(IASTExpression expression) { + setExpression(expression); + } + + public IASTExpression getExpression() { return expression; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCaseStatement#setExpression(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setExpression(IASTExpression expression) { this.expression = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(EXPRESSION); + } } public boolean accept( ASTVisitor action ){ 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 797f869bb0a..82c74ee5480 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 @@ -18,21 +18,27 @@ import org.eclipse.cdt.core.dom.ast.IASTTypeId; /** * @author jcamelon */ -public class CASTCastExpression extends CASTUnaryExpression implements - IASTCastExpression { +public class CASTCastExpression extends CASTUnaryExpression implements IASTCastExpression { private IASTTypeId typeId; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTUnaryTypeIdExpression#setTypeId(org.eclipse.cdt.core.dom.ast.IASTTypeId) - */ - public void setTypeId(IASTTypeId typeId) { + + public CASTCastExpression() { + } + + public CASTCastExpression(IASTTypeId typeId, IASTExpression operand) { + super(op_cast, operand); + setTypeId(typeId); + } + + public void setTypeId(IASTTypeId typeId) { this.typeId = typeId; + if (typeId != null) { + typeId.setParent(this); + typeId.setPropertyInParent(TYPE_ID); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTUnaryTypeIdExpression#getTypeId() - */ public IASTTypeId getTypeId() { return typeId; } 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 072ae90d925..6354c7b8068 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 @@ -28,33 +28,33 @@ public class CASTCompositeTypeSpecifier extends CASTBaseDeclSpecifier implements private int key; private IASTName name; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier#getKey() - */ + + public CASTCompositeTypeSpecifier() { + } + + public CASTCompositeTypeSpecifier(int key, IASTName name) { + this.key = key; + setName(name); + } + public int getKey() { return key; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier#setKey(int) - */ public void setKey(int key) { this.key = key; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier#getName() - */ public IASTName getName() { return name; } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(TYPE_NAME); + } } @@ -63,37 +63,28 @@ public class CASTCompositeTypeSpecifier extends CASTBaseDeclSpecifier implements private IScope scope = null; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier#getMembers() - */ public IASTDeclaration [] getMembers() { if( declarations == null ) return IASTDeclaration.EMPTY_DECLARATION_ARRAY; declarations = (IASTDeclaration[]) ArrayUtil.removeNullsAfter( IASTDeclaration.class, declarations, declarationsPos ); return declarations; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier#addMemberDeclaration(org.eclipse.cdt.core.dom.ast.IASTDeclaration) - */ + public void addMemberDeclaration(IASTDeclaration declaration) { if (declaration != null) { + declaration.setParent(this); + declaration.setPropertyInParent(MEMBER_DECLARATION); declarations = (IASTDeclaration[]) ArrayUtil.append( IASTDeclaration.class, declarations, ++declarationsPos, declaration ); } } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier#getScope() - */ public IScope getScope() { if( scope == null ) scope = new CCompositeTypeScope( this ); return scope; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier#getRawSignature() - */ + public String getRawSignature() { return getName().toString() == null ? "" : getName().toString(); //$NON-NLS-1$ } @@ -122,12 +113,12 @@ public class CASTCompositeTypeSpecifier extends CASTBaseDeclSpecifier implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ + public int getRoleForName(IASTName n) { if( n == this.name ) return r_definition; return r_unclear; } + + } 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 10dec661be3..6e57a639f5d 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 @@ -22,33 +22,25 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; /** * @author jcamelon */ -public class CASTCompoundStatement extends CASTNode implements - IASTCompoundStatement, IASTAmbiguityParent { - - +public class CASTCompoundStatement extends CASTNode implements IASTCompoundStatement, IASTAmbiguityParent { private IASTStatement [] statements = null; private IScope scope = null; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompoundStatement#getStatements() - */ public IASTStatement[] getStatements() { if( statements == null ) return IASTStatement.EMPTY_STATEMENT_ARRAY; return (IASTStatement[]) ArrayUtil.trim( IASTStatement.class, statements ); } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompoundStatement#addStatement(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ public void addStatement(IASTStatement statement) { statements = (IASTStatement[]) ArrayUtil.append( IASTStatement.class, statements, statement ); + if(statement != null) { + statement.setParent(this); + statement.setPropertyInParent(NESTED_STATEMENT); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTCompoundStatement#resolveBinding() - */ public IScope getScope() { if( scope == null ) scope = new CScope( this ); @@ -90,5 +82,4 @@ public class CASTCompoundStatement extends CASTNode implements } } } - -} +} \ No newline at end of file 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 e8f0194cbe5..35856691b2d 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 @@ -24,12 +24,23 @@ public class CASTCompoundStatementExpression extends CASTNode implements private IASTCompoundStatement statement; - public IASTCompoundStatement getCompoundStatement() { + public CASTCompoundStatementExpression() { + } + + public CASTCompoundStatementExpression(IASTCompoundStatement statement) { + setCompoundStatement(statement); + } + + public IASTCompoundStatement getCompoundStatement() { return statement; } public void setCompoundStatement(IASTCompoundStatement statement) { this.statement = statement; + if (statement != null) { + statement.setParent(this); + statement.setPropertyInParent(STATEMENT); + } } public boolean accept( ASTVisitor action ){ 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 80c455f9aa7..61760c2725a 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 @@ -28,12 +28,26 @@ public class CASTConditionalExpression extends CASTNode implements private IASTExpression negative; private IASTExpression positive; - public IASTExpression getLogicalConditionExpression() { + public CASTConditionalExpression() { + } + + public CASTConditionalExpression(IASTExpression condition, + IASTExpression positive, IASTExpression negative) { + setLogicalConditionExpression(condition); + setPositiveResultExpression(positive); + setNegativeResultExpression(negative); + } + + public IASTExpression getLogicalConditionExpression() { return condition; } public void setLogicalConditionExpression(IASTExpression expression) { condition = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(LOGICAL_CONDITION); + } } public IASTExpression getPositiveResultExpression() { @@ -42,6 +56,10 @@ public class CASTConditionalExpression extends CASTNode implements public void setPositiveResultExpression(IASTExpression expression) { this.positive = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(POSITIVE_RESULT); + } } public IASTExpression getNegativeResultExpression() { @@ -50,6 +68,10 @@ public class CASTConditionalExpression extends CASTNode implements public void setNegativeResultExpression(IASTExpression expression) { this.negative = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(NEGATIVE_RESULT); + } } public boolean accept( ASTVisitor action ){ 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 233311cd08c..f12c3da5f0c 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 @@ -18,23 +18,28 @@ import org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement; /** * @author jcamelon */ -public class CASTDeclarationStatement extends CASTNode implements - IASTDeclarationStatement { +public class CASTDeclarationStatement extends CASTNode implements IASTDeclarationStatement { private IASTDeclaration declaration; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement#getDeclaration() - */ - public IASTDeclaration getDeclaration() { + + public CASTDeclarationStatement() { + } + + public CASTDeclarationStatement(IASTDeclaration declaration) { + setDeclaration(declaration); + } + + public IASTDeclaration getDeclaration() { return declaration; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement#setDeclaration(org.eclipse.cdt.core.dom.ast.IASTDeclaration) - */ public void setDeclaration(IASTDeclaration declaration) { this.declaration = declaration; + if (declaration != null) { + declaration.setParent(this); + declaration.setPropertyInParent(DECLARATION); + } } public boolean accept( ASTVisitor action ){ 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 324ca47266f..50048a29b3e 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 @@ -39,65 +39,67 @@ public class CASTDeclarator extends CASTNode implements IASTDeclarator { private int pointerOpsPos=-1; + public CASTDeclarator() { + } + + public CASTDeclarator(IASTName name) { + setName(name); + } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclarator#getPointerOperators() - */ - public IASTPointerOperator[] getPointerOperators() { + public CASTDeclarator(IASTName name, IASTInitializer initializer) { + setInitializer(initializer); + setName(name); + } + + public IASTPointerOperator[] getPointerOperators() { if( pointerOps == null ) return IASTPointerOperator.EMPTY_ARRAY; pointerOps = (IASTPointerOperator[]) ArrayUtil.removeNullsAfter( IASTPointerOperator.class, pointerOps, pointerOpsPos ); return pointerOps; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclarator#getNestedDeclarator() - */ public IASTDeclarator getNestedDeclarator() { return nestedDeclarator; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclarator#getName() - */ public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclarator#getInitializer() - */ public IASTInitializer getInitializer() { return initializer; } - /** - * @param initializer - */ + public void setInitializer(IASTInitializer initializer) { this.initializer = initializer; + if (initializer != null) { + initializer.setParent(this); + initializer.setPropertyInParent(INITIALIZER); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclarator#addPointerOperator(org.eclipse.cdt.core.dom.ast.IASTPointerOperator) - */ public void addPointerOperator(IASTPointerOperator operator) { if (operator != null) { + operator.setParent(this); + operator.setPropertyInParent(POINTER_OPERATOR); pointerOps = (IASTPointerOperator[]) ArrayUtil.append( IASTPointerOperator.class, pointerOps, ++pointerOpsPos, operator ); } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclarator#setNestedDeclarator(org.eclipse.cdt.core.dom.ast.IASTDeclarator) - */ public void setNestedDeclarator(IASTDeclarator nested) { this.nestedDeclarator = nested; + if (nested != null) { + nested.setParent(this); + nested.setPropertyInParent(NESTED_DECLARATOR); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclarator#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(DECLARATOR_NAME);; + } } public boolean accept( ASTVisitor action ){ @@ -147,9 +149,6 @@ public class CASTDeclarator extends CASTNode implements IASTDeclarator { return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int getRoleForName(IASTName n ) { if( n == this.name ) { 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 f04c0346d94..79a91737be2 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 @@ -25,18 +25,23 @@ public class CASTDesignatedInitializer extends CASTNode implements private IASTInitializer rhs; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.ICASTDesignatedInitializer#addDesignator(org.eclipse.cdt.core.dom.ast.c.ICASTDesignator) - */ - public void addDesignator(ICASTDesignator designator) { + + public CASTDesignatedInitializer() { + } + + public CASTDesignatedInitializer(IASTInitializer rhs) { + setOperandInitializer(rhs); + } + + public void addDesignator(ICASTDesignator designator) { if (designator != null) { + designator.setParent(this); + designator.setPropertyInParent(DESIGNATOR); designators = (ICASTDesignator[]) ArrayUtil.append( ICASTDesignator.class, designators, ++designatorsPos, designator ); } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.ICASTDesignatedInitializer#getDesignators() - */ + public ICASTDesignator[] getDesignators() { if( designators == null ) return ICASTDesignatedInitializer.EMPTY_DESIGNATOR_ARRAY; designators = (ICASTDesignator[]) ArrayUtil.removeNullsAfter( ICASTDesignator.class, designators, designatorsPos ); @@ -45,18 +50,19 @@ public class CASTDesignatedInitializer extends CASTNode implements private ICASTDesignator [] designators = null; int designatorsPos=-1; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.ICASTDesignatedInitializer#getRHSInitializer() - */ + + public IASTInitializer getOperandInitializer() { return rhs; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.ICASTDesignatedInitializer#setRHSInitializer(org.eclipse.cdt.core.dom.ast.IASTInitializer) - */ + public void setOperandInitializer(IASTInitializer rhs) { this.rhs = rhs; + if (rhs != null) { + rhs.setParent(this); + rhs.setPropertyInParent(OPERAND); + } } public boolean accept( ASTVisitor action ){ 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 0e434bc3b5d..81a24a76f39 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 @@ -26,32 +26,39 @@ public class CASTDoStatement extends CASTNode implements IASTDoStatement, IASTAm private IASTStatement body; private IASTExpression condition; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDoStatement#getBody() - */ - public IASTStatement getBody() { + + public CASTDoStatement() { + } + + public CASTDoStatement(IASTStatement body, IASTExpression condition) { + setBody(body); + setCondition(condition); + } + + public IASTStatement getBody() { return body; } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDoStatement#setBody(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ + public void setBody(IASTStatement body) { this.body = body; + if (body != null) { + body.setParent(this); + body.setPropertyInParent(BODY); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDoStatement#getCondition() - */ + public IASTExpression getCondition() { return condition; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDoStatement#setCondition(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ + public void setCondition(IASTExpression condition) { this.condition = condition; + if (condition != null) { + condition.setParent(this); + condition.setPropertyInParent(CONDITION); + } } public boolean accept( ASTVisitor action ){ 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 a1c379688c9..e1ad5935d3c 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 @@ -29,32 +29,33 @@ public class CASTElaboratedTypeSpecifier extends CASTBaseDeclSpecifier implement private int kind; private IASTName name; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier#getKind() - */ - public int getKind() { + + public CASTElaboratedTypeSpecifier() { + } + + public CASTElaboratedTypeSpecifier(int kind, IASTName name) { + this.kind = kind; + this.name = name; + } + + public int getKind() { return kind; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier#setKind(int) - */ public void setKind(int value) { this.kind = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier#getName() - */ public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(TYPE_NAME); + } } public boolean accept( ASTVisitor action ){ @@ -76,9 +77,6 @@ public class CASTElaboratedTypeSpecifier extends CASTBaseDeclSpecifier implement return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int getRoleForName(IASTName n ) { if( n != name ) return r_unclear; 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 d0db4f6a1ab..499bf633b53 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 @@ -25,18 +25,23 @@ public class CASTEnumerationSpecifier extends CASTBaseDeclSpecifier implements private IASTName name; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier#addEnumerator(org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator) - */ - public void addEnumerator(IASTEnumerator enumerator) { + + public CASTEnumerationSpecifier() { + } + + public CASTEnumerationSpecifier(IASTName name) { + setName(name); + } + + public void addEnumerator(IASTEnumerator enumerator) { if (enumerator != null) { + enumerator.setParent(this); + enumerator.setPropertyInParent(ENUMERATOR); enumerators = (IASTEnumerator[]) ArrayUtil.append( IASTEnumerator.class, enumerators, ++enumeratorsPos, enumerator ); } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier#getEnumerators() - */ + public IASTEnumerator[] getEnumerators() { if( enumerators == null ) return IASTEnumerator.EMPTY_ENUMERATOR_ARRAY; enumerators = (IASTEnumerator[]) ArrayUtil.removeNullsAfter( IASTEnumerator.class, enumerators, enumeratorsPos ); @@ -46,23 +51,19 @@ public class CASTEnumerationSpecifier extends CASTBaseDeclSpecifier implements private IASTEnumerator [] enumerators = null; private int enumeratorsPos=-1; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ + public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(ENUMERATION_NAME); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier#getName() - */ public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier#getRawSignature() - */ public String getRawSignature() { return getName().toString() == null ? "" : getName().toString(); //$NON-NLS-1$ } @@ -90,9 +91,6 @@ public class CASTEnumerationSpecifier extends CASTBaseDeclSpecifier implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int getRoleForName(IASTName n ) { if( this.name == n ) return r_definition; 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 47b4e2e7d0d..1472cfb86d7 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 @@ -26,30 +26,35 @@ public class CASTEnumerator extends CASTNode implements IASTEnumerator, IASTAmbi private IASTName name; private IASTExpression value; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ - public void setName(IASTName name) { + + public CASTEnumerator() { + } + + public CASTEnumerator(IASTName name, IASTExpression value) { + setName(name); + setValue(value); + } + + public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(ENUMERATOR_NAME); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator#getName() - */ public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator#setValue(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setValue(IASTExpression expression) { this.value = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(ENUMERATOR_VALUE); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator#getValue() - */ public IASTExpression getValue() { return value; } @@ -74,9 +79,7 @@ public class CASTEnumerator extends CASTNode implements IASTEnumerator, IASTAmbi return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ + public int getRoleForName(IASTName n) { if( n == name )return r_definition; return r_unclear; 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 7b1edd77c7e..ee3e07e2860 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 @@ -34,6 +34,10 @@ public class CASTExpressionList extends CASTNode implements IASTExpressionList, public void addExpression(IASTExpression expression) { expressions = (IASTExpression[]) ArrayUtil.append( IASTExpression.class, expressions, expression ); + if(expression != null) { + expression.setParent(this); + expression.setPropertyInParent(NESTED_EXPRESSION); + } } private IASTExpression [] expressions = new IASTExpression[2]; 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 cfbdf0ff235..d8a81110b4c 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 @@ -25,22 +25,24 @@ public class CASTExpressionStatement extends CASTNode implements private IASTExpression expression; - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTExpressionStatement#getExpression() - */ - public IASTExpression getExpression() { + + public CASTExpressionStatement() { + } + + public CASTExpressionStatement(IASTExpression expression) { + setExpression(expression); + } + + public IASTExpression getExpression() { return expression; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTExpressionStatement#setExpression(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setExpression(IASTExpression expression) { this.expression = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(EXPRESSION); + } } public boolean accept(ASTVisitor action) { 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 1fd5559647e..9540af2c0fd 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 @@ -14,6 +14,7 @@ import org.eclipse.cdt.core.dom.ast.ASTVisitor; import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.ast.IASTFieldDeclarator; import org.eclipse.cdt.core.dom.ast.IASTInitializer; +import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; @@ -25,18 +26,26 @@ public class CASTFieldDeclarator extends CASTDeclarator implements private IASTExpression bitFieldSize; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFieldDeclarator#getBitFieldSize() - */ - public IASTExpression getBitFieldSize() { + + public CASTFieldDeclarator() { + } + + public CASTFieldDeclarator(IASTName name, IASTExpression bitFieldSize) { + super(name); + setBitFieldSize(bitFieldSize); + } + + public IASTExpression getBitFieldSize() { return bitFieldSize; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFieldDeclarator#setBitFieldSize(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ + public void setBitFieldSize(IASTExpression size) { bitFieldSize = size; + if (size != null) { + size.setParent(this); + size.setPropertyInParent(FIELD_SIZE); + } } protected boolean postAccept( ASTVisitor action ){ 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 bc75bc3e639..29a806208f5 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 @@ -24,18 +24,24 @@ public class CASTFieldDesignator extends CASTNode implements private IASTName name; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.ICASTFieldDesignator#getName() - */ - public IASTName getName() { + + public CASTFieldDesignator() { + } + + public CASTFieldDesignator(IASTName name) { + setName(name); + } + + public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.c.ICASTFieldDesignator#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(FIELD_NAME); + } } public boolean accept( ASTVisitor action ){ 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 cbd5a8b41a9..1f41ea8eb33 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 @@ -31,12 +31,31 @@ public class CASTFieldReference extends CASTNode implements IASTFieldReference, private IASTName name; private boolean ptr; - public IASTExpression getFieldOwner() { + public CASTFieldReference() { + } + + + public CASTFieldReference(IASTName name, IASTExpression owner) { + this(name, owner, false); + } + + + public CASTFieldReference(IASTName name, IASTExpression owner, boolean ptr) { + setFieldOwner(owner); + setFieldName(name); + this.ptr = ptr; + } + + public IASTExpression getFieldOwner() { return owner; } public void setFieldOwner(IASTExpression expression) { this.owner = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(FIELD_OWNER); + } } public IASTName getFieldName() { @@ -45,6 +64,10 @@ public class CASTFieldReference extends CASTNode implements IASTFieldReference, public void setFieldName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(FIELD_NAME); + } } public boolean isPointerDereference() { 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 b6a52a82003..1b66e9eb9d1 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 @@ -30,52 +30,64 @@ public class CASTForStatement extends CASTNode implements IASTForStatement, IAST private IASTStatement body, init; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTForStatement#getCondition() - */ - public IASTExpression getConditionExpression() { + public CASTForStatement() { + } + + public CASTForStatement(IASTStatement init, IASTExpression condition, + IASTExpression iterationExpression, IASTStatement body) { + setInitializerStatement(init); + setConditionExpression(condition); + setIterationExpression(iterationExpression); + setBody(body); + } + + public IASTExpression getConditionExpression() { return condition; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTForStatement#setCondition(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setConditionExpression(IASTExpression condition) { this.condition = condition; + if (condition != null) { + condition.setParent(this); + condition.setPropertyInParent(CONDITION); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTForStatement#getIterationExpression() - */ public IASTExpression getIterationExpression() { return iterationExpression; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTForStatement#setIterationExpression(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setIterationExpression(IASTExpression iterator) { this.iterationExpression = iterator; + if (iterator != null) { + iterator.setParent(this); + iterator.setPropertyInParent(ITERATION); + } + } + + public IASTStatement getInitializerStatement() { + return init; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTForStatement#getBody() - */ + public void setInitializerStatement(IASTStatement statement) { + init = statement; + if (statement != null) { + statement.setParent(this); + statement.setPropertyInParent(INITIALIZER); + } + } public IASTStatement getBody() { return body; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTForStatement#setBody(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ public void setBody(IASTStatement statement) { body = statement; - + if (statement != null) { + statement.setParent(this); + statement.setPropertyInParent(BODY); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTForStatement#getScope() - */ public IScope getScope() { if( scope == null ) scope = new CScope( this ); @@ -133,14 +145,4 @@ public class CASTForStatement extends CASTNode implements IASTForStatement, IAST } } - - public IASTStatement getInitializerStatement() { - return init; - } - - public void setInitializerStatement(IASTStatement statement) { - init = statement; - } - - -} +} \ No newline at end of file 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 c4925908cd6..07202b16073 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 @@ -27,8 +27,21 @@ public class CASTFunctionCallExpression extends CASTNode implements private IASTExpression functionName; private IASTExpression parameter; - public void setFunctionNameExpression(IASTExpression expression) { + + public CASTFunctionCallExpression() { + } + + public CASTFunctionCallExpression(IASTExpression functionName, IASTExpression parameter) { + setFunctionNameExpression(functionName); + setParameterExpression(parameter); + } + + public void setFunctionNameExpression(IASTExpression expression) { this.functionName = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(FUNCTION_NAME); + } } public IASTExpression getFunctionNameExpression() { @@ -37,6 +50,10 @@ public class CASTFunctionCallExpression extends CASTNode implements public void setParameterExpression(IASTExpression expression) { this.parameter = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(PARAMETERS); + } } public IASTExpression getParameterExpression() { 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 b462b654665..382a994c93f 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 @@ -12,6 +12,7 @@ package org.eclipse.cdt.internal.core.dom.parser.c; import org.eclipse.cdt.core.dom.ast.ASTVisitor; +import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.dom.ast.IASTStandardFunctionDeclarator; import org.eclipse.cdt.core.parser.util.ArrayUtil; @@ -19,8 +20,7 @@ import org.eclipse.cdt.core.parser.util.ArrayUtil; /** * @author jcamelon */ -public class CASTFunctionDeclarator extends CASTDeclarator implements - IASTStandardFunctionDeclarator { +public class CASTFunctionDeclarator extends CASTDeclarator implements IASTStandardFunctionDeclarator { private IASTParameterDeclaration [] parameters = null; private int parametersPos=-1; @@ -28,34 +28,31 @@ public class CASTFunctionDeclarator extends CASTDeclarator implements - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator#getParameters() - */ - public IASTParameterDeclaration[] getParameters() { + public CASTFunctionDeclarator() { + } + + public CASTFunctionDeclarator(IASTName name) { + super(name); + } + + public IASTParameterDeclaration[] getParameters() { if( parameters == null ) return IASTParameterDeclaration.EMPTY_PARAMETERDECLARATION_ARRAY; parameters = (IASTParameterDeclaration[]) ArrayUtil.removeNullsAfter( IASTParameterDeclaration.class, parameters, parametersPos ); return parameters; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator#addParameterDeclaration(org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration) - */ public void addParameterDeclaration(IASTParameterDeclaration parameter) { if (parameter != null) { + parameter.setParent(this); + parameter.setPropertyInParent(FUNCTION_PARAMETER); parameters = (IASTParameterDeclaration[]) ArrayUtil.append( IASTParameterDeclaration.class, parameters, ++parametersPos, parameter ); } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator#takesVarArgs() - */ public boolean takesVarArgs() { return varArgs; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator#setVarArgs(boolean) - */ public void setVarArgs(boolean value) { varArgs = value; } 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 3a9d1e411c5..ca8df71d10d 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 @@ -31,51 +31,53 @@ public class CASTFunctionDefinition extends CASTNode implements private IASTStatement bodyStatement; private ICFunctionScope scope; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition#getDeclSpecifier() - */ - public IASTDeclSpecifier getDeclSpecifier() { + + public CASTFunctionDefinition() { + } + + public CASTFunctionDefinition(IASTDeclSpecifier declSpecifier, + IASTFunctionDeclarator declarator, IASTStatement bodyStatement) { + setDeclSpecifier(declSpecifier); + setDeclarator(declarator); + setBody(bodyStatement); + } + + public IASTDeclSpecifier getDeclSpecifier() { return declSpecifier; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition#setDeclSpecifier(org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier) - */ public void setDeclSpecifier(IASTDeclSpecifier declSpec) { declSpecifier = declSpec; + if (declSpec != null) { + declSpec.setParent(this); + declSpec.setPropertyInParent(DECL_SPECIFIER); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition#getDeclarator() - */ public IASTFunctionDeclarator getDeclarator() { return declarator; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition#setDeclarator(org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator) - */ public void setDeclarator(IASTFunctionDeclarator declarator) { this.declarator = declarator; + if (declarator != null) { + declarator.setParent(this); + declarator.setPropertyInParent(DECLARATOR); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition#getBody() - */ public IASTStatement getBody() { return bodyStatement; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition#setBody(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ public void setBody(IASTStatement statement) { bodyStatement = statement; + if (statement != null) { + statement.setParent(this); + statement.setPropertyInParent(FUNCTION_BODY); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition#getScope() - */ public IScope getScope() { if( scope == null ) scope = new CFunctionScope( this ); 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 f6c1b6e7031..b94756f8b61 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 @@ -22,18 +22,23 @@ public class CASTGotoStatement extends CASTNode implements IASTGotoStatement { private IASTName name; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTGotoStatement#getName() - */ - public IASTName getName() { + public CASTGotoStatement() { + } + + public CASTGotoStatement(IASTName name) { + setName(name); + } + + public IASTName getName() { return this.name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTGotoStatement#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(NAME); + } } public boolean accept( ASTVisitor action ){ @@ -56,9 +61,6 @@ public class CASTGotoStatement extends CASTNode implements IASTGotoStatement { return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int getRoleForName(IASTName n) { if( n == name ) return r_reference; return r_unclear; 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 32c955d31fc..ef4c2f48a4d 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 @@ -26,12 +26,24 @@ public class CASTIdExpression extends CASTNode implements IASTIdExpression, IAST private IASTName name; - public IASTName getName() { + + public CASTIdExpression() { + } + + public CASTIdExpression(IASTName name) { + setName(name); + } + + public IASTName getName() { return name; } public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(ID_NAME); + } } public boolean accept( ASTVisitor action ){ 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 3a711c7f9a9..a41aa7e2a58 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 @@ -27,46 +27,56 @@ public class CASTIfStatement extends CASTNode implements IASTIfStatement, IASTAm private IASTStatement thenClause; private IASTStatement elseClause; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTIfStatement#getCondition() - */ - public IASTExpression getConditionExpression() { + + + public CASTIfStatement() { + } + + public CASTIfStatement(IASTExpression condition, IASTStatement thenClause) { + setConditionExpression(condition); + setThenClause(thenClause); + } + + + public CASTIfStatement(IASTExpression condition, IASTStatement thenClause, IASTStatement elseClause) { + this(condition, thenClause); + setElseClause(elseClause); + } + + public IASTExpression getConditionExpression() { return condition; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTIfStatement#setCondition(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setConditionExpression(IASTExpression condition) { this.condition = condition; + if (condition != null) { + condition.setParent(this); + condition.setPropertyInParent(CONDITION); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTIfStatement#getThenClause() - */ public IASTStatement getThenClause() { return thenClause; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTIfStatement#setThenClause(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ public void setThenClause(IASTStatement thenClause) { this.thenClause = thenClause; + if (thenClause != null) { + thenClause.setParent(this); + thenClause.setPropertyInParent(THEN); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTIfStatement#getElseClause() - */ public IASTStatement getElseClause() { return elseClause; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTIfStatement#setElseClause(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ public void setElseClause(IASTStatement elseClause) { this.elseClause = elseClause; + if (elseClause != null) { + elseClause.setParent(this); + elseClause.setPropertyInParent(ELSE); + } } public boolean accept( ASTVisitor action ){ 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 e79caa5973c..ee05f49fba1 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 @@ -25,18 +25,24 @@ public class CASTInitializerExpression extends CASTNode implements private IASTExpression expression; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTInitializerExpression#getExpression() - */ - public IASTExpression getExpression() { + + public CASTInitializerExpression() { + } + + public CASTInitializerExpression(IASTExpression expression) { + setExpression(expression); + } + + public IASTExpression getExpression() { return expression; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTInitializerExpression#setExpression(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setExpression(IASTExpression expression) { this.expression = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(INITIALIZER_EXPRESSION); + } } public boolean accept( ASTVisitor action ){ 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 9e836fae4dc..cb44871da88 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 @@ -24,19 +24,17 @@ public class CASTInitializerList extends CASTNode implements IASTInitializerList { - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration#getDeclarators() - */ public IASTInitializer[] getInitializers() { if( initializers == null ) return IASTInitializer.EMPTY_INITIALIZER_ARRAY; initializers = (IASTInitializer[]) ArrayUtil.removeNullsAfter( IASTInitializer.class, initializers, initializersPos ); return initializers; } - public void addInitializer( IASTInitializer d ) - { + public void addInitializer( IASTInitializer d ) { if (d != null) { - initializers = (IASTInitializer[]) ArrayUtil.append( IASTInitializer.class, initializers, ++initializersPos, d ); + initializers = (IASTInitializer[]) ArrayUtil.append( IASTInitializer.class, initializers, ++initializersPos, d ); + d.setParent(this); + d.setPropertyInParent(NESTED_INITIALIZER); } } 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 4fd465d1bff..8b3e098cf82 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 @@ -28,30 +28,45 @@ public class CASTKnRFunctionDeclarator extends CASTDeclarator implements ICASTKn IASTName[] parameterNames = IASTName.EMPTY_NAME_ARRAY; IASTDeclaration[] parameterDeclarations = IASTDeclaration.EMPTY_DECLARATION_ARRAY; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator#setParameterNames(org.eclipse.cdt.core.dom.ast.IASTName[]) - */ - public void setParameterNames(IASTName[] names) { - parameterNames = names; + + public CASTKnRFunctionDeclarator() { } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator#getParameterNames() - */ + public CASTKnRFunctionDeclarator(IASTName[] parameterNames, IASTDeclaration[] parameterDeclarations) { + setParameterNames(parameterNames); + setParameterDeclarations(parameterDeclarations); + } + + + public void setParameterNames(IASTName[] names) { + parameterNames = names; + for(int i = 0; i < names.length; i++) { + IASTName name = names[i]; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(PARAMETER_NAME); + } + } + } + + public IASTName[] getParameterNames() { return parameterNames; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator#setParameterDeclarations(org.eclipse.cdt.core.dom.ast.IASTDeclaration[]) - */ + public void setParameterDeclarations(IASTDeclaration[] decls) { parameterDeclarations = decls; + for(int i = 0; i < parameterDeclarations.length; i++) { + IASTDeclaration decl = parameterDeclarations[i]; + if (decl != null) { + decl.setParent(this); + decl.setPropertyInParent(FUNCTION_PARAMETER); + } + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator#getParameterDeclarations() - */ + public IASTDeclaration[] getParameterDeclarations() { return parameterDeclarations; } @@ -70,9 +85,6 @@ public class CASTKnRFunctionDeclarator extends CASTDeclarator implements ICASTKn return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.c.ICASTKnRFunctionDeclarator#getDeclaratorForParameterName() - */ public IASTDeclarator getDeclaratorForParameterName(IASTName name) { boolean found=false; for(int i=0; i MAX_RESOLUTION_DEPTH) { @@ -124,11 +113,6 @@ public class CPPASTName extends CPPASTNode implements IASTName, IASTCompletionCo return binding; } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ public String toString() { if (name == EMPTY_CHAR_ARRAY) return EMPTY_STRING; @@ -169,11 +153,6 @@ public class CPPASTName extends CPPASTNode implements IASTName, IASTCompletionCo return true; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTName#isDeclaration() - */ public boolean isDeclaration() { IASTNode parent = getParent(); if (parent instanceof IASTNameOwner) { @@ -189,11 +168,6 @@ public class CPPASTName extends CPPASTNode implements IASTName, IASTCompletionCo return false; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTName#isReference() - */ public boolean isReference() { IASTNode parent = getParent(); if (parent instanceof IASTNameOwner) { 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 4de833edc07..fb63cfb0aff 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 @@ -34,32 +34,34 @@ public class CPPASTNamedTypeSpecifier extends CPPASTBaseDeclSpecifier implements private boolean typename; private IASTName name; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamedTypeSpecifier#isTypename() - */ - public boolean isTypename() { + + public CPPASTNamedTypeSpecifier() { + } + + public CPPASTNamedTypeSpecifier(boolean typename, IASTName name) { + this.typename = typename; + this.name = name; + } + + public boolean isTypename() { return typename; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamedTypeSpecifier#setIsTypename(boolean) - */ public void setIsTypename(boolean value) { typename = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNamedTypeSpecifier#getName() - */ public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNamedTypeSpecifier#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ + public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(NAME); + } } public boolean accept( ASTVisitor action ){ @@ -82,9 +84,6 @@ public class CPPASTNamedTypeSpecifier extends CPPASTBaseDeclSpecifier implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int getRoleForName(IASTName n) { if( n == name ) return r_reference; 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 34c22d2c93d..7caf006fb59 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 @@ -17,38 +17,34 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceAlias; /** * @author jcamelon */ -public class CPPASTNamespaceAlias extends CPPASTNode implements - ICPPASTNamespaceAlias { +public class CPPASTNamespaceAlias extends CPPASTNode implements ICPPASTNamespaceAlias { private IASTName alias; private IASTName qualifiedName; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceAlias#getAlias() - */ + public IASTName getAlias() { return alias; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceAlias#setAlias(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setAlias(IASTName name) { this.alias = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(ALIAS_NAME); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceAlias#getQualifiedName() - */ public IASTName getMappingName() { return qualifiedName; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceAlias#setQualifiedName(org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName) - */ public void setMappingName(IASTName qualifiedName) { this.qualifiedName = qualifiedName; + if (qualifiedName != null) { + qualifiedName.setParent(this); + qualifiedName.setPropertyInParent(MAPPING_NAME); + } } public boolean accept( ASTVisitor action ){ @@ -73,13 +69,9 @@ public class CPPASTNamespaceAlias extends CPPASTNode implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int getRoleForName(IASTName n) { if( alias == n ) return r_definition; if( qualifiedName == n ) return r_reference; return r_unclear; } - } 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 8acb0eb766c..69e7deffa86 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 @@ -30,41 +30,42 @@ public class CPPASTNamespaceDefinition extends CPPASTNode implements ICPPASTNamespaceDefinition, IASTAmbiguityParent { private IASTName name; + + public CPPASTNamespaceDefinition() { + } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition#getName() - */ - public IASTName getName() { + public CPPASTNamespaceDefinition(IASTName name) { + setName(name); + } + + public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(NAMESPACE_NAME); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition#getDeclarations() - */ public IASTDeclaration [] getDeclarations() { if( declarations == null ) return IASTDeclaration.EMPTY_DECLARATION_ARRAY; return (IASTDeclaration[]) ArrayUtil.trim( IASTDeclaration.class, declarations ); } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition#addDeclaration(org.eclipse.cdt.core.dom.ast.IASTDeclaration) - */ public void addDeclaration(IASTDeclaration declaration) { declarations = (IASTDeclaration[]) ArrayUtil.append( IASTDeclaration.class, declarations, declaration ); + if(declaration != null) { + declaration.setParent(this); + declaration.setPropertyInParent(OWNED_DECLARATION); + } } private IASTDeclaration [] declarations = new IASTDeclaration[32]; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition#getScope() - */ - public IScope getScope() { + + public IScope getScope() { try { return ((ICPPNamespace) name.resolveBinding()).getNamespaceScope(); } catch ( DOMException e ) { @@ -99,9 +100,6 @@ public class CPPASTNamespaceDefinition extends CPPASTNode implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int getRoleForName(IASTName n) { if( name == n ) return r_definition; return r_unclear; 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 8c2e17a59cb..74a4042b371 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 @@ -31,7 +31,18 @@ public class CPPASTNewExpression extends CPPASTNode implements private IASTTypeId typeId; private boolean isNewTypeId; - public boolean isGlobal() { + + public CPPASTNewExpression() { + } + + public CPPASTNewExpression(IASTExpression placement, + IASTExpression initializer, IASTTypeId typeId) { + setNewPlacement(placement); + setNewInitializer(initializer); + setTypeId(typeId); + } + + public boolean isGlobal() { return global; } @@ -45,6 +56,10 @@ public class CPPASTNewExpression extends CPPASTNode implements public void setNewPlacement(IASTExpression expression) { placement = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(NEW_PLACEMENT); + } } public IASTExpression getNewInitializer() { @@ -53,6 +68,10 @@ public class CPPASTNewExpression extends CPPASTNode implements public void setNewInitializer(IASTExpression expression) { initializer = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(NEW_INITIALIZER); + } } public IASTTypeId getTypeId() { @@ -61,6 +80,10 @@ public class CPPASTNewExpression extends CPPASTNode implements public void setTypeId(IASTTypeId typeId) { this.typeId = typeId; + if (typeId != null) { + typeId.setParent(this); + typeId.setPropertyInParent(TYPE_ID); + } } public boolean isNewTypeId() { @@ -78,6 +101,10 @@ public class CPPASTNewExpression extends CPPASTNode implements public void addNewTypeIdArrayExpression(IASTExpression expression) { arrayExpressions = (IASTExpression[]) ArrayUtil.append( IASTExpression.class, arrayExpressions, expression ); + if(expression != null) { + expression.setParent(this); + expression.setPropertyInParent(NEW_TYPEID_ARRAY_EXPRESSION); + } } private IASTExpression [] arrayExpressions = null; 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 24d8ee4b1f2..3292f3bb8e0 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 @@ -16,8 +16,8 @@ import org.eclipse.cdt.core.dom.ast.IASTNullStatement; /** * @author jcamelon */ -public class CPPASTNullStatement extends CPPASTNode implements - IASTNullStatement { +public class CPPASTNullStatement extends CPPASTNode implements IASTNullStatement { + public boolean accept( ASTVisitor action ){ if( action.shouldVisitStatements ){ switch( action.visit( this ) ){ 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 db6dc17aced..824c108e8ea 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 @@ -18,38 +18,42 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTParameterDeclaration; /** * @author jcamelon */ -public class CPPASTParameterDeclaration extends CPPASTNode implements - ICPPASTParameterDeclaration { +public class CPPASTParameterDeclaration extends CPPASTNode implements ICPPASTParameterDeclaration { private IASTDeclSpecifier declSpec; private IASTDeclarator declarator; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration#getDeclSpecifier() - */ - public IASTDeclSpecifier getDeclSpecifier() { + + public CPPASTParameterDeclaration() { + } + + public CPPASTParameterDeclaration(IASTDeclSpecifier declSpec, IASTDeclarator declarator) { + setDeclSpecifier(declSpec); + setDeclarator(declarator); + } + + public IASTDeclSpecifier getDeclSpecifier() { return declSpec; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration#getDeclarator() - */ public IASTDeclarator getDeclarator() { return declarator; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration#setDeclSpecifier(org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier) - */ public void setDeclSpecifier(IASTDeclSpecifier declSpec) { this.declSpec = declSpec; + if (declSpec != null) { + declSpec.setParent(this); + declSpec.setPropertyInParent(DECL_SPECIFIER); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration#setDeclarator(org.eclipse.cdt.core.dom.ast.IASTDeclarator) - */ public void setDeclarator(IASTDeclarator declarator) { this.declarator = declarator; + if (declarator != null) { + declarator.setParent(this); + declarator.setPropertyInParent(DECLARATOR); + } } public boolean accept( ASTVisitor action ){ 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 f635a9da1c8..e78500fb26d 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 @@ -22,38 +22,18 @@ public class CPPASTPointer extends CPPASTNode implements IASTPointer { private boolean isVolatile; - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTPointer#isConst() - */ public boolean isConst() { return isConst; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTPointer#isVolatile() - */ public boolean isVolatile() { return isVolatile; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTPointer#setConst(boolean) - */ public void setConst(boolean value) { isConst = value; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTPointer#setVolatile(boolean) - */ public void setVolatile(boolean value) { isVolatile = value; } 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 e979d77ff16..93987429976 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 @@ -22,16 +22,22 @@ public class CPPASTPointerToMember extends CPPASTPointer implements private IASTName n; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTPointerToMember#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ - public void setName(IASTName name) { + public CPPASTPointerToMember() { + } + + public CPPASTPointerToMember(IASTName n) { + setName(n); + } + + public void setName(IASTName name) { n = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(NAME); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTPointerToMember#getName() - */ + public IASTName getName() { return n; } @@ -41,9 +47,7 @@ public class CPPASTPointerToMember extends CPPASTPointer implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ + public int getRoleForName(IASTName name ) { if( name == this.n ) return r_reference; 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 48c18dc5e60..757a9e7ade6 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 @@ -15,7 +15,6 @@ import java.text.MessageFormat; import java.util.HashMap; import java.util.Map; -import org.eclipse.cdt.core.dom.ast.ASTNodeProperty; import org.eclipse.cdt.core.dom.ast.ASTVisitor; import org.eclipse.cdt.core.dom.ast.IASTFileLocation; import org.eclipse.cdt.core.dom.ast.IASTNode; @@ -27,56 +26,14 @@ import org.eclipse.cdt.internal.core.parser.ParserMessages; * @author jcamelon */ public class CPPASTProblem extends CPPASTNode implements IASTProblem { - private IASTNode parent; - - private ASTNodeProperty property; - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTNode#getParent() - */ - public IASTNode getParent() { - return parent; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTNode#setParent(org.eclipse.cdt.core.dom.ast.IASTNode) - */ - public void setParent(IASTNode node) { - this.parent = node; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTNode#getPropertyInParent() - */ - public ASTNodeProperty getPropertyInParent() { - return property; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTNode#setPropertyInParent(org.eclipse.cdt.core.dom.ast.ASTNodeProperty) - */ - public void setPropertyInParent(ASTNodeProperty property) { - this.property = property; - } - + private final char[] arg; - private final int id; - private final boolean isError; - private final boolean isWarning; - private String message = null; + public CPPASTProblem(int id, char[] arg, boolean warn, boolean error) { this.id = id; this.arg = arg; @@ -84,29 +41,15 @@ public class CPPASTProblem extends CPPASTNode implements IASTProblem { this.isError = error; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.IASTProblem#getID() - */ + public int getID() { return id; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.IASTProblem#isError() - */ public boolean isError() { return isError; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.IASTProblem#isWarning() - */ public boolean isWarning() { return isWarning; } @@ -290,29 +233,15 @@ public class CPPASTProblem extends CPPASTNode implements IASTProblem { return message; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.IASTProblem#checkCategory(int) - */ + public boolean checkCategory(int bitmask) { return ((id & bitmask) != 0); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.parser.IASTProblem#getArguments() - */ public String getArguments() { return arg != null ? String.valueOf(arg) : ""; //$NON-NLS-1$ } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTNode#getTranslationUnit() - */ public IASTTranslationUnit getTranslationUnit() { if (this instanceof IASTTranslationUnit) return (IASTTranslationUnit) this; 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 abdbe159db0..552080ea0d5 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 @@ -11,21 +11,32 @@ package org.eclipse.cdt.internal.core.dom.parser.cpp; import org.eclipse.cdt.core.dom.ast.IASTProblem; +import org.eclipse.cdt.core.dom.ast.IASTProblemHolder; /** * @author jcamelon */ -abstract class CPPASTProblemOwner extends CPPASTNode { +abstract class CPPASTProblemOwner extends CPPASTNode implements IASTProblemHolder { private IASTProblem problem; - public IASTProblem getProblem() - { + + public CPPASTProblemOwner() { + } + + public CPPASTProblemOwner(IASTProblem problem) { + setProblem(problem); + } + + public IASTProblem getProblem() { return problem; } - public void setProblem(IASTProblem p) - { + public void setProblem(IASTProblem p) { problem = p; + if (p != null) { + p.setParent(this); + p.setPropertyInParent(PROBLEM); + } } } 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 94b137def93..c293a2896f7 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 @@ -16,23 +16,28 @@ import org.eclipse.cdt.core.dom.ast.IASTProblemTypeId; /** * @author jcamelon */ -public class CPPASTProblemTypeId extends CPPASTTypeId implements - IASTProblemTypeId { +public class CPPASTProblemTypeId extends CPPASTTypeId implements IASTProblemTypeId { - private IASTProblem problem; + private IASTProblem problem; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTProblemTypeId#getProblem() - */ - public IASTProblem getProblem() { + + public CPPASTProblemTypeId() { + } + + public CPPASTProblemTypeId(IASTProblem problem) { + setProblem(problem); + } + + public IASTProblem getProblem() { return problem; } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTProblemTypeId#setProblem(org.eclipse.cdt.core.dom.ast.IASTProblem) - */ + public void setProblem(IASTProblem p) { problem = p; + if (p != null) { + p.setParent(this); + p.setPropertyInParent(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 d24556a7626..00716bbd0cc 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 @@ -40,17 +40,10 @@ import org.eclipse.cdt.core.parser.util.CharArrayUtils; public class CPPASTQualifiedName extends CPPASTNode implements ICPPASTQualifiedName, IASTCompletionContext { - /** - * @param duple - */ + public CPPASTQualifiedName() { } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTName#resolveBinding() - */ public IBinding resolveBinding() { // The full qualified name resolves to the same thing as the last name removeNullNames(); @@ -70,31 +63,22 @@ public class CPPASTQualifiedName extends CPPASTNode implements return null; } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ + public String toString() { if (signature == null) return ""; //$NON-NLS-1$ return signature; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName#addName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void addName(IASTName name) { if (name != null) { names = (IASTName[]) ArrayUtil.append( IASTName.class, names, ++namesPos, name ); + name.setParent(this); + name.setPropertyInParent(SEGMENT_NAME); } } - /** - * @param decls2 - */ + private void removeNullNames() { names = (IASTName[]) ArrayUtil.removeNullsAfter( IASTName.class, names, namesPos ); } @@ -104,11 +88,7 @@ public class CPPASTQualifiedName extends CPPASTNode implements private boolean value; private String signature; - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName#getNames() - */ + public IASTName[] getNames() { if (names == null) return IASTName.EMPTY_NAME_ARRAY; @@ -123,11 +103,6 @@ public class CPPASTQualifiedName extends CPPASTNode implements return names[names.length - 1]; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTName#toCharArray() - */ public char[] toCharArray() { if (names == null) return "".toCharArray(); //$NON-NLS-1$ @@ -158,27 +133,15 @@ public class CPPASTQualifiedName extends CPPASTNode implements return nameArray; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName#isFullyQualified() - */ public boolean isFullyQualified() { return value; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName#setFullyQualified(boolean) - */ public void setFullyQualified(boolean value) { this.value = value; } - /** - * @param string - */ + public void setValue(String string) { this.signature = string; @@ -219,9 +182,7 @@ public class CPPASTQualifiedName extends CPPASTNode implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#isDeclaration() - */ + public boolean isDeclaration() { IASTNode parent = getParent(); if (parent instanceof IASTNameOwner) { @@ -232,9 +193,6 @@ public class CPPASTQualifiedName extends CPPASTNode implements return false; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#isReference() - */ public boolean isReference() { IASTNode parent = getParent(); if (parent instanceof IASTNameOwner) { @@ -245,9 +203,6 @@ public class CPPASTQualifiedName extends CPPASTNode implements return false; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int getRoleForName(IASTName n) { IASTName [] namez = getNames(); for( int i = 0; i < names.length; ++i ) @@ -263,25 +218,16 @@ public class CPPASTQualifiedName extends CPPASTNode implements return r_unclear; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#getBinding() - */ public IBinding getBinding() { removeNullNames(); return names[names.length - 1].getBinding(); } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#setBinding(org.eclipse.cdt.core.dom.ast.IBinding) - */ public void setBinding(IBinding binding) { removeNullNames(); names[names.length - 1].setBinding( binding ); } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName#isConversionOrOperator() - */ public boolean isConversionOrOperator() { IASTName[] nonNullNames = getNames(); // ensure no null names 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 315663820dc..5ae45b1ea47 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 @@ -19,26 +19,27 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; /** * @author jcamelon */ -public class CPPASTReturnStatement extends CPPASTNode implements - IASTReturnStatement, IASTAmbiguityParent { - private IASTExpression retValue; +public class CPPASTReturnStatement extends CPPASTNode implements IASTReturnStatement, IASTAmbiguityParent { + + private IASTExpression retValue; + + public CPPASTReturnStatement() { + } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTReturnStatement#getReturnValue() - */ - public IASTExpression getReturnValue() { + public CPPASTReturnStatement(IASTExpression retValue) { + setReturnValue(retValue); + } + + public IASTExpression getReturnValue() { return retValue; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTReturnStatement#setReturnValue(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setReturnValue(IASTExpression returnValue) { retValue = returnValue; + if (returnValue != null) { + returnValue.setParent(this); + returnValue.setPropertyInParent(RETURNVALUE); + } } public boolean accept(ASTVisitor action) { 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 1f7ef7c6a70..c21bd7714ee 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 @@ -25,72 +25,42 @@ public class CPPASTSimpleDeclSpecifier extends CPPASTBaseDeclSpecifier private boolean isShort; private boolean isLong; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#getType() - */ public int getType() { return type; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#setType(int) - */ public void setType(int type) { this.type = type; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#isSigned() - */ public boolean isSigned() { return isSigned; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#isUnsigned() - */ public boolean isUnsigned() { return isUnsigned; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#isShort() - */ public boolean isShort() { return isShort; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#isLong() - */ public boolean isLong() { return isLong; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#setSigned(boolean) - */ public void setSigned(boolean value) { isSigned = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#setUnsigned(boolean) - */ public void setUnsigned(boolean value) { isUnsigned = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#setLong(boolean) - */ public void setLong(boolean value) { isLong = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier#setShort(boolean) - */ public void setShort(boolean value) { isShort = value; } 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 df73ba13f75..746ed987330 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 @@ -20,31 +20,30 @@ import org.eclipse.cdt.core.parser.util.ArrayUtil; /** * @author jcamelon */ -public class CPPASTSimpleDeclaration extends CPPASTNode implements - IASTSimpleDeclaration { +public class CPPASTSimpleDeclaration extends CPPASTNode implements IASTSimpleDeclaration { - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration#getDeclSpecifier() - */ - public IASTDeclSpecifier getDeclSpecifier() { + public CPPASTSimpleDeclaration() { + } + + public CPPASTSimpleDeclaration(IASTDeclSpecifier declSpecifier) { + setDeclSpecifier(declSpecifier); + } + + public IASTDeclSpecifier getDeclSpecifier() { return declSpecifier; } - - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration#getDeclarators() - */ public IASTDeclarator[] getDeclarators() { if( declarators == null ) return IASTDeclarator.EMPTY_DECLARATOR_ARRAY; declarators = (IASTDeclarator[]) ArrayUtil.removeNullsAfter( IASTDeclarator.class, declarators, declaratorsPos ); return declarators; } - public void addDeclarator( IASTDeclarator d ) - { + public void addDeclarator( IASTDeclarator d ) { if (d != null) { declarators = (IASTDeclarator[]) ArrayUtil.append( IASTDeclarator.class, declarators, ++declaratorsPos, d ); + d.setParent(this); + d.setPropertyInParent(DECLARATOR); } } @@ -57,6 +56,10 @@ public class CPPASTSimpleDeclaration extends CPPASTNode implements */ public void setDeclSpecifier(IASTDeclSpecifier declSpecifier) { this.declSpecifier = declSpecifier; + if (declSpecifier != null) { + declSpecifier.setParent(this); + declSpecifier.setPropertyInParent(DECL_SPECIFIER); + } } public boolean accept( ASTVisitor action ){ 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 c10def49039..f72cdfb58ac 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 @@ -26,7 +26,15 @@ public class CPPASTSimpleTypeConstructorExpression extends CPPASTNode implements private int st; private IASTExpression init; - public int getSimpleType() { + public CPPASTSimpleTypeConstructorExpression() { + } + + public CPPASTSimpleTypeConstructorExpression(int st, IASTExpression init) { + this.st = st; + setInitialValue(init); + } + + public int getSimpleType() { return st; } @@ -40,6 +48,10 @@ public class CPPASTSimpleTypeConstructorExpression extends CPPASTNode implements public void setInitialValue(IASTExpression expression) { init = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(INITIALIZER_VALUE); + } } public boolean accept( ASTVisitor action ){ 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 2ade960fb5d..a2546480161 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 @@ -26,47 +26,48 @@ public class CPPASTSimpleTypeTemplateParameter extends CPPASTNode implements private IASTName name; private IASTTypeId typeId; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleTypeTemplateParameter#getParameterType() - */ - public int getParameterType() { + + public CPPASTSimpleTypeTemplateParameter() { + } + + public CPPASTSimpleTypeTemplateParameter(int type, IASTName name, IASTTypeId typeId) { + this.type = type; + setName(name); + setDefaultType(typeId); + } + + public int getParameterType() { return type; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleTypeTemplateParameter#setParameterType(int) - */ public void setParameterType(int value) { this.type = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleTypeTemplateParameter#getName() - */ public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleTypeTemplateParameter#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(PARAMETER_NAME); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleTypeTemplateParameter#getDefaultType() - */ public IASTTypeId getDefaultType() { return typeId; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTSimpleTypeTemplateParameter#setDefaultType(org.eclipse.cdt.core.dom.ast.IASTTypeId) - */ public void setDefaultType(IASTTypeId typeId) { this.typeId = typeId; + if (typeId != null) { + typeId.setParent(this); + typeId.setPropertyInParent(DEFAULT_TYPE); + } } + public boolean accept( ASTVisitor action ){ if( action instanceof CPPASTVisitor && ((CPPASTVisitor)action).shouldVisitTemplateParameters ){ @@ -90,10 +91,7 @@ public class CPPASTSimpleTypeTemplateParameter extends CPPASTNode implements } return true; } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ + public int getRoleForName(IASTName n) { if( n == name ) return r_declaration; 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 793c18c9866..d8d00c61930 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 @@ -30,32 +30,42 @@ public class CPPASTSwitchStatement extends CPPASTNode implements private IASTStatement body; private IASTDeclaration decl; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSwitchStatement#getController() - */ - public IASTExpression getControllerExpression() { + + public CPPASTSwitchStatement() { + } + + public CPPASTSwitchStatement(IASTDeclaration controller, IASTStatement body) { + setControllerDeclaration(controller); + setBody(body); + } + + public CPPASTSwitchStatement(IASTExpression controller, IASTStatement body) { + setControllerExpression(controller); + setBody(body); + } + + public IASTExpression getControllerExpression() { return controller; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSwitchStatement#setController(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setControllerExpression(IASTExpression controller) { this.controller = controller; + if (controller != null) { + controller.setParent(this); + controller.setPropertyInParent(CONTROLLER_EXP); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSwitchStatement#getBody() - */ public IASTStatement getBody() { return body; } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTSwitchStatement#setBody(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ + public void setBody(IASTStatement body) { this.body = body; + if (body != null) { + body.setParent(this); + body.setPropertyInParent(BODY); + } } public boolean accept( ASTVisitor action ){ @@ -108,6 +118,10 @@ public class CPPASTSwitchStatement extends CPPASTNode implements public void setControllerDeclaration(IASTDeclaration d) { decl = d; + if (d != null) { + d.setParent(this); + d.setPropertyInParent(CONTROLLER_DECLARATION); + } } public IScope getScope() { 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 c61ec4b11d1..215ee4e7d1b 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 @@ -30,49 +30,45 @@ public class CPPASTTemplateDeclaration extends CPPASTNode implements private IASTDeclaration declaration; private ICPPTemplateScope templateScope; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#isExported() - */ - public boolean isExported() { + + public CPPASTTemplateDeclaration() { + } + + public CPPASTTemplateDeclaration(IASTDeclaration declaration) { + setDeclaration(declaration); + } + + public boolean isExported() { return exported; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#setExported(boolean) - */ public void setExported(boolean value) { exported = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#getDeclaration() - */ public IASTDeclaration getDeclaration() { return declaration; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#setDeclaration(org.eclipse.cdt.core.dom.ast.IASTDeclaration) - */ public void setDeclaration(IASTDeclaration declaration) { this.declaration = declaration; + if (declaration != null) { + declaration.setParent(this); + declaration.setPropertyInParent(OWNED_DECLARATION); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#getTemplateParameters() - */ public ICPPASTTemplateParameter [] getTemplateParameters() { if( parameters == null ) return ICPPASTTemplateParameter.EMPTY_TEMPLATEPARAMETER_ARRAY; parameters = (ICPPASTTemplateParameter[]) ArrayUtil.removeNullsAfter( ICPPASTTemplateParameter.class, parameters, parametersPos ); return parameters; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#addTemplateParamter(org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter) - */ public void addTemplateParamter(ICPPASTTemplateParameter parm) { if (parm != null) { parameters = (ICPPASTTemplateParameter[]) ArrayUtil.append( ICPPASTTemplateParameter.class, parameters, ++parametersPos, parm ); + parm.setParent(this); + parm.setPropertyInParent(PARAMETER); } } @@ -104,9 +100,6 @@ public class CPPASTTemplateDeclaration extends CPPASTNode implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#getScope() - */ public ICPPTemplateScope getScope() { if( templateScope == null ) templateScope = new CPPTemplateScope( this ); 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 a395d42ea63..4a4c2370858 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 @@ -26,39 +26,45 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; * @author jcamelon */ public class CPPASTTemplateId extends CPPASTNode implements ICPPASTTemplateId, IASTAmbiguityParent { - private IASTName templateName; + + private IASTName templateName; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId#getTemplateName() - */ - public IASTName getTemplateName() { + + public CPPASTTemplateId() { + } + + public CPPASTTemplateId(IASTName templateName) { + setTemplateName(templateName); + } + + public IASTName getTemplateName() { return templateName; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId#setTemplateName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setTemplateName(IASTName name) { templateName = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(TEMPLATE_NAME); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId#addTemplateArgument(org.eclipse.cdt.core.dom.ast.IASTTypeId) - */ public void addTemplateArgument(IASTTypeId typeId) { templateArguments = (IASTNode[]) ArrayUtil.append( IASTNode.class, templateArguments, typeId ); + if (typeId != null) { + typeId.setParent(this); + typeId.setPropertyInParent(TEMPLATE_ID_ARGUMENT); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId#addTemplateArgument(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void addTemplateArgument(IASTExpression expression) { templateArguments = (IASTNode[]) ArrayUtil.append( IASTNode.class, templateArguments, expression ); + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(TEMPLATE_ID_ARGUMENT); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId#getTemplateArguments() - */ public IASTNode[] getTemplateArguments() { if( templateArguments == null ) return ICPPASTTemplateId.EMPTY_ARG_ARRAY; return (IASTNode[]) ArrayUtil.trim( IASTNode.class, templateArguments ); @@ -68,9 +74,6 @@ public class CPPASTTemplateId extends CPPASTNode implements ICPPASTTemplateId, I private IBinding binding = null; private int fResolutionDepth= 0; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#resolveBinding() - */ public IBinding resolveBinding() { if (binding == null) { // protect for infinite recursion @@ -89,9 +92,7 @@ public class CPPASTTemplateId extends CPPASTNode implements ICPPASTTemplateId, I return null; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#toCharArray() - */ + public char[] toCharArray() { return templateName.toCharArray(); } @@ -123,39 +124,24 @@ public class CPPASTTemplateId extends CPPASTNode implements ICPPASTTemplateId, I return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#isDeclaration() - */ public boolean isDeclaration() { return false; //for now this seems to be true } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#isReference() - */ public boolean isReference() { return true; //for now this seems to be true } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ + public int getRoleForName(IASTName n) { if( n == templateName ) return r_reference; return r_unclear; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#getBinding() - */ public IBinding getBinding() { return binding; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTName#setBinding(org.eclipse.cdt.core.dom.ast.IBinding) - */ public void setBinding(IBinding binding) { this.binding = binding; fResolutionDepth= 0; 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 277f6664b96..e39500f9f8b 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 @@ -28,18 +28,24 @@ public class CPPASTTemplateSpecialization extends CPPASTNode implements private IASTDeclaration declaration; private ICPPTemplateScope templateScope; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateSpecialization#getDeclaration() - */ - public IASTDeclaration getDeclaration() { + + public CPPASTTemplateSpecialization() { + } + + public CPPASTTemplateSpecialization(IASTDeclaration declaration) { + setDeclaration(declaration); + } + + public IASTDeclaration getDeclaration() { return declaration; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateSpecialization#setDeclaration(org.eclipse.cdt.core.dom.ast.IASTDeclaration) - */ public void setDeclaration(IASTDeclaration declaration) { this.declaration = declaration; + if (declaration != null) { + declaration.setParent(this); + declaration.setPropertyInParent(ICPPASTTemplateSpecialization.OWNED_DECLARATION); + } } public boolean accept( ASTVisitor action ){ @@ -63,35 +69,20 @@ public class CPPASTTemplateSpecialization extends CPPASTNode implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#isExported() - */ public boolean isExported() { return false; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#setExported(boolean) - */ public void setExported(boolean value) { } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#getTemplateParameters() - */ public ICPPASTTemplateParameter[] getTemplateParameters() { return ICPPASTTemplateParameter.EMPTY_TEMPLATEPARAMETER_ARRAY; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#addTemplateParamter(org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter) - */ public void addTemplateParamter(ICPPASTTemplateParameter parm) { } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#getScope() - */ public ICPPTemplateScope getScope() { if( templateScope == null ) templateScope = new CPPTemplateScope( this ); @@ -99,8 +90,7 @@ public class CPPASTTemplateSpecialization extends CPPASTNode implements } public void replace(IASTNode child, IASTNode other) { - if( declaration == child ) - { + if( declaration == child ) { other.setParent( child.getParent() ); other.setPropertyInParent( child.getPropertyInParent() ); declaration = (IASTDeclaration) other; 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 f807250c583..aed92d31ade 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 @@ -27,7 +27,16 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; public class CPPASTTemplatedTypeTemplateParameter extends CPPASTNode implements ICPPASTTemplatedTypeTemplateParameter, IASTAmbiguityParent { - public ICPPASTTemplateParameter[] getTemplateParameters() { + + public CPPASTTemplatedTypeTemplateParameter() { + } + + public CPPASTTemplatedTypeTemplateParameter(IASTName name, IASTExpression defaultValue) { + setName(name); + setDefaultValue(defaultValue); + } + + public ICPPASTTemplateParameter[] getTemplateParameters() { if( parameters == null ) return ICPPASTTemplateParameter.EMPTY_TEMPLATEPARAMETER_ARRAY; parameters = (ICPPASTTemplateParameter[]) ArrayUtil.removeNullsAfter( ICPPASTTemplateParameter.class, parameters, parametersPos ); return parameters; @@ -36,6 +45,8 @@ public class CPPASTTemplatedTypeTemplateParameter extends CPPASTNode implements public void addTemplateParamter(ICPPASTTemplateParameter parm) { if(parm != null) { parameters = (ICPPASTTemplateParameter[]) ArrayUtil.append( ICPPASTTemplateParameter.class, parameters, ++parametersPos, parm ); + parm.setParent(this); + parm.setPropertyInParent(PARAMETER); } } @@ -44,32 +55,28 @@ public class CPPASTTemplatedTypeTemplateParameter extends CPPASTNode implements private IASTName name; private IASTExpression defaultValue; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplatedTypeTemplateParameter#getName() - */ public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplatedTypeTemplateParameter#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setName(IASTName name) { this.name =name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(PARAMETER_NAME); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplatedTypeTemplateParameter#getDefaultValue() - */ public IASTExpression getDefaultValue() { return defaultValue; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplatedTypeTemplateParameter#setDefaultValue(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setDefaultValue(IASTExpression expression) { this.defaultValue = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(DEFAULT_VALUE); + } } public boolean accept( ASTVisitor action ){ @@ -99,10 +106,7 @@ public class CPPASTTemplatedTypeTemplateParameter extends CPPASTNode implements } return true; } - - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ + public int getRoleForName(IASTName n) { if( n == name ) return r_declaration; 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 7ca939d456f..ff552ef57a8 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 @@ -105,24 +105,19 @@ public class CPPASTTranslationUnit extends CPPASTNode implements public void addDeclaration(IASTDeclaration d) { decls = (IASTDeclaration [])ArrayUtil.append( IASTDeclaration.class, decls, d ); + if (d != null) { + d.setParent(this); + d.setPropertyInParent(OWNED_DECLARATION); + } } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getDeclarations() - */ + public IASTDeclaration[] getDeclarations() { if (decls == null) return IASTDeclaration.EMPTY_DECLARATION_ARRAY; return (IASTDeclaration[]) ArrayUtil.trim( IASTDeclaration.class, decls ); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getScope() - */ public IScope getScope() { if (scope == null) { scope = new CPPNamespaceScope(this); @@ -233,11 +228,7 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return names; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getReferences(org.eclipse.cdt.core.dom.ast.IBinding) - */ + public IASTName[] getReferences(IBinding b) { if( b instanceof IMacroBinding ) { @@ -248,12 +239,7 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return CPPVisitor.getReferences(this, b); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getLocationInfo(int, - * int) - */ + public IASTNodeLocation[] getLocationInfo(int offset, int length) { if (resolver == null) return EMPTY_PREPROCESSOR_LOCATION_ARRAY; @@ -308,9 +294,7 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return PROCESS_CONTINUE; } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.CPPBaseVisitorAction#processDeclaration(org.eclipse.cdt.core.dom.ast.IASTDeclaration) - */ + public int visit(IASTDeclaration declaration) { // use declarations to determine if the search has gone past the offset (i.e. don't know the order the visitor visits the nodes) // TODO take out fix below for bug 86993 check for: !(declaration instanceof ICPPASTLinkageSpecification) @@ -320,9 +304,7 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return processNode(declaration); } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.CPPBaseVisitorAction#processDeclarator(org.eclipse.cdt.core.dom.ast.IASTDeclarator) - */ + public int visit(IASTDeclarator declarator) { int ret = processNode(declarator); @@ -353,68 +335,42 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return ret; } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processDesignator(org.eclipse.cdt.core.dom.ast.c.ICASTDesignator) - */ + public int processDesignator(ICASTDesignator designator) { return processNode(designator); } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processDeclSpecifier(org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier) - */ + public int visit(IASTDeclSpecifier declSpec) { return processNode(declSpec); } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processEnumerator(org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator) - */ + public int visit(IASTEnumerator enumerator) { return processNode((IASTNode)enumerator); } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processExpression(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ + public int visit(IASTExpression expression) { return processNode(expression); } - - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processInitializer(org.eclipse.cdt.core.dom.ast.IASTInitializer) - */ + public int visit(IASTInitializer initializer) { return processNode(initializer); } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int visit(IASTName name) { if ( name.toString() != null ) return processNode(name); return PROCESS_CONTINUE; } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processParameterDeclaration(org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration) - */ public int visit( IASTParameterDeclaration parameterDeclaration) { return processNode(parameterDeclaration); } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processStatement(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ public int visit(IASTStatement statement) { return processNode(statement); } - /* (non-Javadoc) - * @see org.eclipse.cdt.internal.core.dom.parser.c.CVisitor.CBaseVisitorAction#processTypeId(org.eclipse.cdt.core.dom.ast.IASTTypeId) - */ public int visit(IASTTypeId typeId) { return processNode(typeId); } @@ -424,11 +380,7 @@ public class CPPASTTranslationUnit extends CPPASTNode implements } } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getNodeForLocation(org.eclipse.cdt.core.dom.ast.IASTNodeLocation) - */ + public IASTNode selectNodeForLocation(String path, int realOffset, int realLength) { IASTNode node = null; ASTPreprocessorSelectionResult result = null; @@ -455,44 +407,25 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return node; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getMacroDefinitions() - */ + public IASTPreprocessorMacroDefinition[] getMacroDefinitions() { if( resolver == null ) return EMPTY_PREPROCESSOR_MACRODEF_ARRAY; IASTPreprocessorMacroDefinition [] result = resolver.getMacroDefinitions(); return result; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getMacroDefinitions() - */ public IASTPreprocessorMacroDefinition[] getBuiltinMacroDefinitions() { if( resolver == null ) return EMPTY_PREPROCESSOR_MACRODEF_ARRAY; IASTPreprocessorMacroDefinition [] result = resolver.getBuiltinMacroDefinitions(); return result; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getIncludeDirectives() - */ public IASTPreprocessorIncludeStatement[] getIncludeDirectives() { if( resolver == null ) return EMPTY_PREPROCESSOR_INCLUSION_ARRAY; IASTPreprocessorIncludeStatement [] result = resolver.getIncludeDirectives(); return result; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getAllPreprocessorStatements() - */ public IASTPreprocessorStatement[] getAllPreprocessorStatements() { if (resolver == null) return EMPTY_PREPROCESSOR_STATEMENT_ARRAY; @@ -500,32 +433,17 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return result; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.IRequiresLocationInformation#setLocationResolver(org.eclipse.cdt.internal.core.parser.scanner2.ILocationResolver) - */ public void setLocationResolver(ILocationResolver resolver) { this.resolver = resolver; resolver.setRootNode( this ); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTranslationUnit#resolveBinding() - */ public IBinding resolveBinding() { if (binding == null) binding = new CPPNamespace(this); return binding; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getPreprocesorProblems() - */ public IASTProblem[] getPreprocessorProblems() { if (resolver == null) return EMPTY_PROBLEM_ARRAY; @@ -538,19 +456,12 @@ public class CPPASTTranslationUnit extends CPPASTNode implements return result; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getUnpreprocessedSignature(org.eclipse.cdt.core.dom.ast.IASTNodeLocation[]) - */ public String getUnpreprocessedSignature(IASTNodeLocation[] locations) { if( resolver == null ) return EMPTY_STRING; return new String( resolver.getUnpreprocessedSignature(locations) ); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.core.dom.ast.IASTTranslationUnit#getFilePath() - */ + public String getFilePath() { if (resolver == null) return EMPTY_STRING; 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 5c8ab11c614..ea4f549be3e 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 @@ -22,21 +22,25 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; /** * @author jcamelon */ -public class CPPASTTryBlockStatement extends CPPASTNode implements - ICPPASTTryBlockStatement, IASTAmbiguityParent { +public class CPPASTTryBlockStatement extends CPPASTNode implements ICPPASTTryBlockStatement, IASTAmbiguityParent { - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionTryBlockDeclarator#addCatchHandler(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ - public void addCatchHandler(ICPPASTCatchHandler statement) { + + public CPPASTTryBlockStatement() { + } + + public CPPASTTryBlockStatement(IASTStatement tryBody) { + setTryBody(tryBody); + } + + public void addCatchHandler(ICPPASTCatchHandler statement) { if (statement != null) { - catchHandlers = (ICPPASTCatchHandler[]) ArrayUtil.append( ICPPASTCatchHandler.class, catchHandlers, ++catchHandlersPos, statement ); + catchHandlers = (ICPPASTCatchHandler[]) ArrayUtil.append( ICPPASTCatchHandler.class, catchHandlers, ++catchHandlersPos, statement ); + statement.setParent(this); + statement.setPropertyInParent(CATCH_HANDLER); } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionTryBlockDeclarator#getCatchHandlers() - */ + public ICPPASTCatchHandler[] getCatchHandlers() { if( catchHandlers == null ) return ICPPASTCatchHandler.EMPTY_CATCHHANDLER_ARRAY; catchHandlers = (ICPPASTCatchHandler[]) ArrayUtil.removeNullsAfter( ICPPASTCatchHandler.class, catchHandlers, catchHandlersPos ); @@ -47,16 +51,16 @@ public class CPPASTTryBlockStatement extends CPPASTNode implements private ICPPASTCatchHandler [] catchHandlers = null; private int catchHandlersPos=-1; private IASTStatement tryBody; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTryBlockStatement#setTryBody(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ + public void setTryBody(IASTStatement tryBlock) { tryBody = tryBlock; + if (tryBlock != null) { + tryBlock.setParent(this); + tryBlock.setPropertyInParent(BODY); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTryBlockStatement#getTryBody() - */ + public IASTStatement getTryBody() { return tryBody; } 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 90fc54fe384..73deb129b67 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 @@ -23,32 +23,38 @@ public class CPPASTTypeId extends CPPASTNode implements IASTTypeId { private IASTDeclSpecifier declSpec; private IASTDeclarator absDecl; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTTypeId#getDeclSpecifier() - */ - public IASTDeclSpecifier getDeclSpecifier() { + + public CPPASTTypeId() { + } + + public CPPASTTypeId(IASTDeclSpecifier declSpec, IASTDeclarator absDecl) { + setDeclSpecifier(declSpec); + setAbstractDeclarator(absDecl); + } + + public IASTDeclSpecifier getDeclSpecifier() { return declSpec; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTTypeId#setDeclSpecifier(org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier) - */ public void setDeclSpecifier(IASTDeclSpecifier declSpec) { this.declSpec = declSpec; + if (declSpec != null) { + declSpec.setParent(this); + declSpec.setPropertyInParent(DECL_SPECIFIER); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTTypeId#getAbstractDeclarator() - */ public IASTDeclarator getAbstractDeclarator() { return absDecl; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTTypeId#setAbstractDeclarator(org.eclipse.cdt.core.dom.ast.IASTDeclarator) - */ + public void setAbstractDeclarator(IASTDeclarator abstractDeclarator) { this.absDecl = abstractDeclarator; + if (abstractDeclarator != null) { + abstractDeclarator.setParent(this); + abstractDeclarator.setPropertyInParent(ABSTRACT_DECLARATOR); + } } public boolean accept( ASTVisitor action ){ 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 dca17ba12b7..5e5aa340dc9 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 @@ -18,13 +18,20 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypeIdExpression; /** * @author jcamelon */ -public class CPPASTTypeIdExpression extends CPPASTNode implements - ICPPASTTypeIdExpression { +public class CPPASTTypeIdExpression extends CPPASTNode implements ICPPASTTypeIdExpression { private int op; private IASTTypeId typeId; - public int getOperator() { + public CPPASTTypeIdExpression() { + } + + public CPPASTTypeIdExpression(int op, IASTTypeId typeId) { + this.op = op; + setTypeId(typeId); + } + + public int getOperator() { return op; } @@ -34,6 +41,10 @@ public class CPPASTTypeIdExpression extends CPPASTNode implements public void setTypeId(IASTTypeId typeId) { this.typeId = typeId; + if (typeId != null) { + typeId.setParent(this); + typeId.setPropertyInParent(TYPE_ID); + } } public IASTTypeId getTypeId() { 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 24d775b5fa8..be31d5f444e 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 @@ -28,7 +28,16 @@ public class CPPASTTypenameExpression extends CPPASTNode implements private IASTName name; private IASTExpression init; - public void setIsTemplate(boolean templateTokenConsumed) { + + public CPPASTTypenameExpression() { + } + + public CPPASTTypenameExpression(IASTName name, IASTExpression init) { + setName(name); + setInitialValue(init); + } + + public void setIsTemplate(boolean templateTokenConsumed) { isTemplate = templateTokenConsumed; } @@ -38,6 +47,10 @@ public class CPPASTTypenameExpression extends CPPASTNode implements public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(TYPENAME); + } } public IASTName getName() { @@ -46,6 +59,10 @@ public class CPPASTTypenameExpression extends CPPASTNode implements public void setInitialValue(IASTExpression expressionList) { init = expressionList; + if (expressionList != null) { + expressionList.setParent(this); + expressionList.setPropertyInParent(INITIAL_VALUE); + } } public IASTExpression getInitialValue() { 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 b7ee6f0f920..9dcc3479eb6 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 @@ -26,7 +26,16 @@ public class CPPASTUnaryExpression extends CPPASTNode implements private int operator; private IASTExpression operand; - public int getOperator() { + + public CPPASTUnaryExpression() { + } + + public CPPASTUnaryExpression(int operator, IASTExpression operand) { + this.operator = operator; + setOperand(operand); + } + + public int getOperator() { return operator; } @@ -40,6 +49,10 @@ public class CPPASTUnaryExpression extends CPPASTNode implements public void setOperand(IASTExpression expression) { operand = expression; + if (expression != null) { + expression.setParent(this); + expression.setPropertyInParent(OPERAND); + } } public boolean accept( ASTVisitor action ){ @@ -64,8 +77,7 @@ public class CPPASTUnaryExpression extends CPPASTNode implements } public void replace(IASTNode child, IASTNode other) { - if( child == operand ) - { + if( child == operand ) { other.setPropertyInParent( child.getPropertyInParent() ); other.setParent( child.getParent() ); operand = (IASTExpression) other; 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 64c8887f252..0358063b763 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 @@ -30,32 +30,31 @@ public class CPPASTUsingDeclaration extends CPPASTNode implements private boolean typeName; private IASTName name; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDeclaration#setIsTypename(boolean) - */ - public void setIsTypename(boolean value) { + public CPPASTUsingDeclaration() { + } + + public CPPASTUsingDeclaration(IASTName name) { + setName(name); + } + + public void setIsTypename(boolean value) { this.typeName = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDeclaration#isTypename() - */ public boolean isTypename() { return typeName; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDeclaration#getName() - */ public IASTName getName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDeclaration#setName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public void setName(IASTName name) { this.name = name; + if (name != null) { + name.setParent(this); + name.setPropertyInParent(NAME); + } } public boolean accept( ASTVisitor action ){ @@ -79,9 +78,6 @@ public class CPPASTUsingDeclaration extends CPPASTNode implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ public int getRoleForName(IASTName n) { if( n == name ) return r_reference; 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 b00ab0a6a94..66405b8ce85 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 @@ -29,18 +29,24 @@ public class CPPASTUsingDirective extends CPPASTNode implements private IASTName name; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDirective#getQualifiedName() - */ - public IASTName getQualifiedName() { + public CPPASTUsingDirective() { + } + + public CPPASTUsingDirective(IASTName name) { + setQualifiedName(name); + } + + public IASTName getQualifiedName() { return name; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDirective#setQualifiedName(org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName) - */ public void setQualifiedName(IASTName qualifiedName) { this.name = qualifiedName; + if (qualifiedName != null) { + qualifiedName.setParent(this); + qualifiedName.setPropertyInParent(QUALIFIED_NAME); + } + } public boolean accept( ASTVisitor action ){ @@ -64,9 +70,7 @@ public class CPPASTUsingDirective extends CPPASTNode implements return true; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTNameOwner#getRoleForName(org.eclipse.cdt.core.dom.ast.IASTName) - */ + public int getRoleForName(IASTName n) { if( n == name ) return r_reference; 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 3ba61b239c3..aa320b975a3 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 @@ -16,21 +16,15 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisiblityLabel; /** * @author jcamelon */ -public class CPPASTVisibilityLabel extends CPPASTNode implements - ICPPASTVisiblityLabel { +public class CPPASTVisibilityLabel extends CPPASTNode implements ICPPASTVisiblityLabel { private int visibility; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisiblityLabel#getVisibility() - */ + public int getVisibility() { return visibility; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTVisiblityLabel#setVisibility(int) - */ public void setVisibility(int visibility) { this.visibility = 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 eccb3497e90..49def581d37 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 @@ -24,51 +24,59 @@ import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; */ public class CPPASTWhileStatement extends CPPASTNode implements ICPPASTWhileStatement, IASTAmbiguityParent { + private IASTExpression condition; private IASTStatement body; private IASTDeclaration condition2; private IScope scope; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTWhileStatement#getCondition() - */ - public IASTExpression getCondition() { + public CPPASTWhileStatement() { + } + + public CPPASTWhileStatement(IASTDeclaration condition, IASTStatement body) { + setConditionDeclaration(condition); + setBody(body); + } + + public CPPASTWhileStatement(IASTExpression condition, IASTStatement body) { + setCondition(condition); + setBody(body); + } + + public IASTExpression getCondition() { return condition; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTWhileStatement#setCondition(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setCondition(IASTExpression condition) { this.condition = condition; + if (condition != null) { + condition.setParent(this); + condition.setPropertyInParent(CONDITIONEXPRESSION); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTWhileStatement#getBody() - */ public IASTStatement getBody() { return body; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.IASTWhileStatement#setBody(org.eclipse.cdt.core.dom.ast.IASTStatement) - */ public void setBody(IASTStatement body) { this.body = body; + if (body != null) { + body.setParent(this); + body.setPropertyInParent(BODY); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTWhileStatement#getInitDeclaration() - */ public IASTDeclaration getConditionDeclaration() { return condition2; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTWhileStatement#setInit(org.eclipse.cdt.core.dom.ast.IASTDeclaration) - */ public void setConditionDeclaration(IASTDeclaration declaration) { condition2 = declaration; + if (declaration != null) { + declaration.setParent(this); + declaration.setPropertyInParent(CONDITIONDECLARATION); + } } public boolean accept( ASTVisitor action ){ diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java index c9770cedf93..b30c4d9e209 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java @@ -10,6 +10,7 @@ * Markus Schorn (Wind River Systems) * Bryan Wilkinson (QNX) - https://bugs.eclipse.org/bugs/show_bug.cgi?id=151207 * Ed Swartz (Nokia) + * Mike Kucera (IBM) - bug #206952 *******************************************************************************/ package org.eclipse.cdt.internal.core.dom.parser.cpp; @@ -43,14 +44,11 @@ import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.ast.IASTExpressionList; import org.eclipse.cdt.core.dom.ast.IASTExpressionStatement; import org.eclipse.cdt.core.dom.ast.IASTFieldDeclarator; -import org.eclipse.cdt.core.dom.ast.IASTFieldReference; -import org.eclipse.cdt.core.dom.ast.IASTForStatement; import org.eclipse.cdt.core.dom.ast.IASTFunctionCallExpression; import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator; import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition; import org.eclipse.cdt.core.dom.ast.IASTGotoStatement; import org.eclipse.cdt.core.dom.ast.IASTIdExpression; -import org.eclipse.cdt.core.dom.ast.IASTIfStatement; import org.eclipse.cdt.core.dom.ast.IASTInitializer; import org.eclipse.cdt.core.dom.ast.IASTInitializerExpression; import org.eclipse.cdt.core.dom.ast.IASTInitializerList; @@ -66,7 +64,6 @@ import org.eclipse.cdt.core.dom.ast.IASTPointerOperator; import org.eclipse.cdt.core.dom.ast.IASTProblem; import org.eclipse.cdt.core.dom.ast.IASTProblemDeclaration; import org.eclipse.cdt.core.dom.ast.IASTProblemExpression; -import org.eclipse.cdt.core.dom.ast.IASTProblemHolder; import org.eclipse.cdt.core.dom.ast.IASTProblemStatement; import org.eclipse.cdt.core.dom.ast.IASTProblemTypeId; import org.eclipse.cdt.core.dom.ast.IASTReturnStatement; @@ -74,10 +71,8 @@ import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier; import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration; import org.eclipse.cdt.core.dom.ast.IASTStandardFunctionDeclarator; import org.eclipse.cdt.core.dom.ast.IASTStatement; -import org.eclipse.cdt.core.dom.ast.IASTSwitchStatement; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IASTTypeId; -import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression; import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression; import org.eclipse.cdt.core.dom.ast.IASTWhileStatement; import org.eclipse.cdt.core.dom.ast.IBinding; @@ -90,7 +85,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCatchHandler; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorChainInitializer; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorInitializer; -import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConversionName; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeleteExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTElaboratedTypeSpecifier; @@ -170,15 +164,13 @@ import org.eclipse.cdt.internal.core.parser.token.TokenFactory; public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { private static final String CONST_CAST = "const_cast"; //$NON-NLS-1$ - private static final String REINTERPRET_CAST = "reinterpret_cast"; //$NON-NLS-1$ - private static final String STATIC_CAST = "static_cast"; //$NON-NLS-1$ - private static final String DYNAMIC_CAST = "dynamic_cast"; //$NON-NLS-1$ private static final int DEFAULT_CATCH_HANDLER_LIST_SIZE = 4; + private ScopeStack templateIdScopes = new ScopeStack(); private int templateCount = 0; @@ -350,8 +342,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { */ protected ITokenDuple name() throws BacktrackException, EndOfFileException { - TemplateParameterManager argumentList = TemplateParameterManager - .getInstance(); + TemplateParameterManager argumentList = TemplateParameterManager.getInstance(); try { IToken first = LA(1); @@ -430,8 +421,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { * @throws BacktrackException */ protected IToken consumeTemplateArguments(IToken last, - TemplateParameterManager argumentList) throws EndOfFileException, - BacktrackException { + TemplateParameterManager argumentList) throws EndOfFileException, BacktrackException { if (LT(1) == IToken.tLT) { IToken secondMark = mark(); consume(); @@ -442,8 +432,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { case IToken.tGT: case IToken.tEOC: last = consume(); - if( LT(1) == IToken.tINTEGER || LT(1) == IToken.tFLOATINGPT ) - { + if( LT(1) == IToken.tINTEGER || LT(1) == IToken.tFLOATINGPT ) { backup( secondMark ); return last; } @@ -601,8 +590,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { break; } IToken la = LA(1); - throwBacktrack(startingOffset, la.getEndOffset() - - startingOffset); + throwBacktrack(startingOffset, la.getEndOffset() - startingOffset); } if (t == LA(1)) @@ -619,8 +607,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { p2m.setConst(isConst); p2m.setVolatile(isVolatile); p2m.setName(name); - name.setParent(p2m); - name.setPropertyInParent(ICPPASTPointerToMember.NAME); if (isRestrict) { IGPPASTPointerToMember newPo = (IGPPASTPointerToMember) p2m; newPo.setRestrict(isRestrict); @@ -630,9 +616,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } else { po = createPointer(isRestrict); - ((ASTNode) po).setOffsetAndLength(starOffset, last - .getEndOffset() - - starOffset); + ((ASTNode) po).setOffsetAndLength(starOffset, last.getEndOffset() - starOffset); ((IASTPointer) po).setConst(isConst); ((IASTPointer) po).setVolatile(isVolatile); if (isRestrict) { @@ -768,8 +752,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { * @param expression * @throws BacktrackException */ - protected IASTExpression relationalExpression() throws BacktrackException, - EndOfFileException { + protected IASTExpression relationalExpression() throws BacktrackException, EndOfFileException { IASTExpression firstExpression = shiftExpression(); for (;;) { @@ -1028,25 +1011,14 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTTypeId result = createTypeId(); ((ASTNode) result).setOffsetAndLength(startingOffset, figureEndOffset( - declSpecifier, declarator) - - startingOffset); + declSpecifier, declarator) - startingOffset); result.setDeclSpecifier(declSpecifier); - declSpecifier.setParent(result); - declSpecifier.setPropertyInParent(IASTTypeId.DECL_SPECIFIER); - - if (declarator != null) { - result.setAbstractDeclarator(declarator); - declarator.setParent(result); - declarator.setPropertyInParent(IASTTypeId.ABSTRACT_DECLARATOR); - } + result.setAbstractDeclarator(declarator); return result; } - /** - * @return - */ protected IASTTypeId createTypeId() { return new CPPASTTypeId(); } @@ -1081,8 +1053,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { deleteExpression.setIsGlobal(global); deleteExpression.setIsVectored(vectored); deleteExpression.setOperand(castExpression); - castExpression.setParent(deleteExpression); - castExpression.setPropertyInParent(ICPPASTDeleteExpression.OPERAND); return deleteExpression; } @@ -1106,8 +1076,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { * expression ] directnewdeclarator [ constantexpression ] * newinitializer: ( expressionlist? ) */ - protected IASTExpression newExpression() throws BacktrackException, - EndOfFileException { + protected IASTExpression newExpression() throws BacktrackException, EndOfFileException { IToken la = LA(1); int startingOffset = la.getOffset(); int lastOffset = 0; @@ -1245,14 +1214,8 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { result.setIsGlobal(isGlobal); result.setIsNewTypeId(isNewTypeId); result.setTypeId(typeId); - typeId.setParent(result); - typeId - .setPropertyInParent(ICPPASTNewExpression.TYPE_ID); if (newPlacementExpressions != null) { result.setNewPlacement(newPlacementExpressions); - newPlacementExpressions.setParent(result); - newPlacementExpressions - .setPropertyInParent(ICPPASTNewExpression.NEW_PLACEMENT); } return result; } @@ -1285,14 +1248,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { if (typeId != null) { result.setIsNewTypeId(isNewTypeId); result.setTypeId(typeId); - typeId.setParent(result); - typeId.setPropertyInParent(ICPPASTNewExpression.TYPE_ID); } if (newPlacementExpressions != null) { result.setNewPlacement(newPlacementExpressions); - newPlacementExpressions.setParent(result); - newPlacementExpressions - .setPropertyInParent(ICPPASTNewExpression.NEW_PLACEMENT); } while (LT(1) == IToken.tLBRACKET) { @@ -1306,9 +1264,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTExpression a = assignmentExpression(); lastOffset = consume(IToken.tRBRACKET).getEndOffset(); result.addNewTypeIdArrayExpression(a); - a.setParent(result); - a - .setPropertyInParent(ICPPASTNewExpression.NEW_TYPEID_ARRAY_EXPRESSION); if (templateIdScopes.size() > 0) { templateIdScopes.pop(); @@ -1339,9 +1294,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } if (newInitializerExpressions != null) { result.setNewInitializer(newInitializerExpressions); - newInitializerExpressions.setParent(result); - newInitializerExpressions - .setPropertyInParent(ICPPASTNewExpression.NEW_INITIALIZER); } } @@ -1444,12 +1396,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ((ASTNode) result).setOffsetAndLength(o, lastOffset - o); result.setIsTemplate(templateTokenConsumed); result.setName(name); - name.setParent(result); - name.setPropertyInParent(ICPPASTTypenameExpression.TYPENAME); result.setInitialValue(expressionList); - expressionList.setParent(result); - expressionList - .setPropertyInParent(ICPPASTTypenameExpression.INITIAL_VALUE); firstExpression = result; break; // simple-type-specifier ( assignment-expression , .. ) @@ -1531,11 +1478,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ICPPASTUnaryExpression.op_typeid, (IASTExpression) n[1], so, lastOffset); ambExpr.addExpression(e1); - e1.setParent(ambExpr); - e1.setPropertyInParent(IASTAmbiguousExpression.SUBEXPRESSION); ambExpr.addExpression(e2); - e2.setParent(ambExpr); - e2.setPropertyInParent(IASTAmbiguousExpression.SUBEXPRESSION); ((ASTNode) ambExpr).setOffsetAndLength((ASTNode) e2); firstExpression = ambExpr; break; @@ -1570,16 +1513,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTArraySubscriptExpression s = createArraySubscriptExpression(); ((ASTNode) s).setOffsetAndLength(((ASTNode) firstExpression) - .getOffset(), lastOffset - - ((ASTNode) firstExpression).getOffset()); + .getOffset(), lastOffset - ((ASTNode) firstExpression).getOffset()); s.setArrayExpression(firstExpression); - firstExpression.setParent(s); - firstExpression - .setPropertyInParent(IASTArraySubscriptExpression.ARRAY); s.setSubscriptExpression(secondExpression); - secondExpression.setParent(s); - secondExpression - .setPropertyInParent(IASTArraySubscriptExpression.SUBSCRIPT); firstExpression = s; break; case IToken.tLPAREN: @@ -1608,17 +1544,10 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTFunctionCallExpression fce = createFunctionCallExpression(); ((ASTNode) fce).setOffsetAndLength(((ASTNode) firstExpression) - .getOffset(), lastOffset - - ((ASTNode) firstExpression).getOffset()); + .getOffset(), lastOffset - ((ASTNode) firstExpression).getOffset()); fce.setFunctionNameExpression(firstExpression); - firstExpression.setParent(fce); - firstExpression - .setPropertyInParent(IASTFunctionCallExpression.FUNCTION_NAME); if (secondExpression != null) { fce.setParameterExpression(secondExpression); - secondExpression.setParent(fce); - secondExpression - .setPropertyInParent(IASTFunctionCallExpression.PARAMETERS); } firstExpression = fce; break; @@ -1651,18 +1580,11 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ICPPASTFieldReference fieldReference = createFieldReference(); ((ASTNode) fieldReference).setOffsetAndLength( ((ASTNode) firstExpression).getOffset(), - calculateEndOffset(name) - - ((ASTNode) firstExpression).getOffset()); + calculateEndOffset(name) - ((ASTNode) firstExpression).getOffset()); fieldReference.setIsTemplate(isTemplate); fieldReference.setIsPointerDereference(false); fieldReference.setFieldName(name); - name.setParent(fieldReference); - name.setPropertyInParent(IASTFieldReference.FIELD_NAME); - fieldReference.setFieldOwner(firstExpression); - firstExpression.setParent(fieldReference); - firstExpression - .setPropertyInParent(IASTFieldReference.FIELD_OWNER); firstExpression = fieldReference; break; case IToken.tARROW: @@ -1683,18 +1605,11 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { fieldReference = createFieldReference(); ((ASTNode) fieldReference).setOffsetAndLength( ((ASTNode) firstExpression).getOffset(), - calculateEndOffset(name) - - ((ASTNode) firstExpression).getOffset()); + calculateEndOffset(name) - ((ASTNode) firstExpression).getOffset()); fieldReference.setIsTemplate(isTemplate); fieldReference.setIsPointerDereference(true); fieldReference.setFieldName(name); - name.setParent(fieldReference); - name.setPropertyInParent(IASTFieldReference.FIELD_NAME); - fieldReference.setFieldOwner(firstExpression); - firstExpression.setParent(fieldReference); - firstExpression - .setPropertyInParent(IASTFieldReference.FIELD_OWNER); firstExpression = fieldReference; break; default: @@ -1707,30 +1622,18 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { return new CPPASTAmbiguousExpression(); } - /** - * @return - */ protected IASTArraySubscriptExpression createArraySubscriptExpression() { return new CPPASTArraySubscriptExpression(); } - /** - * @return - */ protected ICPPASTTypenameExpression createTypenameExpression() { return new CPPASTTypenameExpression(); } - /** - * @return - */ protected IASTFunctionCallExpression createFunctionCallExpression() { return new CPPASTFunctionCallExpression(); } - /** - * @return - */ protected ICPPASTFieldReference createFieldReference() { return new CPPASTFieldReference(); } @@ -1745,14 +1648,10 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { operand = expression(); int l = consume(IToken.tRPAREN).getEndOffset(); ICPPASTSimpleTypeConstructorExpression result = createSimpleTypeConstructorExpression(); - ((ASTNode) result).setOffsetAndLength(startingOffset, l - - startingOffset); + ((ASTNode) result).setOffsetAndLength(startingOffset, l - startingOffset); result.setSimpleType(operator); if (operand != null) { result.setInitialValue(operand); - operand.setParent(result); - operand - .setPropertyInParent(ICPPASTSimpleTypeConstructorExpression.INITIALIZER_VALUE); } return result; } @@ -1777,21 +1676,16 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { case IToken.tINTEGER: t = consume(); literalExpression = createLiteralExpression(); - literalExpression - .setKind(IASTLiteralExpression.lk_integer_constant); + literalExpression.setKind(IASTLiteralExpression.lk_integer_constant); literalExpression.setValue(t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t - .getEndOffset() - - t.getOffset()); + ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset()- t.getOffset()); return literalExpression; case IToken.tFLOATINGPT: t = consume(); literalExpression = createLiteralExpression(); literalExpression.setKind(IASTLiteralExpression.lk_float_constant); literalExpression.setValue(t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t - .getEndOffset() - - t.getOffset()); + ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); return literalExpression; case IToken.tSTRING: case IToken.tLSTRING: @@ -1799,9 +1693,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { literalExpression = createLiteralExpression(); literalExpression.setKind(IASTLiteralExpression.lk_string_literal); literalExpression.setValue(t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t - .getEndOffset() - - t.getOffset()); + ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); return literalExpression; case IToken.tCHAR: case IToken.tLCHAR: @@ -1809,27 +1701,21 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { literalExpression = createLiteralExpression(); literalExpression.setKind(IASTLiteralExpression.lk_char_constant); literalExpression.setValue(t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t - .getEndOffset() - - t.getOffset()); + ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); return literalExpression; case IToken.t_false: t = consume(); literalExpression = createLiteralExpression(); literalExpression.setKind(ICPPASTLiteralExpression.lk_false); literalExpression.setValue(t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t - .getEndOffset() - - t.getOffset()); + ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); return literalExpression; case IToken.t_true: t = consume(); literalExpression = createLiteralExpression(); literalExpression.setKind(ICPPASTLiteralExpression.lk_true); literalExpression.setValue(t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t - .getEndOffset() - - t.getOffset()); + ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); return literalExpression; case IToken.t_this: @@ -1837,9 +1723,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { literalExpression = createLiteralExpression(); literalExpression.setKind(ICPPASTLiteralExpression.lk_this); literalExpression.setValue(t.getImage()); - ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t - .getEndOffset() - - t.getOffset()); + ((ASTNode) literalExpression).setOffsetAndLength(t.getOffset(), t.getEndOffset() - t.getOffset()); return literalExpression; case IToken.tLPAREN: t = consume(); @@ -1857,9 +1741,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { if (templateIdScopes.size() > 0) { templateIdScopes.pop(); } - return buildUnaryExpression( - IASTUnaryExpression.op_bracketedPrimary, lhs, - t.getOffset(), finalOffset); + return buildUnaryExpression(IASTUnaryExpression.op_bracketedPrimary, lhs, t.getOffset(), finalOffset); case IToken.tIDENTIFIER: case IToken.tCOLONCOLON: case IToken.t_operator: @@ -1872,8 +1754,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { + ((ASTNode) name).getLength() - ((ASTNode) name).getOffset()); idExpression.setName(name); - name.setParent(idExpression); - name.setPropertyInParent(IASTIdExpression.ID_NAME); return idExpression; } default: @@ -1911,8 +1791,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IToken end = null; if (start.getType() == IToken.tIDENTIFIER) end = consumeTemplateParameters(null); - while (LT(1) == IToken.tCOLONCOLON - || LT(1) == IToken.tIDENTIFIER) { + while (LT(1) == IToken.tCOLONCOLON || LT(1) == IToken.tIDENTIFIER) { end = consume(); if (end.getType() == IToken.tIDENTIFIER) end = consumeTemplateParameters(end); @@ -1944,11 +1823,8 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTExpression lhs = expression(); int l = consume(IToken.tRPAREN).getEndOffset(); IASTCastExpression result = createCastExpression(); - ((ASTNode) result).setOffsetAndLength(startingOffset, l - - startingOffset); + ((ASTNode) result).setOffsetAndLength(startingOffset, l - startingOffset); result.setTypeId(typeID); - typeID.setParent(result); - typeID.setPropertyInParent(IASTCastExpression.TYPE_ID); result.setOperand(lhs); if (op.toString().equals(DYNAMIC_CAST)) { @@ -1963,8 +1839,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { result.setOperator(IASTCastExpression.op_cast); } - lhs.setParent(result); - lhs.setPropertyInParent(IASTCastExpression.OPERAND); return result; } @@ -1991,7 +1865,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { private static final int DEFAULT_CONSTRUCTOR_CHAIN_LIST_SIZE = 4; /** - * This is the standard cosntructor that we expect the Parser to be + * This is the standard constructor that we expect the Parser to be * instantiated with. * * @param mode @@ -2050,8 +1924,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { name = createName(name()); break; default: - throwBacktrack(firstToken.getOffset(), endOffset - - firstToken.getOffset()); + throwBacktrack(firstToken.getOffset(), endOffset - firstToken.getOffset()); } switch (LT(1)) { @@ -2064,11 +1937,8 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } ICPPASTUsingDirective astUD = createUsingDirective(); - ((ASTNode) astUD).setOffsetAndLength(firstToken.getOffset(), - endOffset - firstToken.getOffset()); + ((ASTNode) astUD).setOffsetAndLength(firstToken.getOffset(), endOffset - firstToken.getOffset()); astUD.setQualifiedName(name); - name.setParent(astUD); - name.setPropertyInParent(ICPPASTUsingDirective.QUALIFIED_NAME); return astUD; } @@ -2091,25 +1961,18 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } ICPPASTUsingDeclaration result = createUsingDeclaration(); - ((ASTNode) result).setOffsetAndLength(firstToken.getOffset(), end - - firstToken.getOffset()); + ((ASTNode) result).setOffsetAndLength(firstToken.getOffset(), end - firstToken.getOffset()); result.setIsTypename(typeName); result.setName(name); - name.setPropertyInParent(ICPPASTUsingDeclaration.NAME); - name.setParent(result); return result; } - /** - * @return - */ + protected ICPPASTUsingDeclaration createUsingDeclaration() { return new CPPASTUsingDeclaration(); } - /** - * @return - */ + protected ICPPASTUsingDirective createUsingDirective() { return new CPPASTUsingDirective(); } @@ -2146,20 +2009,12 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { try { IASTDeclaration d = declaration(); linkage.addDeclaration(d); - d.setParent(linkage); - d - .setPropertyInParent(ICPPASTLinkageSpecification.OWNED_DECLARATION); } catch (BacktrackException bt) { IASTProblem p = failParse(bt); IASTProblemDeclaration pd = createProblemDeclaration(); - p.setParent(pd); pd.setProblem(p); ((CPPASTNode) pd).setOffsetAndLength(((CPPASTNode) p)); - p.setPropertyInParent(IASTProblemHolder.PROBLEM); linkage.addDeclaration(pd); - pd.setParent(linkage); - pd - .setPropertyInParent(ICPPASTLinkageSpecification.OWNED_DECLARATION); errorHandling(); if (checkToken == LA(1).hashCode()) errorHandling(); @@ -2170,18 +2025,14 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } // consume the } int endOffset = consume(IToken.tRBRACE).getEndOffset(); - ((CPPASTNode) linkage) - .setLength(endOffset - firstToken.getOffset()); + ((CPPASTNode) linkage).setLength(endOffset - firstToken.getOffset()); return linkage; } // single declaration IASTDeclaration d = declaration(); linkage.addDeclaration(d); - d.setParent(linkage); - d.setPropertyInParent(ICPPASTLinkageSpecification.OWNED_DECLARATION); - ((CPPASTNode) linkage).setLength(calculateEndOffset(d) - - firstToken.getOffset()); + ((CPPASTNode) linkage).setLength(calculateEndOffset(d) - firstToken.getOffset()); return linkage; } @@ -2193,7 +2044,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } /** - * Represents the emalgamation of template declarations, template + * Represents the amalgamation of template declarations, template * instantiations and specializations in the ANSI C++ grammar. * template-declaration: export? template < template-parameter-list > * declaration explicit-instantiation: template declaration @@ -2241,16 +2092,13 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IGPPASTExplicitTemplateInstantiation temp = createGnuTemplateInstantiation(); switch (firstToken.getType()) { case IToken.t_static: - temp - .setModifier(IGPPASTExplicitTemplateInstantiation.ti_static); + temp.setModifier(IGPPASTExplicitTemplateInstantiation.ti_static); break; case IToken.t_extern: - temp - .setModifier(IGPPASTExplicitTemplateInstantiation.ti_extern); + temp.setModifier(IGPPASTExplicitTemplateInstantiation.ti_extern); break; case IToken.t_inline: - temp - .setModifier(IGPPASTExplicitTemplateInstantiation.ti_inline); + temp.setModifier(IGPPASTExplicitTemplateInstantiation.ti_inline); break; } templateInstantiation = temp; @@ -2259,12 +2107,8 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { try { IASTDeclaration d = declaration(); ((ASTNode) templateInstantiation).setOffsetAndLength(firstToken - .getOffset(), calculateEndOffset(d) - - firstToken.getOffset()); + .getOffset(), calculateEndOffset(d) - firstToken.getOffset()); templateInstantiation.setDeclaration(d); - d.setParent(templateInstantiation); - d - .setPropertyInParent(ICPPASTExplicitTemplateInstantiation.OWNED_DECLARATION); } finally { --templateCount; } @@ -2279,12 +2123,8 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { try { IASTDeclaration d = declaration(); ((ASTNode) templateSpecialization).setOffsetAndLength( - firstToken.getOffset(), calculateEndOffset(d) - - firstToken.getOffset()); + firstToken.getOffset(), calculateEndOffset(d) - firstToken.getOffset()); templateSpecialization.setDeclaration(d); - d.setParent(templateSpecialization); - d - .setPropertyInParent(ICPPASTTemplateSpecialization.OWNED_DECLARATION); } finally { --templateCount; } @@ -2303,14 +2143,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { calculateEndOffset(d) - firstToken.getOffset()); templateDecl.setExported(exported); templateDecl.setDeclaration(d); - d.setParent(templateDecl); - d.setPropertyInParent(ICPPASTTemplateDeclaration.OWNED_DECLARATION); for (int i = 0; i < parms.size(); ++i) { - ICPPASTTemplateParameter parm = (ICPPASTTemplateParameter) parms - .get(i); + ICPPASTTemplateParameter parm = (ICPPASTTemplateParameter) parms.get(i); templateDecl.addTemplateParamter(parm); - parm.setParent(templateDecl); - parm.setPropertyInParent(ICPPASTTemplateDeclaration.PARAMETER); } } finally @@ -2325,30 +2160,22 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } } - /** - * @return - */ + protected ICPPASTTemplateDeclaration createTemplateDeclaration() { return new CPPASTTemplateDeclaration(); } - /** - * @return - */ + protected ICPPASTTemplateSpecialization createTemplateSpecialization() { return new CPPASTTemplateSpecialization(); } - /** - * @return - */ + protected IGPPASTExplicitTemplateInstantiation createGnuTemplateInstantiation() { return new GPPASTExplicitTemplateInstantiation(); } - /** - * @return - */ + protected ICPPASTExplicitTemplateInstantiation createTemplateInstantiation() { return new CPPASTExplicitTemplateInstantiation(); } @@ -2389,15 +2216,14 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTName identifierName = null; IASTTypeId typeId = null; - if (LT(1) == IToken.tIDENTIFIER) // optional identifier - { + if (LT(1) == IToken.tIDENTIFIER) { // optional identifier identifierName = createName(identifier()); lastOffset = calculateEndOffset(identifierName); - if (LT(1) == IToken.tASSIGN) // optional = type-id - { + if (LT(1) == IToken.tASSIGN) { // optional = type-id consume(); typeId = typeId(false); // type-id - if (typeId == null) throw backtrack; + if (typeId == null) + throw backtrack; lastOffset = calculateEndOffset(typeId); } } else { @@ -2409,14 +2235,8 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { lastOffset - startingToken.getOffset()); parm.setParameterType(type); parm.setName(identifierName); - identifierName.setParent(parm); - identifierName - .setPropertyInParent(ICPPASTSimpleTypeTemplateParameter.PARAMETER_NAME); if (typeId != null) { parm.setDefaultType(typeId); - typeId.setParent(parm); - typeId - .setPropertyInParent(ICPPASTSimpleTypeTemplateParameter.DEFAULT_TYPE); } returnValue.add(parm); @@ -2430,12 +2250,10 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTName identifierName = null; IASTExpression optionalExpression = null; - if (LT(1) == IToken.tIDENTIFIER) // optional identifier - { + if (LT(1) == IToken.tIDENTIFIER) { // optional identifier identifierName = createName(identifier()); last = calculateEndOffset(identifierName); - if (LT(1) == IToken.tASSIGN) // optional = type-id - { + if (LT(1) == IToken.tASSIGN) { // optional = type-id consume(); optionalExpression = primaryExpression(); last = calculateEndOffset(optionalExpression); @@ -2444,26 +2262,15 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { identifierName = createName(); ICPPASTTemplatedTypeTemplateParameter parm = createTemplatedTemplateParameter(); - ((ASTNode) parm).setOffsetAndLength(firstToken.getOffset(), - last - firstToken.getOffset()); + ((ASTNode) parm).setOffsetAndLength(firstToken.getOffset(), last - firstToken.getOffset()); parm.setName(identifierName); - identifierName.setParent(parm); - identifierName - .setPropertyInParent(ICPPASTTemplatedTypeTemplateParameter.PARAMETER_NAME); if (optionalExpression != null) { parm.setDefaultValue(optionalExpression); - optionalExpression.setParent(parm); - optionalExpression - .setPropertyInParent(ICPPASTTemplatedTypeTemplateParameter.DEFAULT_VALUE); } for (int i = 0; i < subResult.size(); ++i) { - ICPPASTTemplateParameter p = (ICPPASTTemplateParameter) subResult - .get(i); + ICPPASTTemplateParameter p = (ICPPASTTemplateParameter) subResult.get(i); parm.addTemplateParamter(p); - p.setParent(parm); - p - .setPropertyInParent(ICPPASTTemplatedTypeTemplateParameter.PARAMETER); } returnValue.add(parm); @@ -2477,16 +2284,11 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } } - /** - * @return - */ + protected ICPPASTTemplatedTypeTemplateParameter createTemplatedTemplateParameter() { return new CPPASTTemplatedTypeTemplateParameter(); } - /** - * @return - */ protected ICPPASTSimpleTypeTemplateParameter createSimpleTemplateParameter() { return new CPPASTSimpleTypeTemplateParameter(); } @@ -2507,8 +2309,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { * @throws BacktrackException * request a backtrack */ - protected IASTDeclaration declaration() throws EndOfFileException, - BacktrackException { + protected IASTDeclaration declaration() throws EndOfFileException, BacktrackException { switch (LT(1)) { case IToken.t_asm: return asmDeclaration(); @@ -2537,8 +2338,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTDeclaration d1 = null, d2 = null; IToken after = null; try { - d1 = simpleDeclaration(SimpleDeclarationStrategy.TRY_FUNCTION, - false); + d1 = simpleDeclaration(SimpleDeclarationStrategy.TRY_FUNCTION, false); try { after = LA(1); } catch (EndOfFileException eof) { @@ -2568,8 +2368,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } if (sd.getDeclarators()[0] instanceof IASTStandardFunctionDeclarator) { - IASTStandardFunctionDeclarator fd = (IASTStandardFunctionDeclarator) sd - .getDeclarators()[0]; + IASTStandardFunctionDeclarator fd = (IASTStandardFunctionDeclarator) sd.getDeclarators()[0]; if (sd.getDeclSpecifier().getStorageClass() == IASTDeclSpecifier.sc_typedef) return d1; IASTParameterDeclaration[] parms = fd.getParameters(); @@ -2595,8 +2394,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { backup(simpleDeclarationMark); try { - d2 = simpleDeclaration(SimpleDeclarationStrategy.TRY_VARIABLE, - false); + d2 = simpleDeclaration(SimpleDeclarationStrategy.TRY_VARIABLE, false); if (after != null && after != LA(1)) { backup(after); return d1; @@ -2618,11 +2416,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTAmbiguousDeclaration result = createAmbiguousDeclaration(); ((CPPASTNode) result).setOffsetAndLength((ASTNode) d1); result.addDeclaration(d1); - d1.setParent(result); - d1.setPropertyInParent(IASTAmbiguousDeclaration.SUBDECLARATION); result.addDeclaration(d2); - d2.setParent(result); - d2.setPropertyInParent(IASTAmbiguousDeclaration.SUBDECLARATION); return result; } @@ -2664,8 +2458,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ICPPASTNamespaceDefinition namespaceDefinition = createNamespaceDefinition(); ((ASTNode) namespaceDefinition).setOffset(first.getOffset()); namespaceDefinition.setName(name); - name.setParent(namespaceDefinition); - name.setPropertyInParent(ICPPASTNamespaceDefinition.NAMESPACE_NAME); namespaceDeclarationLoop: while (true) { switch (LT(1)) { @@ -2676,21 +2468,13 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { int checkToken = LA(1).hashCode(); try { IASTDeclaration d = declaration(); - d.setParent(namespaceDefinition); - d - .setPropertyInParent(ICPPASTNamespaceDefinition.OWNED_DECLARATION); namespaceDefinition.addDeclaration(d); } catch (BacktrackException bt) { IASTProblem p = failParse(bt); IASTProblemDeclaration pd = createProblemDeclaration(); - p.setParent(pd); pd.setProblem(p); ((CPPASTNode) pd).setOffsetAndLength((CPPASTNode) p); - p.setPropertyInParent(IASTProblemHolder.PROBLEM); namespaceDefinition.addDeclaration(pd); - pd.setParent(namespaceDefinition); - pd - .setPropertyInParent(ICPPASTNamespaceDefinition.OWNED_DECLARATION); errorHandling(); if (checkToken == LA(1).hashCode()) errorHandling(); @@ -2702,15 +2486,13 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { // consume the } int end = consume().getEndOffset(); - ((CPPASTNode) namespaceDefinition).setLength(end - - first.getOffset()); + ((CPPASTNode) namespaceDefinition).setLength(end - first.getOffset()); return namespaceDefinition; } else if (LT(1) == IToken.tASSIGN) { IToken assign = consume(); if (name.toString() == null) { - throwBacktrack(first.getOffset(), assign.getEndOffset() - - first.getOffset()); + throwBacktrack(first.getOffset(), assign.getEndOffset() - first.getOffset()); return null; } @@ -2719,15 +2501,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { int end = consume(IToken.tSEMI).getEndOffset(); ICPPASTNamespaceAlias alias = createNamespaceAlias(); - ((ASTNode) alias).setOffsetAndLength(first.getOffset(), end - - first.getOffset()); + ((ASTNode) alias).setOffsetAndLength(first.getOffset(), end - first.getOffset()); alias.setAlias(name); - name.setParent(alias); - name.setPropertyInParent(ICPPASTNamespaceAlias.ALIAS_NAME); alias.setMappingName(qualifiedName); - qualifiedName.setParent(alias); - qualifiedName - .setPropertyInParent(ICPPASTNamespaceAlias.MAPPING_NAME); return alias; } else { throwBacktrack(first.getOffset(), last - first.getOffset()); @@ -2735,21 +2511,15 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } } - /** - * @return - */ + protected ICPPASTNamespaceAlias createNamespaceAlias() { return new CPPASTNamespaceAlias(); } - /** - * @param duple - * @return - */ + protected ICPPASTQualifiedName createQualifiedName(ITokenDuple duple) { CPPASTQualifiedName result = new CPPASTQualifiedName(); - result.setOffsetAndLength(duple.getStartOffset(), duple.getEndOffset() - - duple.getStartOffset()); + result.setOffsetAndLength(duple.getStartOffset(), duple.getEndOffset() - duple.getStartOffset()); result.setValue(duple.toString()); ITokenDuple[] segments = duple.getSegments(); int startingValue = 0; @@ -2769,16 +2539,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { // templateID subName = createTemplateID(segments[i]); - if (i == segments.length - 1 && duple instanceof OperatorTokenDuple) { // make - // sure - // the - // last - // segment - // is - // an - // OperatorName/ConversionName - subName = createOperatorName((OperatorTokenDuple) duple, - subName); + if (i == segments.length - 1 && duple instanceof OperatorTokenDuple) { + // make sure the last segment is an OperatorName/ConversionName + subName = createOperatorName((OperatorTokenDuple) duple, subName); } // bug 189299, 193152 indicate that there have been nested qualified names @@ -2787,14 +2550,10 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTName[] subNames= ((ICPPASTQualifiedName) subName).getNames(); for (int j = 0; j < subNames.length; j++) { subName = subNames[j]; - subName.setParent(result); - subName.setPropertyInParent(ICPPASTQualifiedName.SEGMENT_NAME); result.addName(subName); } } else { - subName.setParent(result); - subName.setPropertyInParent(ICPPASTQualifiedName.SEGMENT_NAME); ((ASTNode) subName).setOffsetAndLength(segments[i].getStartOffset(), segments[i].getEndOffset() - segments[i].getStartOffset()); result.addName(subName); @@ -2810,38 +2569,27 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { protected ICPPASTTemplateId createTemplateID(ITokenDuple duple) { ICPPASTTemplateId result = new CPPASTTemplateId(); ((ASTNode) result).setOffsetAndLength(duple.getStartOffset(), duple - .getEndOffset() - - duple.getStartOffset()); + .getEndOffset() - duple.getStartOffset()); char[] image = duple.extractNameFromTemplateId(); CPPASTName templateIdName = (CPPASTName) createName(); templateIdName.setOffsetAndLength(duple.getStartOffset(), image.length); templateIdName.setName(image); result.setTemplateName(templateIdName); - templateIdName.setParent(result); - templateIdName.setPropertyInParent(ICPPASTTemplateId.TEMPLATE_NAME); if (duple.getTemplateIdArgLists() != null) { List args = duple.getTemplateIdArgLists()[0]; if (args != null) for (int i = 0; i < args.size(); ++i) { IASTNode n = (IASTNode) args.get(i); - if (n instanceof IASTTypeId || n instanceof IASTExpression) { - n.setParent(result); - n - .setPropertyInParent(ICPPASTTemplateId.TEMPLATE_ID_ARGUMENT); - if (n instanceof IASTTypeId) - result.addTemplateArgument((IASTTypeId) n); - else - result.addTemplateArgument((IASTExpression) n); - } + if (n instanceof IASTTypeId) + result.addTemplateArgument((IASTTypeId) n); + else if(n instanceof IASTExpression) + result.addTemplateArgument((IASTExpression) n); } } return result; } - /** - * @param duple - * @return - */ + protected IASTName createName(ITokenDuple duple) { if (duple == null) return createName(); @@ -2871,21 +2619,17 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } ((ASTNode) name).setOffsetAndLength(duple.getStartOffset(), duple - .getEndOffset() - - duple.getStartOffset()); + .getEndOffset() - duple.getStartOffset()); return name; } - protected IASTName createOperatorName(OperatorTokenDuple duple, - IASTName name) { + protected IASTName createOperatorName(OperatorTokenDuple duple, IASTName name) { IASTName aName = null; if (duple.isConversionOperator()) { aName = new CPPASTConversionName(name.toCharArray()); IASTTypeId typeId = duple.getTypeId(); - typeId.setParent(aName); - typeId.setPropertyInParent(ICPPASTConversionName.TYPE_ID); ((CPPASTConversionName) aName).setTypeId(typeId); } else { aName = new CPPASTOperatorName(name.toCharArray()); @@ -2899,9 +2643,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { return aName; } - /** - * @return - */ + protected ICPPASTNamespaceDefinition createNamespaceDefinition() { return new CPPASTNamespaceDefinition(); } @@ -2940,27 +2682,20 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } catch (FoundDeclaratorException e) { tryAgain = true; declSpec = e.declSpec; - declarators = (IASTDeclarator[]) ArrayUtil - .append(IASTDeclarator.class, declarators, - e.declarator); + declarators = (IASTDeclarator[]) ArrayUtil.append(IASTDeclarator.class, declarators, e.declarator); backup( e.currToken ); } if (LT(1) != IToken.tSEMI && LT(1) != IToken.tEOC) { if( !tryAgain ) - declarators = (IASTDeclarator[]) ArrayUtil - .append(IASTDeclarator.class, declarators, - initDeclarator(strategy)); + declarators = (IASTDeclarator[]) ArrayUtil.append(IASTDeclarator.class, declarators, initDeclarator(strategy)); while (LT(1) == IToken.tCOMMA) { consume(); - declarators = (IASTDeclarator[]) ArrayUtil.append( - IASTDeclarator.class, declarators, - initDeclarator(strategy)); + declarators = (IASTDeclarator[]) ArrayUtil.append(IASTDeclarator.class, declarators, initDeclarator(strategy)); } } - declarators = (IASTDeclarator[]) ArrayUtil.removeNulls( - IASTDeclarator.class, declarators); + declarators = (IASTDeclarator[]) ArrayUtil.removeNulls(IASTDeclarator.class, declarators); boolean hasFunctionBody = false; boolean hasFunctionTryBlock = false; @@ -2978,15 +2713,13 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { case IToken.t_try: consume(); if (LT(1) == IToken.tCOLON) { - constructorChain = new ArrayList( - DEFAULT_CONSTRUCTOR_CHAIN_LIST_SIZE); + constructorChain = new ArrayList(DEFAULT_CONSTRUCTOR_CHAIN_LIST_SIZE); ctorInitializer(constructorChain); } hasFunctionTryBlock = true; break; case IToken.tCOLON: - constructorChain = new ArrayList( - DEFAULT_CONSTRUCTOR_CHAIN_LIST_SIZE); + constructorChain = new ArrayList(DEFAULT_CONSTRUCTOR_CHAIN_LIST_SIZE); ctorInitializer(constructorChain); hasFunctionBody = true; break; @@ -3021,68 +2754,42 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { if (!(declarator instanceof IASTStandardFunctionDeclarator)) throwBacktrack(firstOffset, LA(1).getEndOffset() - firstOffset); - if (!constructorChain.isEmpty() - && declarator instanceof ICPPASTFunctionDeclarator) { + if (!constructorChain.isEmpty() && declarator instanceof ICPPASTFunctionDeclarator) { ICPPASTFunctionDeclarator fd = (ICPPASTFunctionDeclarator) declarator; int size = constructorChain.size(); for (int i = 0; i < size; ++i) { - ICPPASTConstructorChainInitializer initializer = (ICPPASTConstructorChainInitializer) constructorChain - .get(i); + ICPPASTConstructorChainInitializer initializer = (ICPPASTConstructorChainInitializer) constructorChain.get(i); fd.addConstructorToChain(initializer); - initializer.setParent(fd); - initializer - .setPropertyInParent(ICPPASTFunctionDeclarator.CONSTRUCTOR_CHAIN_MEMBER); } // fix for 86698, now that the constructorChain is established, // update the declarator's length - if (fd instanceof ASTNode - && constructorChain.get(size - 1) instanceof ASTNode) { + if (fd instanceof ASTNode && constructorChain.get(size - 1) instanceof ASTNode) { ASTNode init = (ASTNode) constructorChain.get(size - 1); - ((ASTNode) fd).setLength(init.getOffset() - + init.getLength() - ((ASTNode) fd).getOffset()); + ((ASTNode) fd).setLength(init.getOffset() + init.getLength() - ((ASTNode) fd).getOffset()); } } IASTFunctionDefinition funcDefinition = createFunctionDefinition(); ((ASTNode) funcDefinition).setOffset(firstOffset); funcDefinition.setDeclSpecifier(declSpec); - declSpec.setParent(funcDefinition); - declSpec.setPropertyInParent(IASTFunctionDefinition.DECL_SPECIFIER); - - funcDefinition - .setDeclarator((IASTStandardFunctionDeclarator) declarator); - declarator.setParent(funcDefinition); - declarator.setPropertyInParent(IASTFunctionDefinition.DECLARATOR); + funcDefinition.setDeclarator((IASTStandardFunctionDeclarator) declarator); IASTStatement s = handleFunctionBody(); if (s != null) { funcDefinition.setBody(s); - s.setParent(funcDefinition); - s.setPropertyInParent(IASTFunctionDefinition.FUNCTION_BODY); } - ((CPPASTNode) funcDefinition).setLength(calculateEndOffset(s) - - firstOffset); + ((CPPASTNode) funcDefinition).setLength(calculateEndOffset(s) - firstOffset); - if (hasFunctionTryBlock - && declarator instanceof ICPPASTFunctionTryBlockDeclarator) { + if (hasFunctionTryBlock && declarator instanceof ICPPASTFunctionTryBlockDeclarator) { List handlers = new ArrayList(DEFAULT_CATCH_HANDLER_LIST_SIZE); catchHandlerSequence(handlers); for (int i = 0; i < handlers.size(); ++i) { - ICPPASTCatchHandler handler = (ICPPASTCatchHandler) handlers - .get(i); - ((ICPPASTFunctionTryBlockDeclarator) declarator) - .addCatchHandler(handler); - handler.setParent(declarator); - handler - .setPropertyInParent(ICPPASTFunctionTryBlockDeclarator.CATCH_HANDLER); - ((CPPASTNode) funcDefinition) - .setLength(calculateEndOffset(handler) - - firstOffset); - + ICPPASTCatchHandler handler = (ICPPASTCatchHandler) handlers.get(i); + ((ICPPASTFunctionTryBlockDeclarator) declarator).addCatchHandler(handler); + ((CPPASTNode) funcDefinition).setLength(calculateEndOffset(handler) - firstOffset); } - } return funcDefinition; } @@ -3094,28 +2801,19 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ((ASTNode) simpleDeclaration).setOffsetAndLength(firstOffset, length); simpleDeclaration.setDeclSpecifier(declSpec); - declSpec.setParent(simpleDeclaration); - declSpec.setPropertyInParent(IASTSimpleDeclaration.DECL_SPECIFIER); for (int i = 0; i < declarators.length; ++i) { - IASTDeclarator declarator = declarators[i]; - simpleDeclaration.addDeclarator(declarator); - declarator.setParent(simpleDeclaration); - declarator.setPropertyInParent(IASTSimpleDeclaration.DECLARATOR); + simpleDeclaration.addDeclarator(declarators[i]); } return simpleDeclaration; } - /** - * @return - */ + protected IASTFunctionDefinition createFunctionDefinition() { return new CPPASTFunctionDefinition(); } - /** - * @return - */ + protected IASTSimpleDeclaration createSimpleDeclaration() { return new CPPASTSimpleDeclaration(); } @@ -3165,18 +2863,11 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } ICPPASTConstructorChainInitializer ctorInitializer = createConstructorChainInitializer(); - ((ASTNode) ctorInitializer).setOffsetAndLength(duple - .getStartOffset(), end - duple.getStartOffset()); + ((ASTNode) ctorInitializer).setOffsetAndLength(duple.getStartOffset(), end - duple.getStartOffset()); ctorInitializer.setMemberInitializerId(name); - name.setParent(ctorInitializer); - name - .setPropertyInParent(ICPPASTConstructorChainInitializer.MEMBER_ID); if (expressionList != null) { ctorInitializer.setInitializerValue(expressionList); - expressionList.setParent(ctorInitializer); - expressionList - .setPropertyInParent(ICPPASTConstructorChainInitializer.INITIALIZER); } collection.add(ctorInitializer); @@ -3227,27 +2918,18 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } if (current == LA(1)) { - throwBacktrack(current.getOffset(), figureEndOffset(declSpec, - declarator) - - current.getOffset()); + throwBacktrack(current.getOffset(), figureEndOffset(declSpec, declarator) - current.getOffset()); } ICPPASTParameterDeclaration parm = createParameterDeclaration(); - ((ASTNode) parm).setOffsetAndLength(current.getOffset(), - figureEndOffset(declSpec, declarator) - current.getOffset()); + ((ASTNode) parm).setOffsetAndLength(current.getOffset(), figureEndOffset(declSpec, declarator) - current.getOffset()); parm.setDeclSpecifier(declSpec); - declSpec.setParent(parm); - declSpec.setPropertyInParent(IASTParameterDeclaration.DECL_SPECIFIER); if (declarator != null) { parm.setDeclarator(declarator); - declarator.setParent(parm); - declarator.setPropertyInParent(IASTParameterDeclaration.DECLARATOR); } return parm; } - /** - * @return - */ + protected ICPPASTParameterDeclaration createParameterDeclaration() { return new CPPASTParameterDeclaration(); } @@ -3348,8 +3030,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { case IToken.t_restrict: if (!supportRestrict) { IToken la = LA(1); - throwBacktrack(la.getOffset(), la.getEndOffset() - - la.getOffset()); + throwBacktrack(la.getOffset(), la.getEndOffset() - la.getOffset()); } isRestrict = true; last = consume(); @@ -3381,8 +3062,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { case IToken.t__Complex: if (!supportComplex) { IToken la = LA(1); - throwBacktrack(la.getOffset(), la.getEndOffset() - - la.getOffset()); + throwBacktrack(la.getOffset(), la.getEndOffset() - la.getOffset()); } last = consume(); isComplex=true; @@ -3455,14 +3135,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ICPPASTSimpleDeclSpecifier simpleDeclSpec = null; if (isLongLong || typeofExpression != null) { simpleDeclSpec = createGPPSimpleDeclSpecifier(); - ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec) - .setLongLong(isLongLong); + ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec).setLongLong(isLongLong); if (typeofExpression != null) { - ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec) - .setTypeofExpression(typeofExpression); - typeofExpression.setParent(simpleDeclSpec); - typeofExpression - .setPropertyInParent(IGPPASTSimpleDeclSpecifier.TYPEOF_EXPRESSION); + ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec).setTypeofExpression(typeofExpression); } } else simpleDeclSpec = createSimpleDeclSpecifier(); @@ -3471,8 +3146,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ((ASTNode) simpleDeclSpec).setOffsetAndLength((ASTNode) typeofExpression); } else { int l = last != null ? last.getEndOffset() - firstToken.getOffset() : 0; - ((ASTNode) simpleDeclSpec) - .setOffsetAndLength(firstToken.getOffset(), l); + ((ASTNode) simpleDeclSpec).setOffsetAndLength(firstToken.getOffset(), l); } simpleDeclSpec.setConst(isConst); simpleDeclSpec.setVolatile(isVolatile); @@ -3492,7 +3166,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { simpleDeclSpec.setSigned(isSigned); fde.declSpec = simpleDeclSpec; throw fde; - } duple = name(); @@ -3564,8 +3237,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { elabSpec.setStorageClass(storageClass); elabSpec.setVirtual(isVirtual); elabSpec.setExplicit(isExplicit); - ((CPPASTNode) elabSpec).setOffsetAndLength(startOffset, - calculateEndOffset(elabSpec) - startOffset); + ((CPPASTNode) elabSpec).setOffsetAndLength(startOffset, calculateEndOffset(elabSpec) - startOffset); return elabSpec; } if (enumSpec != null) { @@ -3578,8 +3250,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ((ICPPASTDeclSpecifier) enumSpec).setExplicit(isExplicit); enumSpec.setInline(isInline); enumSpec.setStorageClass(storageClass); - ((CPPASTNode) enumSpec).setOffsetAndLength(startOffset, - calculateEndOffset(enumSpec) - startOffset); + ((CPPASTNode) enumSpec).setOffsetAndLength(startOffset, calculateEndOffset(enumSpec) - startOffset); return (ICPPASTDeclSpecifier) enumSpec; } if (classSpec != null) { @@ -3592,8 +3263,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { classSpec.setStorageClass(storageClass); classSpec.setVirtual(isVirtual); classSpec.setExplicit(isExplicit); - ((CPPASTNode) classSpec).setOffsetAndLength(startOffset, - calculateEndOffset(classSpec) - startOffset); + ((CPPASTNode) classSpec).setOffsetAndLength(startOffset, calculateEndOffset(classSpec) - startOffset); return classSpec; } if (duple != null) { @@ -3601,9 +3271,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { nameSpec.setIsTypename(isTypename); IASTName name = createName(duple); nameSpec.setName(name); - name.setParent(nameSpec); - name.setPropertyInParent(IASTNamedTypeSpecifier.NAME); - nameSpec.setConst(isConst); nameSpec.setVolatile(isVolatile); if (nameSpec instanceof IGPPASTDeclSpecifier) @@ -3613,26 +3280,17 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { nameSpec.setStorageClass(storageClass); nameSpec.setVirtual(isVirtual); nameSpec.setExplicit(isExplicit); - ((CPPASTNode) nameSpec).setOffsetAndLength(startOffset, last - .getEndOffset() - - startOffset); + ((CPPASTNode) nameSpec).setOffsetAndLength(startOffset, last.getEndOffset() - startOffset); return nameSpec; } ICPPASTSimpleDeclSpecifier simpleDeclSpec = null; if (isComplex || isImaginary || isLongLong || typeofExpression != null) { simpleDeclSpec = createGPPSimpleDeclSpecifier(); - ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec) - .setLongLong(isLongLong); - ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec) - .setComplex(isComplex); - ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec) - .setImaginary(isImaginary); + ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec).setLongLong(isLongLong); + ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec).setComplex(isComplex); + ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec).setImaginary(isImaginary); if (typeofExpression != null) { - ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec) - .setTypeofExpression(typeofExpression); - typeofExpression.setParent(simpleDeclSpec); - typeofExpression - .setPropertyInParent(IGPPASTSimpleDeclSpecifier.TYPEOF_EXPRESSION); + ((IGPPASTSimpleDeclSpecifier) simpleDeclSpec).setTypeofExpression(typeofExpression); } } else simpleDeclSpec = createSimpleDeclSpecifier(); @@ -3641,8 +3299,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ((ASTNode) simpleDeclSpec).setOffsetAndLength((ASTNode) typeofExpression); } else { int l = last != null ? last.getEndOffset() - firstToken.getOffset() : 0; - ((ASTNode) simpleDeclSpec) - .setOffsetAndLength(firstToken.getOffset(), l); + ((ASTNode) simpleDeclSpec).setOffsetAndLength(firstToken.getOffset(), l); } simpleDeclSpec.setConst(isConst); simpleDeclSpec.setVolatile(isVolatile); @@ -3664,23 +3321,17 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { return simpleDeclSpec; } - /** - * @return - */ + protected ICPPASTSimpleDeclSpecifier createGPPSimpleDeclSpecifier() { return new GPPASTSimpleDeclSpecifier(); } - /** - * @return - */ + protected ICPPASTSimpleDeclSpecifier createSimpleDeclSpecifier() { return new CPPASTSimpleDeclSpecifier(); } - /** - * @return - */ + protected IASTNamedTypeSpecifier createNamedTypeSpecifier() { return new CPPASTNamedTypeSpecifier(); } @@ -3721,24 +3372,18 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTName name = createName(name()); ICPPASTElaboratedTypeSpecifier elaboratedTypeSpec = createElaboratedTypeSpecifier(); - ((ASTNode) elaboratedTypeSpec).setOffsetAndLength(t.getOffset(), - calculateEndOffset(name) - t.getOffset()); + ((ASTNode) elaboratedTypeSpec).setOffsetAndLength(t.getOffset(), calculateEndOffset(name) - t.getOffset()); elaboratedTypeSpec.setKind(eck); elaboratedTypeSpec.setName(name); - name.setParent(elaboratedTypeSpec); - name.setPropertyInParent(IASTElaboratedTypeSpecifier.TYPE_NAME); return elaboratedTypeSpec; } - /** - * @return - */ + protected ICPPASTElaboratedTypeSpecifier createElaboratedTypeSpecifier() { return new CPPASTElaboratedTypeSpecifier(); } - protected IASTDeclarator initDeclarator() throws EndOfFileException, - BacktrackException { + protected IASTDeclarator initDeclarator() throws EndOfFileException, BacktrackException { return initDeclarator(SimpleDeclarationStrategy.TRY_FUNCTION); } @@ -3762,10 +3407,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTInitializer initializer = optionalCPPInitializer(d); if (initializer != null) { d.setInitializer(initializer); - initializer.setParent(d); - initializer.setPropertyInParent(IASTDeclarator.INITIALIZER); - ((ASTNode) d).setLength(calculateEndOffset(initializer) - - ((ASTNode) d).getOffset()); + ((ASTNode) d).setLength(calculateEndOffset(initializer) - ((ASTNode) d).getOffset()); } return d; } @@ -3801,26 +3443,18 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ICPPASTConstructorInitializer result = createConstructorInitializer(); ((ASTNode) result).setOffsetAndLength(o, l - o); result.setExpression(astExpression); - astExpression.setParent(result); - astExpression - .setPropertyInParent(ICPPASTConstructorInitializer.EXPRESSION); return result; } return null; } - /** - * @return - */ + protected ICPPASTConstructorInitializer createConstructorInitializer() { return new CPPASTConstructorInitializer(); } - /** - * - */ - protected IASTInitializer initializerClause() throws EndOfFileException, - BacktrackException { + + protected IASTInitializer initializerClause() throws EndOfFileException, BacktrackException { if (LT(1) == IToken.tLBRACE) { int startingOffset = consume().getOffset(); @@ -3842,9 +3476,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTInitializer clause = initializerClause(); if (clause != null) { result.addInitializer(clause); - clause.setParent(result); - clause - .setPropertyInParent(IASTInitializerList.NESTED_INITIALIZER); } if (LT(1) == IToken.tRBRACE || LT(1) == IToken.tEOC) break; @@ -3862,22 +3493,15 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTInitializerExpression result = createInitializerExpression(); ((ASTNode) result).setOffsetAndLength(((ASTNode) assignmentExpression)); result.setExpression(assignmentExpression); - assignmentExpression.setParent(result); - assignmentExpression - .setPropertyInParent(IASTInitializerExpression.INITIALIZER_EXPRESSION); return result; } - /** - * @return - */ + protected IASTInitializerList createInitializerList() { return new CPPASTInitializerList(); } - /** - * @return - */ + protected IASTInitializerExpression createInitializerExpression() { return new CPPASTInitializerExpression(); } @@ -3925,8 +3549,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { __attribute_decl_seq(supportAttributeSpecifiers, supportDeclspecSpecifiers); if (!pointerOps.isEmpty()) - finalOffset = calculateEndOffset((IASTNode) pointerOps - .get(pointerOps.size() - 1)); + finalOffset = calculateEndOffset((IASTNode) pointerOps.get(pointerOps.size() - 1)); if (!forNewTypeId && LT(1) == IToken.tLPAREN) { IToken mark = mark(); @@ -3944,8 +3567,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { declaratorName = consumeTemplatedOperatorName(); finalOffset = calculateEndOffset(declaratorName); if (declaratorName instanceof ICPPASTQualifiedName - && ((ICPPASTQualifiedName) declaratorName) - .isConversionOrOperator()) + && ((ICPPASTQualifiedName) declaratorName).isConversionOrOperator()) isFunction = true; } catch (BacktrackException bt) { declaratorName = createName(); @@ -4013,16 +3635,13 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { finalOffset = last.getEndOffset(); break; default: - int endOffset = (last != null) ? last - .getEndOffset() : LA(1).getEndOffset(); + int endOffset = (last != null) ? last.getEndOffset() : LA(1).getEndOffset(); if (seenParameter) - throwBacktrack(startingOffset, endOffset - - startingOffset); + throwBacktrack(startingOffset, endOffset - startingOffset); IASTParameterDeclaration p = parameterDeclaration(); finalOffset = calculateEndOffset(p); if (parameters == Collections.EMPTY_LIST) - parameters = new ArrayList( - DEFAULT_PARM_LIST_SIZE); + parameters = new ArrayList(DEFAULT_PARM_LIST_SIZE); parameters.add(p); seenParameter = true; } @@ -4051,8 +3670,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { // parameter declaration, see // void getenv(name) const char * name; {} // This will be determined further below - while ((LT(1) == IToken.t_const || LT(1) == IToken.t_volatile) - && numCVModifiers < 2) { + while ((LT(1) == IToken.t_const || LT(1) == IToken.t_volatile) && numCVModifiers < 2) { IToken t = consume(); finalOffset = t.getEndOffset(); cvModifiers[numCVModifiers++] = t; @@ -4061,8 +3679,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { // check for throws clause here if (LT(1) == IToken.t_throw) { - exceptionSpecIds = new ArrayList( - DEFAULT_SIZE_EXCEPTIONS_LIST); + exceptionSpecIds = new ArrayList(DEFAULT_SIZE_EXCEPTIONS_LIST); consume(); // throw consume(IToken.tLPAREN); // ( boolean done = false; @@ -4085,10 +3702,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { before.getOffset(), before.getLength()); IASTProblemTypeId typeIdProblem = createTypeIDProblem(); typeIdProblem.setProblem(p); - ((CPPASTNode) typeIdProblem) - .setOffsetAndLength(((CPPASTNode) p)); - p.setParent(typeIdProblem); - p.setPropertyInParent(IASTProblemHolder.PROBLEM); + ((CPPASTNode) typeIdProblem).setOffsetAndLength(((CPPASTNode) p)); exceptionSpecIds.add(typeIdProblem); if (before == LA(1)) done = true; @@ -4134,8 +3748,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { arrayMods = new ArrayList(DEFAULT_POINTEROPS_LIST_SIZE); consumeArrayModifiers(arrayMods); if (!arrayMods.isEmpty()) - finalOffset = calculateEndOffset((IASTNode) arrayMods - .get(arrayMods.size() - 1)); + finalOffset = calculateEndOffset((IASTNode) arrayMods.get(arrayMods.size() - 1)); continue; case IToken.tCOLON: consume(); @@ -4166,11 +3779,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { fc = createFunctionDeclarator(); fc.setVarArgs(encounteredVarArgs); for (int i = 0; i < parameters.size(); ++i) { - IASTParameterDeclaration p = (IASTParameterDeclaration) parameters - .get(i); - p.setParent(fc); - p - .setPropertyInParent(IASTStandardFunctionDeclarator.FUNCTION_PARAMETER); + IASTParameterDeclaration p = (IASTParameterDeclaration) parameters.get(i); fc.addParameterDeclaration(p); } fc.setConst(isConst); @@ -4179,24 +3788,17 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { for (int i = 0; i < exceptionSpecIds.size(); ++i) { IASTTypeId typeId = (IASTTypeId) exceptionSpecIds.get(i); fc.addExceptionSpecificationTypeId(typeId); - typeId.setParent(fc); - typeId - .setPropertyInParent(ICPPASTFunctionDeclarator.EXCEPTION_TYPEID); } d = fc; } else if (arrayMods != Collections.EMPTY_LIST) { d = createArrayDeclarator(); for (int i = 0; i < arrayMods.size(); ++i) { IASTArrayModifier m = (IASTArrayModifier) arrayMods.get(i); - m.setParent(d); - m.setPropertyInParent(IASTArrayDeclarator.ARRAY_MODIFIER); ((IASTArrayDeclarator) d).addArrayModifier(m); } } else if (bitField != null) { IASTFieldDeclarator fl = createFieldDeclarator(); fl.setBitFieldSize(bitField); - bitField.setParent(fl); - bitField.setPropertyInParent(IASTFieldDeclarator.FIELD_SIZE); d = fl; } else { d = createDeclarator(); @@ -4204,22 +3806,15 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { for (int i = 0; i < pointerOps.size(); ++i) { IASTPointerOperator po = (IASTPointerOperator) pointerOps.get(i); d.addPointerOperator(po); - po.setParent(d); - po.setPropertyInParent(IASTDeclarator.POINTER_OPERATOR); } if (innerDecl != null) { d.setNestedDeclarator(innerDecl); - innerDecl.setParent(d); - innerDecl.setPropertyInParent(IASTDeclarator.NESTED_DECLARATOR); } if (declaratorName != null) { d.setName(declaratorName); - declaratorName.setParent(d); - declaratorName.setPropertyInParent(IASTDeclarator.DECLARATOR_NAME); } - ((ASTNode) d).setOffsetAndLength(startingOffset, finalOffset - - startingOffset); + ((ASTNode) d).setOffsetAndLength(startingOffset, finalOffset - startingOffset); return d; } @@ -4248,52 +3843,39 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { return false; } - /** - * @return - */ + protected IASTProblemTypeId createTypeIDProblem() { return new CPPASTProblemTypeId(); } - /** - * @return - */ + protected ICPPASTFunctionTryBlockDeclarator createTryBlockDeclarator() { return new CPPASTFunctionTryBlockDeclarator(); } - /** - * @return - */ + protected ICPPASTFunctionDeclarator createFunctionDeclarator() { return new CPPASTFunctionDeclarator(); } - /** - * @return - */ + protected IASTFieldDeclarator createFieldDeclarator() { return new CPPASTFieldDeclarator(); } - /** - * @return - */ + protected IASTDeclarator createArrayDeclarator() { return new CPPASTArrayDeclarator(); } - /** - * @return - */ + protected IASTDeclarator createDeclarator() { return new CPPASTDeclarator(); } protected IASTName consumeTemplatedOperatorName() throws EndOfFileException, BacktrackException { - TemplateParameterManager argumentList = TemplateParameterManager - .getInstance(); + TemplateParameterManager argumentList = TemplateParameterManager.getInstance(); try { if (LT(1) == IToken.t_operator) return operatorId(null, null); @@ -4313,8 +3895,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { end = consumeTemplateArguments(end, argumentList); } - while (LT(1) == IToken.tCOLONCOLON - || LT(1) == IToken.tIDENTIFIER) { + while (LT(1) == IToken.tCOLONCOLON || LT(1) == IToken.tIDENTIFIER) { end = consume(); if (end.getType() == IToken.tIDENTIFIER) { end = consumeTemplateArguments(end, argumentList); @@ -4398,8 +3979,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ((ASTNode) astClassSpecifier).setOffset(classKey.getOffset()); astClassSpecifier.setKey(classKind); astClassSpecifier.setName(name); - name.setParent(astClassSpecifier); - name.setPropertyInParent(IASTCompositeTypeSpecifier.TYPE_NAME); // base clause if (LT(1) == IToken.tCOLON) { @@ -4418,19 +3997,17 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IToken key = consume(); int l = consume(IToken.tCOLON).getEndOffset(); ICPPASTVisiblityLabel label = createVisibilityLabel(); - ((ASTNode) label).setOffsetAndLength(key.getOffset(), l - - key.getOffset()); + ((ASTNode) label).setOffsetAndLength(key.getOffset(), l - key.getOffset()); label.setVisibility(token2Visibility(key.getType())); astClassSpecifier.addMemberDeclaration(label); label.setParent(astClassSpecifier); - label - .setPropertyInParent(ICPPASTCompositeTypeSpecifier.VISIBILITY_LABEL); + // this overrides the MEMBER_DECLARATION property + label.setPropertyInParent(ICPPASTCompositeTypeSpecifier.VISIBILITY_LABEL); break; } case IToken.tRBRACE: { int l = consume().getEndOffset(); - ((ASTNode) astClassSpecifier).setLength(l - - classKey.getOffset()); + ((ASTNode) astClassSpecifier).setLength(l - classKey.getOffset()); break memberDeclarationLoop; } case IToken.tEOC: @@ -4440,20 +4017,12 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { try { IASTDeclaration d = declaration(); astClassSpecifier.addMemberDeclaration(d); - d.setParent(astClassSpecifier); - d - .setPropertyInParent(IASTCompositeTypeSpecifier.MEMBER_DECLARATION); } catch (BacktrackException bt) { IASTProblem p = failParse(bt); IASTProblemDeclaration pd = createProblemDeclaration(); pd.setProblem(p); ((CPPASTNode) pd).setOffsetAndLength(((CPPASTNode) p)); - p.setParent(pd); - p.setPropertyInParent(IASTProblemHolder.PROBLEM); astClassSpecifier.addMemberDeclaration(pd); - pd.setParent(astClassSpecifier); - pd - .setPropertyInParent(IASTCompositeTypeSpecifier.MEMBER_DECLARATION); if (checkToken == LA(1).hashCode()) errorHandling(); } @@ -4462,29 +4031,21 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { failParseWithErrorHandling(); } } - } return astClassSpecifier; } - /** - * @return - */ + protected ICPPASTCompositeTypeSpecifier createClassSpecifier() { return new CPPASTCompositeTypeSpecifier(); } - /** - * @return - */ + protected ICPPASTVisiblityLabel createVisibilityLabel() { return new CPPASTVisibilityLabel(); } - /** - * @param type - * @return - */ + protected int token2Visibility(int type) { switch (type) { case IToken.t_public: @@ -4567,20 +4128,11 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { consume(); ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier baseSpec = createBaseSpecifier(); if (firstToken != null) - ((ASTNode) baseSpec).setOffsetAndLength(firstToken - .getOffset(), last.getEndOffset() - - firstToken.getOffset()); + ((ASTNode) baseSpec).setOffsetAndLength(firstToken.getOffset(), last.getEndOffset() - firstToken.getOffset()); baseSpec.setVirtual(isVirtual); baseSpec.setVisibility(visibility); baseSpec.setName(name); - name.setParent(baseSpec); - name - .setPropertyInParent(ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier.NAME); - astClassSpec.addBaseSpecifier(baseSpec); - baseSpec.setParent(astClassSpec); - baseSpec - .setPropertyInParent(ICPPASTCompositeTypeSpecifier.BASE_SPECIFIER); isVirtual = false; visibility = 0; @@ -4594,20 +4146,11 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { name = createName(); baseSpec = createBaseSpecifier(); if (firstToken != null) - ((ASTNode) baseSpec).setOffsetAndLength(firstToken - .getOffset(), last.getEndOffset() - - firstToken.getOffset()); + ((ASTNode) baseSpec).setOffsetAndLength(firstToken.getOffset(), last.getEndOffset() - firstToken.getOffset()); baseSpec.setVirtual(isVirtual); baseSpec.setVisibility(visibility); baseSpec.setName(name); - name.setParent(baseSpec); - name - .setPropertyInParent(ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier.NAME); - astClassSpec.addBaseSpecifier(baseSpec); - baseSpec.setParent(astClassSpec); - baseSpec - .setPropertyInParent(ICPPASTCompositeTypeSpecifier.BASE_SPECIFIER); // fall through default: break baseSpecifierLoop; @@ -4655,16 +4198,12 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTProblemDeclaration pd = createProblemDeclaration(); pd.setProblem(p); ((CPPASTNode) pd).setOffsetAndLength(((CPPASTNode) p)); - p.setParent(pd); - p.setPropertyInParent(IASTProblemHolder.PROBLEM); decl = pd; } ICPPASTCatchHandler handler = createCatchHandler(); if (decl != null) { handler.setDeclaration(decl); - decl.setParent(handler); - decl.setPropertyInParent(ICPPASTCatchHandler.DECLARATION); } if (LT(1) != IToken.tEOC) { @@ -4674,9 +4213,6 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { handler.setIsCatchAll(isEllipsis); if (compoundStatement != null) { handler.setCatchBody(compoundStatement); - compoundStatement.setParent(handler); - compoundStatement - .setPropertyInParent(ICPPASTCatchHandler.CATCH_BODY); } } @@ -4706,20 +4242,15 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IToken curr = LA(1); IToken last = skipOverCompoundStatement(); IASTCompoundStatement cs = createCompoundStatement(); - ((ASTNode) cs).setOffsetAndLength(curr.getOffset(), last - .getEndOffset() - - curr.getOffset()); + ((ASTNode) cs).setOffsetAndLength(curr.getOffset(), last.getEndOffset() - curr.getOffset()); return cs; - } else if (mode == ParserMode.COMPLETION_PARSE - || mode == ParserMode.SELECTION_PARSE) { + } else if (mode == ParserMode.COMPLETION_PARSE || mode == ParserMode.SELECTION_PARSE) { if (scanner.isOnTopContext()) return compoundStatement(); IToken curr = LA(1); IToken last = skipOverCompoundStatement(); IASTCompoundStatement cs = createCompoundStatement(); - ((ASTNode) cs).setOffsetAndLength(curr.getOffset(), last - .getEndOffset() - - curr.getOffset()); + ((ASTNode) cs).setOffsetAndLength(curr.getOffset(), last.getEndOffset() - curr.getOffset()); return cs; } return compoundStatement(); @@ -4757,19 +4288,13 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { int checkOffset = LA(1).hashCode(); IASTDeclaration declaration = declaration(); translationUnit.addDeclaration(declaration); - declaration.setParent(translationUnit); - declaration - .setPropertyInParent(IASTTranslationUnit.OWNED_DECLARATION); if (LA(1).hashCode() == checkOffset) failParseWithErrorHandling(); } catch (EndOfFileException e) { if (translationUnit.getDeclarations().length != 0) { - CPPASTNode d = (CPPASTNode) translationUnit - .getDeclarations()[translationUnit - .getDeclarations().length - 1]; - ((CPPASTNode) translationUnit).setLength(d.getOffset() - + d.getLength()); + CPPASTNode d = (CPPASTNode) translationUnit.getDeclarations()[translationUnit.getDeclarations().length - 1]; + ((CPPASTNode) translationUnit).setLength(d.getOffset() + d.getLength()); } else ((CPPASTNode) translationUnit).setLength(0); break; @@ -4778,14 +4303,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { // Mark as failure and try to reach a recovery point IASTProblem p = failParse(b); IASTProblemDeclaration pd = createProblemDeclaration(); - p.setParent(pd); pd.setProblem(p); ((CPPASTNode) pd).setOffsetAndLength(((CPPASTNode) p)); - p.setPropertyInParent(IASTProblemHolder.PROBLEM); translationUnit.addDeclaration(pd); - pd.setParent(translationUnit); - pd - .setPropertyInParent(IASTTranslationUnit.OWNED_DECLARATION); errorHandling(); } catch (EndOfFileException e) { break; @@ -4814,16 +4334,12 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { translationUnit.setComments((IASTComment[]) ArrayUtil.trim(IASTComment.class, comments)); } - /** - * @return - */ + protected IASTProblemDeclaration createProblemDeclaration() { return new CPPASTProblemDeclaration(); } - /** - * @return - */ + protected CPPASTTranslationUnit createTranslationUnit() { return new CPPASTTranslationUnit(); } @@ -4850,89 +4366,45 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ((ASTNode) arrayMod).setOffsetAndLength(o, l - o); if (exp != null) { arrayMod.setConstantExpression(exp); - exp.setParent(arrayMod); - exp.setPropertyInParent(IASTArrayModifier.CONSTANT_EXPRESSION); } collection.add(arrayMod); } return; } - /** - * @return - */ + protected IASTArrayModifier createArrayModifier() { return new CPPASTArrayModifier(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#getTranslationUnit() - */ protected IASTTranslationUnit getTranslationUnit() { return translationUnit; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createCompoundStatement() - */ protected IASTCompoundStatement createCompoundStatement() { return new CPPASTCompoundStatement(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createBinaryExpression() - */ protected IASTBinaryExpression createBinaryExpression() { return new CPPASTBinaryExpression(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createConditionalExpression() - */ protected IASTConditionalExpression createConditionalExpression() { return new CPPASTConditionalExpression(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createUnaryExpression() - */ protected IASTUnaryExpression createUnaryExpression() { return new CPPASTUnaryExpression(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createCompoundStatementExpression() - */ protected IGNUASTCompoundStatementExpression createCompoundStatementExpression() { return new CPPASTCompoundStatementExpression(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createExpressionList() - */ protected IASTExpressionList createExpressionList() { return new CPPASTExpressionList(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createName(org.eclipse.cdt.core.parser.IToken) - */ protected IASTName createName(IToken token) { IASTName n = null; @@ -4953,174 +4425,97 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { return n; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createName() - */ protected IASTName createName() { return new CPPASTName(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createEnumerator() - */ protected IASTEnumerator createEnumerator() { return new CPPASTEnumerator(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#buildTypeIdExpression(int, - * org.eclipse.cdt.core.dom.ast.IASTTypeId, int) - */ + protected IASTExpression buildTypeIdExpression(int op, IASTTypeId typeId, int startingOffset, int endingOffset) { ICPPASTTypeIdExpression typeIdExpression = createTypeIdExpression(); - ((ASTNode) typeIdExpression).setOffsetAndLength(startingOffset, - endingOffset - startingOffset); + ((ASTNode) typeIdExpression).setOffsetAndLength(startingOffset, endingOffset - startingOffset); ((ASTNode) typeIdExpression).setLength(endingOffset - startingOffset); typeIdExpression.setOperator(op); typeIdExpression.setTypeId(typeId); - typeId.setParent(typeIdExpression); - typeId.setPropertyInParent(IASTTypeIdExpression.TYPE_ID); return typeIdExpression; } - /** - * @return - */ protected ICPPASTTypeIdExpression createTypeIdExpression() { return new CPPASTTypeIdExpression(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.parser2.AbstractGNUSourceCodeParser#createEnumerationSpecifier() - */ protected IASTEnumerationSpecifier createEnumerationSpecifier() { return new CPPASTEnumerationSpecifier(); } - /** - * @return - */ protected IASTLabelStatement createLabelStatement() { return new CPPASTLabelStatement(); } - /** - * @return - */ protected IASTGotoStatement createGoToStatement() { return new CPPASTGotoStatement(); } - /** - * @return - */ protected IASTReturnStatement createReturnStatement() { return new CPPASTReturnStatement(); } - /** - * @return - */ protected ICPPASTForStatement createForStatement() { return new CPPASTForStatement(); } - /** - * @return - */ protected IASTContinueStatement createContinueStatement() { return new CPPASTContinueStatement(); } - /** - * @return - */ protected IASTDoStatement createDoStatement() { return new CPPASTDoStatement(); } - /** - * @return - */ protected IASTBreakStatement createBreakStatement() { return new CPPASTBreakStatement(); } - /** - * @return - */ protected IASTWhileStatement createWhileStatement() { return new CPPASTWhileStatement(); } - /** - * @return - */ protected IASTNullStatement createNullStatement() { return new CPPASTNullStatement(); } - /** - * @return - */ protected ICPPASTSwitchStatement createSwitchStatement() { return new CPPASTSwitchStatement(); } - /** - * @return - */ protected ICPPASTIfStatement createIfStatement() { return new CPPASTIfStatement(); } - /** - * @return - */ protected IASTDefaultStatement createDefaultStatement() { return new CPPASTDefaultStatement(); } - /** - * @return - */ protected IASTCaseStatement createCaseStatement() { return new CPPASTCaseStatement(); } - /** - * @return - */ protected IASTExpressionStatement createExpressionStatement() { return new CPPASTExpressionStatement(); } - /** - * @return - */ protected IASTDeclarationStatement createDeclarationStatement() { return new CPPASTDeclarationStatement(); } - /** - * @return - */ protected IASTASMDeclaration createASMDirective() { return new CPPASTASMDeclaration(); } - /** - * @return - */ protected IASTCastExpression createCastExpression() { return new CPPASTCastExpression(); } @@ -5178,8 +4573,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { * @throws EndOfFileException * @throws BacktrackException */ - protected IASTStatement parseTryStatement() throws EndOfFileException, - BacktrackException { + protected IASTStatement parseTryStatement() throws EndOfFileException, BacktrackException { int startO = consume().getOffset(); IASTStatement tryBlock = compoundStatement(); List catchHandlers = new ArrayList(DEFAULT_CATCH_HANDLER_LIST_SIZE); @@ -5187,76 +4581,41 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ICPPASTTryBlockStatement tryStatement = createTryBlockStatement(); ((ASTNode) tryStatement).setOffset(startO); tryStatement.setTryBody(tryBlock); - tryBlock.setParent(tryStatement); - tryBlock.setPropertyInParent(ICPPASTTryBlockStatement.BODY); for (int i = 0; i < catchHandlers.size(); ++i) { - ICPPASTCatchHandler handler = (ICPPASTCatchHandler) catchHandlers - .get(i); + ICPPASTCatchHandler handler = (ICPPASTCatchHandler) catchHandlers.get(i); tryStatement.addCatchHandler(handler); - handler.setParent(tryStatement); - handler.setPropertyInParent(ICPPASTTryBlockStatement.CATCH_HANDLER); - ((ASTNode) tryStatement).setLength(calculateEndOffset(handler) - - startO); + ((ASTNode) tryStatement).setLength(calculateEndOffset(handler) - startO); } return tryStatement; } - /** - * @return - */ + protected ICPPASTTryBlockStatement createTryBlockStatement() { return new CPPASTTryBlockStatement(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.dom.parser.AbstractGNUSourceCodeParser#nullifyTranslationUnit() - */ protected void nullifyTranslationUnit() { translationUnit = null; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.dom.parser.AbstractGNUSourceCodeParser#createProblemStatement() - */ protected IASTProblemStatement createProblemStatement() { return new CPPASTProblemStatement(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.dom.parser.AbstractGNUSourceCodeParser#createProblemExpression() - */ protected IASTProblemExpression createProblemExpression() { return new CPPASTProblemExpression(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.dom.parser.AbstractGNUSourceCodeParser#createProblem(int, - * int, int) - */ protected IASTProblem createProblem(int signal, int offset, int length) { - IASTProblem result = new CPPASTProblem(signal, EMPTY_STRING, false, - true); + IASTProblem result = new CPPASTProblem(signal, EMPTY_STRING, false, true); ((ASTNode) result).setOffsetAndLength(offset, length); ((ASTNode) result).setLength(length); return result; } - /* - * (non-Javadoc) - * - * @see org.eclipse.cdt.internal.core.dom.parser.AbstractGNUSourceCodeParser#parseWhileStatement() - */ - protected IASTStatement parseWhileStatement() throws EndOfFileException, - BacktrackException { + + protected IASTStatement parseWhileStatement() throws EndOfFileException, BacktrackException { int startOffset = consume().getOffset(); consume(IToken.tLPAREN); IASTNode while_condition = cppStyleCondition(true); @@ -5278,21 +4637,12 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { (while_body != null ? calculateEndOffset(while_body) : LA(1).getEndOffset()) - startOffset); if (while_condition instanceof IASTExpression) { while_statement.setCondition((IASTExpression) while_condition); - while_condition.setParent(while_statement); - while_condition - .setPropertyInParent(IASTWhileStatement.CONDITIONEXPRESSION); } else if (while_condition instanceof IASTDeclaration) { - while_statement - .setConditionDeclaration((IASTDeclaration) while_condition); - while_condition.setParent(while_statement); - while_condition - .setPropertyInParent(ICPPASTWhileStatement.CONDITIONDECLARATION); + while_statement.setConditionDeclaration((IASTDeclaration) while_condition); } if (while_body != null) { while_statement.setBody(while_body); - while_body.setParent(while_statement); - while_body.setPropertyInParent(IASTWhileStatement.BODY); } return while_statement; @@ -5303,8 +4653,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { * @param expectSemi TODO * @return */ - protected IASTNode cppStyleCondition(boolean expectSemi) throws BacktrackException, - EndOfFileException { + protected IASTNode cppStyleCondition(boolean expectSemi) throws BacktrackException, EndOfFileException { IToken mark = mark(); try { IASTExpression e = expression(); @@ -5321,8 +4670,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } catch (BacktrackException bt) { backup(mark); try { - return simpleDeclaration( - SimpleDeclarationStrategy.TRY_VARIABLE, true); + return simpleDeclaration(SimpleDeclarationStrategy.TRY_VARIABLE, true); } catch (BacktrackException b) { failParse(); throwBacktrack(b); @@ -5354,8 +4702,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { * @throws EndOfFileException * @throws BacktrackException */ - protected IASTStatement parseIfStatement() throws EndOfFileException, - BacktrackException { + protected IASTStatement parseIfStatement() throws EndOfFileException, BacktrackException { ICPPASTIfStatement result = null; ICPPASTIfStatement if_statement = null; int start = LA(1).getOffset(); @@ -5370,18 +4717,12 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { // Completing in the condition ICPPASTIfStatement new_if = createIfStatement(); if (condition instanceof IASTExpression) - new_if - .setConditionExpression((IASTExpression) condition); + new_if.setConditionExpression((IASTExpression) condition); else if (condition instanceof IASTDeclaration) - new_if - .setConditionDeclaration((IASTDeclaration) condition); - condition.setParent(new_if); - condition.setPropertyInParent(IASTIfStatement.CONDITION); + new_if.setConditionDeclaration((IASTDeclaration) condition); if (if_statement != null) { if_statement.setElseClause(new_if); - new_if.setParent(if_statement); - new_if.setPropertyInParent(IASTIfStatement.ELSE); } return result != null ? result : new_if; } @@ -5390,10 +4731,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTProblem p = failParse(b); IASTProblemExpression ps = createProblemExpression(); ps.setProblem(p); - ((ASTNode) ps).setOffsetAndLength(((ASTNode) p).getOffset(), - ((ASTNode) p).getLength()); - p.setParent(ps); - p.setPropertyInParent(IASTProblemHolder.PROBLEM); + ((ASTNode) ps).setOffsetAndLength(((ASTNode) p).getOffset(), ((ASTNode) p).getLength()); condition = ps; if (LT(1) == IToken.tRPAREN) consume(); @@ -5408,31 +4746,17 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ICPPASTIfStatement new_if_statement = createIfStatement(); ((ASTNode) new_if_statement).setOffset(so); - if (condition != null && (condition instanceof IASTExpression || condition instanceof IASTDeclaration)) // shouldn't - // be - // possible - // but - // failure - // in - // condition() - // makes - // it - // so + if (condition != null && (condition instanceof IASTExpression || condition instanceof IASTDeclaration)) + // shouldn't be possible but failure in condition() makes it so { if( condition instanceof IASTExpression ) new_if_statement.setConditionExpression((IASTExpression) condition); else if( condition instanceof IASTDeclaration ) new_if_statement.setConditionDeclaration((IASTDeclaration) condition); - condition.setParent(new_if_statement); - condition.setPropertyInParent(IASTIfStatement.CONDITION); } if (thenClause != null) { new_if_statement.setThenClause(thenClause); - thenClause.setParent(new_if_statement); - thenClause.setPropertyInParent(IASTIfStatement.THEN); - ((ASTNode) new_if_statement) - .setLength(calculateEndOffset(thenClause) - - ((ASTNode) new_if_statement).getOffset()); + ((ASTNode) new_if_statement).setLength(calculateEndOffset(thenClause) - ((ASTNode) new_if_statement).getOffset()); } if (LT(1) == IToken.t_else) { consume(); @@ -5441,12 +4765,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { if (if_statement != null) { if_statement.setElseClause(new_if_statement); - new_if_statement.setParent(if_statement); - new_if_statement - .setPropertyInParent(IASTIfStatement.ELSE); - ((ASTNode) if_statement) - .setLength(calculateEndOffset(new_if_statement) - - ((ASTNode) if_statement).getOffset()); + ((ASTNode) if_statement).setLength(calculateEndOffset(new_if_statement) - ((ASTNode) if_statement).getOffset()); } if (result == null && if_statement != null) result = if_statement; @@ -5458,15 +4777,9 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } IASTStatement elseStatement = statement(); new_if_statement.setElseClause(elseStatement); - elseStatement.setParent(new_if_statement); - elseStatement.setPropertyInParent(IASTIfStatement.ELSE); if (if_statement != null) { if_statement.setElseClause(new_if_statement); - new_if_statement.setParent(if_statement); - new_if_statement.setPropertyInParent(IASTIfStatement.ELSE); - ((ASTNode) if_statement) - .setLength(calculateEndOffset(new_if_statement) - - ((ASTNode) if_statement).getOffset()); + ((ASTNode) if_statement).setLength(calculateEndOffset(new_if_statement) - ((ASTNode) if_statement).getOffset()); } else { if (result == null && if_statement != null) result = if_statement; @@ -5476,15 +4789,10 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } } else { if (thenClause != null) - ((ASTNode) new_if_statement) - .setLength(calculateEndOffset(thenClause) - start); + ((ASTNode) new_if_statement).setLength(calculateEndOffset(thenClause) - start); if (if_statement != null) { if_statement.setElseClause(new_if_statement); - new_if_statement.setParent(if_statement); - new_if_statement.setPropertyInParent(IASTIfStatement.ELSE); - ((ASTNode) new_if_statement) - .setLength(calculateEndOffset(new_if_statement) - - start); + ((ASTNode) new_if_statement).setLength(calculateEndOffset(new_if_statement) - start); } if (result == null && if_statement != null) result = if_statement; @@ -5566,23 +4874,15 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ICPPASTSwitchStatement switch_statement = createSwitchStatement(); ((ASTNode) switch_statement).setOffsetAndLength(startOffset, (switch_body != null ? calculateEndOffset(switch_body) : LA(1).getEndOffset()) - startOffset); - if( switch_condition instanceof IASTExpression ) - { + if( switch_condition instanceof IASTExpression ) { switch_statement.setControllerExpression((IASTExpression) switch_condition); - switch_condition.setParent(switch_statement); - switch_condition.setPropertyInParent(IASTSwitchStatement.CONTROLLER_EXP); } - else if( switch_condition instanceof IASTDeclaration ) - { + else if( switch_condition instanceof IASTDeclaration ) { switch_statement.setControllerDeclaration((IASTDeclaration) switch_condition); - switch_condition.setParent(switch_statement); - switch_condition.setPropertyInParent(ICPPASTSwitchStatement.CONTROLLER_DECLARATION); } if (switch_body != null) { switch_statement.setBody(switch_body); - switch_body.setParent(switch_statement); - switch_body.setPropertyInParent(IASTSwitchStatement.BODY); } return switch_statement; @@ -5636,42 +4936,29 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { IASTStatement for_body = null; if (LT(1) != IToken.tEOC) { for_body = statement(); - ((ASTNode) for_statement).setOffsetAndLength(startOffset, - calculateEndOffset(for_body) - startOffset); + ((ASTNode) for_statement).setOffsetAndLength(startOffset, calculateEndOffset(for_body) - startOffset); } for_statement.setInitializerStatement(init); - init.setParent(for_statement); - init.setPropertyInParent(IASTForStatement.INITIALIZER); if (for_condition != null) { - for_condition.setParent(for_statement); - if( for_condition instanceof IASTExpression ) - { + if( for_condition instanceof IASTExpression ) { for_statement.setConditionExpression((IASTExpression) for_condition); - for_condition.setPropertyInParent(IASTForStatement.CONDITION); } - else if( for_condition instanceof IASTDeclaration ) - { - for_statement.setConditionDeclaration((IASTDeclaration) for_condition); - for_condition.setPropertyInParent(ICPPASTForStatement.CONDITION_DECLARATION); + else if( for_condition instanceof IASTDeclaration ) { + for_statement.setConditionDeclaration((IASTDeclaration) for_condition); } } if (iterationExpression != null) { for_statement.setIterationExpression(iterationExpression); - iterationExpression.setParent(for_statement); - iterationExpression.setPropertyInParent(IASTForStatement.ITERATION); } if (for_body != null) { for_statement.setBody(for_body); - for_body.setParent(for_statement); - for_body.setPropertyInParent(IASTForStatement.BODY); } return for_statement; } - protected IASTComment createComment(IToken commentToken) - throws EndOfFileException { + protected IASTComment createComment(IToken commentToken) throws EndOfFileException { ASTComment comment = new ASTComment(commentToken); comment.setParent(translationUnit); return comment; 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 e7f7e48d1c6..82fbdc42823 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 @@ -21,16 +21,10 @@ public class GPPASTExplicitTemplateInstantiation extends private int mod; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTExplicitTemplateInstantiation#getModifier() - */ public int getModifier() { return mod; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTExplicitTemplateInstantiation#setModifier(int) - */ public void setModifier(int value) { this.mod = value; } 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 f8ab673fe2e..ea71a87fef6 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,16 +19,10 @@ public class GPPASTPointer extends CPPASTPointer implements IGPPASTPointer { private boolean isRestrict; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTPointer#isRestrict() - */ public boolean isRestrict() { return isRestrict; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTPointer#setRestrict(boolean) - */ public void setRestrict(boolean value) { isRestrict = value; } 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 948ecb3db38..5fe62b337da 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 @@ -26,44 +26,39 @@ public class GPPASTSimpleDeclSpecifier extends CPPASTSimpleDeclSpecifier private boolean imaginary=false; private IASTExpression typeOfExpression; - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTSimpleDeclSpecifier#isLongLong() - */ - public boolean isLongLong() { + + + public GPPASTSimpleDeclSpecifier() { + } + + public GPPASTSimpleDeclSpecifier(IASTExpression typeofExpression) { + setTypeofExpression(typeofExpression); + } + + public boolean isLongLong() { return longLong; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTSimpleDeclSpecifier#setLongLong(boolean) - */ public void setLongLong(boolean value) { longLong = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTDeclSpecifier#isRestrict() - */ public boolean isRestrict() { return restrict; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTDeclSpecifier#setRestrict(boolean) - */ public void setRestrict(boolean value) { restrict = value; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTSimpleDeclSpecifier#setTypeofExpression(org.eclipse.cdt.core.dom.ast.IASTExpression) - */ public void setTypeofExpression(IASTExpression typeofExpression) { typeOfExpression = typeofExpression; + if (typeofExpression != null) { + typeofExpression.setParent(this); + typeofExpression.setPropertyInParent(TYPEOF_EXPRESSION); + } } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.dom.ast.gnu.cpp.IGPPASTSimpleDeclSpecifier#getTypeofExpression() - */ public IASTExpression getTypeofExpression() { return typeOfExpression; }