public interface

ICIdentifier

implements ICLeftExpression
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICIdentifier

Class Overview

C AST interface to represent an identifier, or variable.

Example:

 int someVariable = 3;
     ^^^^^^^^^^^^
 
C variable.

Refer to CIdentifierClass for the different types of identifiers.

Summary

Constants
int FLAG_MEANINGFUL_NAME
Public Methods
abstract ICIdentifier duplicate()
Deep duplication of the element.
abstract void generate(COutputSink out, boolean definition)
abstract Long getAddress()
Get the native address associated with this identifier.
abstract int getFlags()
abstract int getId()
Get a unique identifier associated with the identifier.
abstract CIdentifierClass getIdentifierClass()
Get the identifier class.
abstract Integer getMethodIndex()
abstract String getName()
Get the current name given to the identifier.
abstract String getOriginalName()
Get the original name given to the identifier.
abstract Integer getParameterIndex()
abstract ICType getType()
Get the identifier type.
abstract boolean isParameter()
abstract void setFlags(int flags)
abstract boolean setName(String name, IDynamicContentManager dcm)
abstract boolean setName(String name)
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICElement
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICExpression
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICLeftExpression

Constants

public static final int FLAG_MEANINGFUL_NAME

Constant Value: 2 (0x00000002)

Public Methods

public abstract ICIdentifier duplicate ()

Deep duplication of the element. Sub-elements are duplicated.

Note: ICClass, ICMethod, ICField, ICIdentifier, ICConstant, ICType and ICLabel are not duplicated.

public abstract void generate (COutputSink out, boolean definition)

public abstract Long getAddress ()

Get the native address associated with this identifier.

The address depends of the CIdentifierClass of the identifier:

  • for GLOBAL, it is an absolute address
  • for LOCAL, it is a relative address from the stack base pointer
  • for others classes, the value is null (meaningless)

public abstract int getFlags ()

public abstract int getId ()

Get a unique identifier associated with the identifier.

public abstract CIdentifierClass getIdentifierClass ()

Get the identifier class.

public abstract Integer getMethodIndex ()

public abstract String getName ()

Get the current name given to the identifier.

public abstract String getOriginalName ()

Get the original name given to the identifier.

public abstract Integer getParameterIndex ()

public abstract ICType getType ()

Get the identifier type.

public abstract boolean isParameter ()

public abstract void setFlags (int flags)

public abstract boolean setName (String name, IDynamicContentManager dcm)

public abstract boolean setName (String name)