Package org.eclipse.cdt.core.dom.ast

# 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.

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`IASTNode.CopyStyle`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final IASTName[]`
`EMPTY_NAME_ARRAY`
Constant sentinel.

### Fields inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`EMPTY_NODE_ARRAY`

### Fields inherited from interface org.eclipse.cdt.core.dom.IName

`EMPTY_ARRAY`

## Method Summary

Modifier and Type
Method
Description
`IASTName`
`copy()`
Returns a mutable copy of the tree rooted at this node.
`IASTName`
`copy(IASTNode.CopyStyle style)`
Returns a mutable copy of the tree rooted at this node.
`IBinding`
`getBinding()`
Returns the semantic object attached to this name.
`IASTCompletionContext`
`getCompletionContext()`
Returns the completion context for this name.
`IASTImageLocation`
`getImageLocation()`
Returns the image location for this name or `null` if the information is not available.
`IASTName`
`getLastName()`
For convenience this method returns the last name of a qualified name or `this` if this is not a qualified name.
`ILinkage`
`getLinkage()`
Determines the current linkage in which the name has to be resolved.
`char[]`
`getLookupKey()`
Returns the key for looking up this name in a scope.
`IBinding`
`getPreBinding()`
Returns the intermediate representation of the binding, if already available.
`int`
`getRoleOfName(boolean allowResolution)`
Returns the role of this name.
`boolean`
`isQualified()`
Returns whether this name is qualified, i.e.
`IBinding`
`resolveBinding()`
Resolves the semantic object this name is referring to.
`IBinding`
`resolvePreBinding()`
Resolves to an intermediate representation of the binding.
`void`
`setBinding(IBinding binding)`
Sets the semantic object for this name to be the given binding
`char[]`
`toCharArray()`
Returns the name including qualification and template arguments.
`String`
`toString()`
Same as `toCharArray()`.

### 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`

### Methods inherited from interface org.eclipse.cdt.core.dom.IName

`getFileLocation, getSimpleID, isDeclaration, isDefinition, isReference`

## 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

IASTName copy(IASTNode.CopyStyle style)
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