Interface IASTFunctionDefinition

All Superinterfaces:
IASTDeclaration, IASTNode
All Known Subinterfaces:
ICPPASTFunctionDefinition, ICPPASTFunctionWithTryBlock

public interface IASTFunctionDefinition extends IASTDeclaration
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.
  • Field Details

    • DECL_SPECIFIER

      static final ASTNodeProperty DECL_SPECIFIER
      DECL_SPECIFIER represents the relationship between a IASTFunctionDefinition and its IASTDeclSpecifier.
    • DECLARATOR

      static final ASTNodeProperty DECLARATOR
      DECLARATOR represents the relationship between a IASTFunctionDefinition and its IASTFunctionDeclarator.
    • FUNCTION_BODY

      static final ASTNodeProperty FUNCTION_BODY
      FUNCTION_BODY represents the relationship between a IASTFunctionDefinition and its IASTStatement.
  • Method Details

    • getDeclSpecifier

      IASTDeclSpecifier getDeclSpecifier()
      Returns the decl specifier for the function.
    • setDeclSpecifier

      void setDeclSpecifier(IASTDeclSpecifier declSpec)
      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

      void setDeclarator(IASTFunctionDeclarator declarator)
      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

      void setBody(IASTStatement statement)
      Sets the body of the function.
      Parameters:
      statement -
    • getScope

      IScope getScope()
      Get the logical IScope that the function definition body represents.
      Returns:
      IScope representing function body.
    • copy

      Description copied from interface: IASTNode
      Returns 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:
      copy in interface IASTDeclaration
      Specified by:
      copy in interface IASTNode
      Since:
      5.1
    • copy

      Description copied from interface: IASTNode
      Returns 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:
      copy in interface IASTDeclaration
      Specified by:
      copy in interface IASTNode
      Parameters:
      style - IASTNode.CopyStyle create a copy with or without locations. Please see IASTNode.CopyStyle for restrictions on copies with Locations.
      Since:
      5.3