gnu.bytecode

Class Variable

Implemented Interfaces:
java.util.Enumeration

public class Variable
extends Location
implements java.util.Enumeration

Field Summary

Fields inherited from class gnu.bytecode.Location

name, type

Constructor Summary

Variable()
Variable(String name)
Variable(String name, Type type)

Method Summary

void
allocateLocal(CodeAttr code)
Allocate slots for a local variable (or parameter).
void
freeLocal(CodeAttr code)
boolean
hasMoreElements()
boolean
isAssigned()
Returns true iff assigned to a local variable slot.
boolean
isParameter()
boolean
isSimple()
Returns true for a "simple" variable.
Object
nextElement()
Variable
nextVar()
boolean
reserveLocal(int varIndex, CodeAttr code)
Assign a local variable to a given local variable slot.
void
setParameter(boolean parameter)
void
setSimple(boolean simple)
String
toString()

Methods inherited from class gnu.bytecode.Location

getName, getSignature, getType, setName, setName, setSignature, setType

Constructor Details

Variable

public Variable()

Variable

public Variable(String name)

Variable

public Variable(String name,
                Type type)

Method Details

allocateLocal

public void allocateLocal(CodeAttr code)
Allocate slots for a local variable (or parameter).

freeLocal

public void freeLocal(CodeAttr code)

hasMoreElements

public final boolean hasMoreElements()

isAssigned

public final boolean isAssigned()
Returns true iff assigned to a local variable slot. Only relevant if isSimple ().

isParameter

public final boolean isParameter()

isSimple

public final boolean isSimple()
Returns true for a "simple" variable. A "simple" Variable can be stack-allocated using standard local variable slots. It is allocated by the codegen package. A non-simple variable may need heap allocation, or more more complex access; it is basically ignored by the codegen package, and must be managed by higher layers.

nextElement

public Object nextElement()

nextVar

public final Variable nextVar()

reserveLocal

public boolean reserveLocal(int varIndex,
                            CodeAttr code)
Assign a local variable to a given local variable slot.
Parameters:
varIndex - the index of the local variables.
Returns:
true iff we succeeded (i.e. the slot was unused)

setParameter

public final void setParameter(boolean parameter)

setSimple

public final void setSimple(boolean simple)

toString

public String toString()