Package | Description |
---|---|
gnu.bytecode |
Contains classes to generate, read,
write, and print Java bytecode in the form of
.class files. |
gnu.expr |
Supports
Expression ,
and various related classes need to compile programming languages. |
gnu.kawa.lispexpr |
Support classes for compiling and running Lisp languages.
|
gnu.kawa.reflect |
Contains classes to use reflection.
|
gnu.kawa.xml |
Classes for using XML within Kawa.
|
Modifier and Type | Method and Description |
---|---|
CodeAttr |
Method.getCode() |
CodeAttr |
Method.startCode()
Recommended method to create a new CodeAttr for this Method.
|
Modifier and Type | Method and Description |
---|---|
boolean |
SwitchState.addCase(int value,
CodeAttr code)
Add a new case.
|
boolean |
SwitchState.addCaseGoto(int value,
CodeAttr code,
Label label)
Optimization of
addCase(value, code); emitGoto(label) . |
void |
SwitchState.addDefault(CodeAttr code) |
Variable |
Scope.addVariable(CodeAttr code,
Type type,
java.lang.String name) |
void |
Scope.addVariable(CodeAttr code,
Variable var) |
void |
Variable.allocateLocal(CodeAttr code)
Allocate slots for a local variable (or parameter).
|
void |
Label.define(CodeAttr code)
Define the value of a label as having the current location.
|
void |
Label.defineRaw(CodeAttr code)
Define the value of a label as having the current location.
|
void |
Type.emitCoerceFromObject(CodeAttr code)
Compile code to coerce/convert from Object to this type.
|
void |
ParameterizedType.emitCoerceFromObject(CodeAttr code) |
void |
PrimType.emitCoerceFromObject(CodeAttr code) |
void |
TypeVariable.emitCoerceFromObject(CodeAttr code) |
void |
ObjectType.emitCoerceFromObject(CodeAttr code)
Compile (in given method) cast from Object to this Type.
|
void |
Type.emitCoerceToObject(CodeAttr code)
Compile code to convert a object of this type on the stack to Object.
|
void |
PrimType.emitCoerceToObject(CodeAttr code) |
void |
Type.emitConvertFromPrimitive(Type stackType,
CodeAttr code)
Convert from stackType (usually PrimType) to this type.
|
void |
Type.emitIsInstance(CodeAttr code) |
void |
ParameterizedType.emitIsInstance(CodeAttr code) |
void |
PrimType.emitIsInstance(CodeAttr code) |
void |
StackMapTableAttr.emitStackMapEntry(Label label,
CodeAttr code)
Emit type state for the given Label.
|
void |
SwitchState.exitSwitch(CodeAttr code)
Break/exit from this switch.
|
void |
SwitchState.finish(CodeAttr code)
Handle the end of the switch statement.
|
void |
Variable.freeLocal(CodeAttr code) |
boolean |
SwitchState.insertCase(int value,
Label label,
CodeAttr code)
Internal routine to add a new case.
|
void |
Scope.noteStartFunction(CodeAttr code)
Should be called at the start of a logical function - inlined or not.
|
boolean |
Variable.reserveLocal(int varIndex,
CodeAttr code)
Assign a local variable to a given local variable slot.
|
void |
Scope.setStartPC(CodeAttr code) |
void |
Label.setTypes(CodeAttr code) |
void |
SwitchState.switchValuePushed(CodeAttr code)
Needs to be called after the switch value has been pushed.
|
Constructor and Description |
---|
IfState(CodeAttr code) |
IfState(CodeAttr code,
Label endLabel) |
Label(CodeAttr code) |
LineNumbersAttr(CodeAttr code)
Add a new LineNumbersAttr to a CodeAttr.
|
LineNumbersAttr(short[] numbers,
CodeAttr code) |
LocalVarsAttr(CodeAttr code)
Add a new LocalVarsAttr to a CodeAttr.
|
StackMapTableAttr(byte[] data,
CodeAttr code)
Add a new StackMapTableAttr to a CodeAttr.
|
SwitchState(CodeAttr code) |
TryState(CodeAttr code) |
Modifier and Type | Method and Description |
---|---|
CodeAttr |
Compilation.getCode() |
Modifier and Type | Method and Description |
---|---|
Variable |
Declaration.allocateVariable(CodeAttr code) |
Variable |
Declaration.allocateVariable(CodeAttr code,
boolean autoPopScope) |
static void |
PrimProcedure.compileReachedUnexpected(CodeAttr code) |
void |
ConditionalTarget.emitGotoFirstBranch(CodeAttr code)
Goto whichever of IfTrue or ifFalse is specified by trueBranchComesFirst.
|
void |
ScopeExp.popScope(CodeAttr code)
Clear bytecode resources for the ScopeExp.
|
Modifier and Type | Method and Description |
---|---|
void |
LangObjType.emitCoerceFromObject(CodeAttr code) |
void |
LangPrimType.emitCoerceFromObject(CodeAttr code) |
void |
SeqSizeType.emitCoerceFromObject(CodeAttr code) |
void |
LangPrimType.emitCoerceToObject(CodeAttr code) |
boolean |
LangObjType.emitCoercionOrNull(CodeAttr code) |
boolean |
SeqSizeType.emitCoercionOrNull(CodeAttr code) |
void |
LangObjType.emitConvertFromPrimitive(Type stackType,
CodeAttr code) |
void |
LangPrimType.emitIsInstance(CodeAttr code) |
Modifier and Type | Method and Description |
---|---|
void |
MappedArrayType.emitCoerceFromObject(CodeAttr code) |
void |
SingletonType.emitCoerceFromObject(CodeAttr code) |
Modifier and Type | Method and Description |
---|---|
void |
NodeType.emitCoerceFromObject(CodeAttr code) |
void |
ElementType.emitCoerceFromObject(CodeAttr code) |
void |
XDataType.emitCoerceFromObject(CodeAttr code) |
void |
ProcessingInstructionType.emitCoerceFromObject(CodeAttr code) |
void |
AttributeType.emitCoerceFromObject(CodeAttr code) |
void |
XDataType.emitCoerceToObject(CodeAttr code) |