Interface IASTName

All Superinterfaces:
IASTNode, IName
All Known Subinterfaces:
IASTImplicitDestructorName, IASTImplicitName, ICPPASTConversionName, ICPPASTName, ICPPASTOperatorName, ICPPASTQualifiedName, ICPPASTTemplateId, ICPPASTTemplateName

public interface IASTName extends IASTNode, IName
This class represents a name in the program that represents a semantic object in the program.
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Field Details

    • EMPTY_NAME_ARRAY

      static final IASTName[] EMPTY_NAME_ARRAY
      Constant sentinel.
  • Method Details

    • toCharArray

      char[] toCharArray()
      Returns the name including qualification and template arguments.
      Specified by:
      toCharArray in interface IName
    • toString

      String toString()
      Same as toCharArray().
      Overrides:
      toString in class Object
      Since:
      5.1
    • getBinding

      IBinding getBinding()
      Returns the semantic object attached to this name. May be null if this name has not yet been semantically resolved (@see resolveBinding)
      Returns:
      IBinding if it has been resolved, otherwise null
    • resolveBinding

      IBinding resolveBinding()
      Resolves the semantic object this name is referring to.
      Returns:
      IBinding binding
    • getRoleOfName

      int getRoleOfName(boolean allowResolution)
      Returns the role of this name. If the name needs to be resolved to determine that and allowResolution is set to false, then IASTNameOwner.r_unclear is returned.
      Parameters:
      allowResolution - whether or not resolving the name is allowed.
      Returns:
      IASTNameOwner.r_definition, IASTNameOwner.r_declaration, IASTNameOwner.r_reference, IASTNameOwner.r_unclear.
      Since:
      5.0
    • getCompletionContext

      IASTCompletionContext getCompletionContext()
      Returns the completion context for this name.
      Returns:
      IASTCompletionContext the context for completion
    • getLinkage

      ILinkage getLinkage()
      Determines the current linkage in which the name has to be resolved.
    • getImageLocation

      IASTImageLocation getImageLocation()
      Returns the image location for this name or null if the information is not available.

      An image location can be computed when the name is either found directly in the code, is (part of) an argument to a macro expansion or is (part of) a macro definition found in the source code.

      The image location is null, when the name consists of multiple tokens (qualified names) and the tokens are not found side by side in the code, or if the name is the result of a token-paste operation or the name is found in the definition of a built-in macro.

      Since:
      5.0
    • getLastName

      IASTName getLastName()
      For convenience this method returns the last name of a qualified name or this if this is not a qualified name.
      Since:
      5.1
    • copy

      IASTName 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 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 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
    • setBinding

      void setBinding(IBinding binding)
      Sets the semantic object for this name to be the given binding
      Restriction:
      This method is not intended to be referenced by clients.
    • getLookupKey

      char[] getLookupKey()
      Returns the key for looking up this name in a scope.
      Restriction:
      This method is not intended to be referenced by clients.
    • getPreBinding

      IBinding getPreBinding()
      Returns the intermediate representation of the binding, if already available.
      Restriction:
      This method is not intended to be referenced by clients.
    • resolvePreBinding

      IBinding resolvePreBinding()
      Resolves to an intermediate representation of the binding.
      Restriction:
      This method is not intended to be referenced by clients.
    • isQualified

      boolean isQualified()
      Returns whether this name is qualified, i.e. whether it is preceded by a scope operator.
      Since:
      5.4