Eclipse CDT
Pre-release 3.0

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.


Field Summary
static IASTNode[] EMPTY_NODE_ARRAY
           
 
Method Summary
 boolean accept(ASTVisitor visitor)
          Abstract method to be overridden by all subclasses.
 boolean contains(IASTNode node)
          Returns whether this node contains the given one.
 String getContainingFilename()
          Lightweight check for understanding what file we are in.
 IASTFileLocation getFileLocation()
          Computes a file location for the node.
 IASTNodeLocation[] getNodeLocations()
          Get the location of this node.
 IASTNode getParent()
          Get the parent node of this node in the tree.
 ASTNodeProperty getPropertyInParent()
          In order to properly understand the relationship between this child node and it's parent, a node property object is used.
 String getRawSignature()
          Returns the raw signature of the IASTNode before it is processed by the preprocessor.
 IASTTranslationUnit getTranslationUnit()
          Get the translation unit (master) node that is the ancestor of all nodes in this AST.
 boolean isPartOfTranslationUnitFile()
          Lightweight check to see whether this node is part of the root file.
 void setParent(IASTNode node)
          Set the parent node of this node in the tree.
 void setPropertyInParent(ASTNodeProperty property)
          Set the parent property of the node.
 

Field Detail

EMPTY_NODE_ARRAY

static final IASTNode[] EMPTY_NODE_ARRAY
Method Detail

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

Eclipse CDT
Pre-release 3.0

Copyright (c) IBM Corp. and others 2004. All Rights Reserved.