Class CodeGenerator

java.lang.Object
com.strobel.reflection.emit.CodeGenerator

public class CodeGenerator extends Object
Author:
strobelm
  • Constructor Details

    • CodeGenerator

      public CodeGenerator(MethodBuilder methodBuilder)
    • CodeGenerator

      public CodeGenerator(MethodBuilder methodBuilder, int initialSize)
  • Method Details

    • offset

      public int offset()
    • beginExceptionBlock

      public Label beginExceptionBlock()
    • endExceptionBlock

      public void endExceptionBlock()
    • endTryBlock

      public void endTryBlock()
    • beginCatchBlock

      public void beginCatchBlock(Type<?> caughtType)
    • beginFinallyBlock

      public void beginFinallyBlock()
    • defineLabel

      public Label defineLabel()
    • markLabel

      public void markLabel(Label label)
    • declareLocal

      public LocalBuilder declareLocal(Type<?> localType)
    • declareLocal

      public LocalBuilder declareLocal(String name, Type<?> localType)
    • dup

      public void dup()
    • dup2

      public void dup2()
    • dup2x1

      public void dup2x1()
    • dup2x2

      public void dup2x2()
    • dup

      public void dup(Type<?> type)
    • pop

      public void pop()
    • pop2

      public void pop2()
    • pop

      public void pop(Type<?> type)
    • emit

      public void emit(OpCode opCode)
    • emit

      public void emit(OpCode opCode, byte arg)
    • emit

      public void emit(OpCode opCode, short arg)
    • emit

      public void emit(OpCode opCode, int arg)
    • emit

      public void emit(OpCode opCode, long arg)
    • emit

      public void emit(OpCode opCode, float arg)
    • emit

      public void emit(OpCode opCode, double arg)
    • emit

      public void emit(OpCode opCode, String arg)
    • emit

      public void emit(OpCode opCode, Type<?> type)
    • emit

      public void emit(OpCode opCode, ConstructorInfo constructor)
    • emit

      public void emit(OpCode opCode, MethodInfo method)
    • emit

      public void emit(OpCode opCode, FieldInfo field)
    • emit

      public void emit(OpCode opCode, Label label)
    • call

      public void call(MethodInfo method)
    • call

      public void call(ConstructorInfo constructor)
    • call

      public void call(OpCode opCode, MethodInfo method)
    • emitGoto

      public void emitGoto(Label label)
    • emitReturn

      public void emitReturn()
    • emitReturn

      public void emitReturn(Type<?> returnType)
    • emitNew

      public void emitNew(Type<?> type)
    • emitNewArray

      public void emitNewArray(Type<?> arrayType)
    • emitNewArray

      public void emitNewArray(Type<?> arrayType, int dimensionsToInitialize)
    • emitArray

      public final void emitArray(Type<?> elementType, int count, CodeGenerator.EmitArrayElementCallback emit)
    • increment

      public void increment(LocalBuilder local, int delta)
    • emitLoad

      public void emitLoad(LocalBuilder local)
    • emitStore

      public void emitStore(LocalBuilder local)
    • emitThis

      public void emitThis()
    • emitLoadArgument

      public void emitLoadArgument(int index)
    • emitLoad

      protected void emitLoad(Type<?> type, int absoluteIndex)
    • emitStoreArgument

      public void emitStoreArgument(int index)
    • emitStore

      protected void emitStore(Type<?> type, int absoluteIndex)
    • emitLoadElement

      public void emitLoadElement(Type<?> elementType)
    • emitStoreElement

      public void emitStoreElement(Type<?> elementType)
    • getField

      public void getField(FieldInfo field)
    • putField

      public void putField(FieldInfo field)
    • canEmitConstant

      public static boolean canEmitConstant(Object value, Type<?> type)
    • emitConstant

      public void emitConstant(Object value)
    • emitConstantArray

      public void emitConstantArray(Object array)
    • emitConstant

      public void emitConstant(Object value, Type<?> type)
    • emitType

      public void emitType(Type<?> value)
    • emitMethod

      public void emitMethod(MethodBase value)
    • emitNull

      public void emitNull()
    • emitDefaultValue

      public void emitDefaultValue(Type<?> type)
    • emitBoolean

      public void emitBoolean(boolean value)
    • emitByte

      public void emitByte(byte value)
    • emitCharacter

      public void emitCharacter(char value)
    • emitShort

      public void emitShort(short value)
    • emitInteger

      public void emitInteger(int value)
    • emitLong

      public void emitLong(long value)
    • emitFloat

      public void emitFloat(float value)
    • emitDouble

      public void emitDouble(double value)
    • emitString

      public void emitString(String value)
    • emitLoadConstant

      protected void emitLoadConstant(int token)
    • emitLoadLongConstant

      protected void emitLoadLongConstant(int token)
    • emitBox

      public void emitBox(Type<?> type)
    • emitUnbox

      public void emitUnbox(Type<?> type)
    • emitConversion

      public void emitConversion(Type<?> sourceType, Type<?> targetType)
    • emitSwitch

      public void emitSwitch(int[] keys, SwitchCallback callback)
    • emitSwitch

      public void emitSwitch(int[] keys, SwitchCallback callback, SwitchOptions options)
    • emitSwitch

      public <E extends Enum<E>> void emitSwitch(E[] keys, EnumSwitchCallback<E> callback)
    • emitSwitch

      public <E extends Enum<E>> void emitSwitch(E[] keys, EnumSwitchCallback<E> callback, SwitchOptions options)
    • emitSwitch

      public void emitSwitch(String[] keys, StringSwitchCallback callback)
    • emitSwitch

      public void emitSwitch(String[] keys, StringSwitchCallback callback, SwitchOptions options)