org.eclipse.cdt.core.dom.ast
Interface IASTNode
- All Known Subinterfaces:
- IASTArrayDeclarator, IASTArrayModifier, IASTArraySubscriptExpression, IASTASMDeclaration, IASTBinaryExpression, IASTBreakStatement, IASTCaseStatement, IASTCastExpression, IASTComment, IASTCompositeTypeSpecifier, IASTCompoundStatement, IASTConditionalExpression, IASTContinueStatement, IASTDeclaration, IASTDeclarationStatement, IASTDeclarator, IASTDeclSpecifier, IASTDefaultStatement, IASTDoStatement, IASTElaboratedTypeSpecifier, IASTEnumerationSpecifier, IASTEnumerationSpecifier.IASTEnumerator, IASTExpression, IASTExpressionList, IASTExpressionStatement, IASTFieldDeclarator, IASTFieldReference, IASTForStatement, IASTFunctionCallExpression, IASTFunctionDeclarator, IASTFunctionDefinition, IASTFunctionStyleMacroParameter, IASTGotoStatement, IASTIdExpression, IASTIfStatement, IASTInitializer, IASTInitializerExpression, IASTInitializerList, IASTLabelStatement, IASTLiteralExpression, IASTName, IASTNamedTypeSpecifier, IASTNullStatement, IASTParameterDeclaration, IASTPointer, IASTPointerOperator, IASTPreprocessorElifStatement, IASTPreprocessorElseStatement, IASTPreprocessorEndifStatement, IASTPreprocessorErrorStatement, IASTPreprocessorFunctionStyleMacroDefinition, IASTPreprocessorIfdefStatement, IASTPreprocessorIfndefStatement, IASTPreprocessorIfStatement, IASTPreprocessorIncludeStatement, IASTPreprocessorMacroDefinition, IASTPreprocessorMacroExpansion, IASTPreprocessorObjectStyleMacroDefinition, IASTPreprocessorPragmaStatement, IASTPreprocessorStatement, IASTPreprocessorUndefStatement, IASTProblem, IASTProblemDeclaration, IASTProblemExpression, IASTProblemStatement, IASTProblemTypeId, IASTReturnStatement, IASTSimpleDeclaration, IASTSimpleDeclSpecifier, IASTStandardFunctionDeclarator, IASTStatement, IASTSwitchStatement, IASTTranslationUnit, IASTTypeId, IASTTypeIdExpression, IASTUnaryExpression, IASTWhileStatement, ICASTArrayDesignator, ICASTArrayModifier, ICASTCompositeTypeSpecifier, ICASTDeclSpecifier, ICASTDesignatedInitializer, ICASTDesignator, ICASTElaboratedTypeSpecifier, ICASTEnumerationSpecifier, ICASTFieldDesignator, ICASTKnRFunctionDeclarator, ICASTPointer, ICASTSimpleDeclSpecifier, ICASTTypedefNameSpecifier, ICASTTypeIdInitializerExpression, ICPPASTAmbiguousTemplateArgument, ICPPASTBinaryExpression, ICPPASTCastExpression, ICPPASTCatchHandler, ICPPASTCompositeTypeSpecifier, ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier, ICPPASTConstructorChainInitializer, ICPPASTConstructorInitializer, ICPPASTConversionName, ICPPASTDeclSpecifier, ICPPASTDeleteExpression, ICPPASTElaboratedTypeSpecifier, ICPPASTExplicitTemplateInstantiation, ICPPASTFieldReference, ICPPASTForStatement, ICPPASTFunctionDeclarator, ICPPASTFunctionTryBlockDeclarator, ICPPASTIfStatement, ICPPASTLinkageSpecification, ICPPASTLiteralExpression, ICPPASTNamedTypeSpecifier, ICPPASTNamespaceAlias, ICPPASTNamespaceDefinition, ICPPASTNewExpression, ICPPASTOperatorName, ICPPASTParameterDeclaration, ICPPASTPointerToMember, ICPPASTQualifiedName, ICPPASTReferenceOperator, ICPPASTSimpleDeclSpecifier, ICPPASTSimpleTypeConstructorExpression, ICPPASTSimpleTypeTemplateParameter, ICPPASTSwitchStatement, ICPPASTTemplateDeclaration, ICPPASTTemplatedTypeTemplateParameter, ICPPASTTemplateId, ICPPASTTemplateParameter, ICPPASTTemplateSpecialization, ICPPASTTranslationUnit, ICPPASTTryBlockStatement, ICPPASTTypeIdExpression, ICPPASTTypenameExpression, ICPPASTUnaryExpression, ICPPASTUsingDeclaration, ICPPASTUsingDirective, ICPPASTVisibilityLabel, ICPPASTWhileStatement, IGCCASTArrayRangeDesignator, IGCCASTSimpleDeclSpecifier, IGNUASTCompoundStatementExpression, IGNUASTTypeIdExpression, IGNUASTUnaryExpression, IGPPASTBinaryExpression, IGPPASTDeclSpecifier, IGPPASTExplicitTemplateInstantiation, IGPPASTPointer, IGPPASTPointerToMember, IGPPASTSimpleDeclSpecifier
public interface IASTNode
This is the root node in the physical AST. A physical node represents a chunk
of text in the source program.
EMPTY_NODE_ARRAY
static final IASTNode[] EMPTY_NODE_ARRAY
getTranslationUnit
IASTTranslationUnit getTranslationUnit()
- Get the translation unit (master) node that is the ancestor of all nodes
in this AST.
- Returns:
IASTTranslationUnit
getNodeLocations
IASTNodeLocation[] getNodeLocations()
- Get the location of this node. In cases not involving macro expansions,
the IASTNodeLocation [] result will only have one element in it, and it
will be an IASTFileLocation or sub-interface.
Where the node is completely generated within a macro expansion,
IASTNodeLocation [] result will have one element in it, and it will be an
IASTMacroExpansionLocation
.
Nodes that span file context into a macro expansion (and potentially out
of the macro expansion again) result in an IASTNodeLocation [] result
that is of length > 1.
- Returns:
IASTNodeLocation []
getFileLocation
IASTFileLocation getFileLocation()
- Computes a file location for the node. When the node actually resides in a macro-expansion the
location of the expansion is returned. In case the node spans multiple files the location will
be in a common root file and will contain the appropriate include directives.
The method may return null
in case the node does not have a file-location. This is
for instance the case for built-in macro names or empty names for anonymous type declarations.
- Returns:
- the mapped file location or
null
.
getContainingFilename
String getContainingFilename()
- Lightweight check for understanding what file we are in.
- Returns:
String
absolute path
isPartOfTranslationUnitFile
boolean isPartOfTranslationUnitFile()
- Lightweight check to see whether this node is part of the root file.
- Since:
- 5.0
getParent
IASTNode getParent()
- Get the parent node of this node in the tree.
- Returns:
- the parent node of this node
setParent
void setParent(IASTNode node)
- Set the parent node of this node in the tree.
- Parameters:
node
- IASTNode
getPropertyInParent
ASTNodeProperty getPropertyInParent()
- In order to properly understand the relationship between this child node
and it's parent, a node property object is used.
- Returns:
ASTNodeProperty
setPropertyInParent
void setPropertyInParent(ASTNodeProperty property)
- Set the parent property of the node.
- Parameters:
property
-
accept
boolean accept(ASTVisitor visitor)
- Abstract method to be overridden by all subclasses. Necessary for
visitation of the tree using an
ASTVisitor
.
- Parameters:
visitor
-
- Returns:
- continue on (true) or quit( false )
getRawSignature
String getRawSignature()
- Returns the raw signature of the IASTNode before it is processed by the preprocessor.
Example:
#define ONE 1
int x=ONE; // getRawSignature() for this declaration would return "int x=ONE;"
- Returns:
- the raw signature of the IASTNode before it is processed by the preprocessor
contains
boolean contains(IASTNode node)
- Returns whether this node contains the given one. The decision is made
purely on location information and therefore the method is fast.
- Parameters:
node
- the node to check
- Returns:
- whether this node contains the given one.
- Since:
- 4.0
Copyright (c) IBM Corp. and others 2004. All Rights Reserved.