Package org.eclipse.cdt.core.dom.ast
Interface IASTFunctionDefinition
- All Superinterfaces:
IASTDeclaration,IASTNode
- All Known Subinterfaces:
ICPPASTFunctionDefinition,ICPPASTFunctionWithTryBlock
This is a function definition, i.e. it has a body.
- Restriction:
- This interface is not intended to be implemented by clients.
- Restriction:
- This interface is not intended to be extended by clients.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode
IASTNode.CopyStyle -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ASTNodePropertyDECL_SPECIFIERrepresents the relationship between aIASTFunctionDefinitionand itsIASTDeclSpecifier.static final ASTNodePropertyDECLARATORrepresents the relationship between aIASTFunctionDefinitionand itsIASTFunctionDeclarator.static final ASTNodePropertyFUNCTION_BODYrepresents the relationship between aIASTFunctionDefinitionand itsIASTStatement.Fields inherited from interface org.eclipse.cdt.core.dom.ast.IASTDeclaration
EMPTY_DECLARATION_ARRAYFields inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode
EMPTY_NODE_ARRAY -
Method Summary
Modifier and TypeMethodDescriptioncopy()Returns a mutable copy of the tree rooted at this node.copy(IASTNode.CopyStyle style) Returns a mutable copy of the tree rooted at this node.getBody()Returns the body of the function.Returns the function declarator of the function.Returns the decl specifier for the function.getScope()Get the logical IScope that the function definition body represents.voidsetBody(IASTStatement statement) Sets the body of the function.voidsetDeclarator(IASTFunctionDeclarator declarator) Sets the declarator for the function.voidsetDeclSpecifier(IASTDeclSpecifier declSpec) Set the decl specifier for the function.Methods inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode
accept, contains, getChildren, getContainingFilename, getFileLocation, getLeadingSyntax, getNodeLocations, getOriginalNode, getParent, getPropertyInParent, getRawSignature, getSyntax, getTrailingSyntax, getTranslationUnit, isActive, isFrozen, isPartOfTranslationUnitFile, setParent, setPropertyInParent
-
Field Details
-
DECL_SPECIFIER
DECL_SPECIFIERrepresents the relationship between aIASTFunctionDefinitionand itsIASTDeclSpecifier. -
DECLARATOR
DECLARATORrepresents the relationship between aIASTFunctionDefinitionand itsIASTFunctionDeclarator. -
FUNCTION_BODY
FUNCTION_BODYrepresents the relationship between aIASTFunctionDefinitionand itsIASTStatement.
-
-
Method Details
-
getDeclSpecifier
IASTDeclSpecifier getDeclSpecifier()Returns the decl specifier for the function. -
setDeclSpecifier
Set the decl specifier for the function.- Parameters:
declSpec-
-
getDeclarator
IASTFunctionDeclarator getDeclarator()Returns the function declarator of the function. Note, that the function declarator may contain nested declarators and may also nest within another declarator. In the latter case this function definition is always the parent of the outermost declarator.void (f)(int a); // has nested declarator void (f(int a)); // is nested in another declarator
-
setDeclarator
Sets the declarator for the function. Note, that the function declarator may contain nested declarators and may also nest within another declarator. In the latter case this function definition is set to be the parent of the outermost declarator.void (f)(int a); // has nested declarator void (f(int a)); // is nested in another declarator
- Parameters:
declarator-
-
getBody
IASTStatement getBody()Returns the body of the function. This is usually a compound statement but C++ also has a function try block. -
setBody
Sets the body of the function.- Parameters:
statement-
-
getScope
IScope getScope()Get the logical IScope that the function definition body represents.- Returns:
IScoperepresenting function body.
-
copy
IASTFunctionDefinition copy()Description copied from interface:IASTNodeReturns a mutable copy of the tree rooted at this node. The following postconditions hold:copy.getParent() == null copy.getPropertyInParent() == null copy.isFrozen() == false
Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.Calling this method is equivalent to
copy(CopyStyle.withoutLocations).- Specified by:
copyin interfaceIASTDeclaration- Specified by:
copyin interfaceIASTNode- Since:
- 5.1
-
copy
Description copied from interface:IASTNodeReturns a mutable copy of the tree rooted at this node. The following postconditions hold:copy.getParent() == null copy.getPropertyInParent() == null copy.isFrozen() == false
Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.- Specified by:
copyin interfaceIASTDeclaration- Specified by:
copyin interfaceIASTNode- Parameters:
style-IASTNode.CopyStylecreate a copy with or without locations. Please seeIASTNode.CopyStylefor restrictions on copies with Locations.- Since:
- 5.3
-