sig
type short_offset = Utils.s2
type long_offset = Utils.s4
type instruction =
AALOAD
| AASTORE
| ACONST_NULL
| ALOAD of Utils.u1
| ALOAD_0
| ALOAD_1
| ALOAD_2
| ALOAD_3
| ANEWARRAY of Utils.u2
| ARETURN
| ARRAYLENGTH
| ASTORE of Utils.u1
| ASTORE_0
| ASTORE_1
| ASTORE_2
| ASTORE_3
| ATHROW
| BALOAD
| BASTORE
| BIPUSH of Utils.s1
| CALOAD
| CASTORE
| CHECKCAST of Utils.u2
| D2F
| D2I
| D2L
| DADD
| DALOAD
| DASTORE
| DCMPG
| DCMPL
| DCONST_0
| DCONST_1
| DDIV
| DLOAD of Utils.u1
| DLOAD_0
| DLOAD_1
| DLOAD_2
| DLOAD_3
| DMUL
| DNEG
| DREM
| DRETURN
| DSTORE of Utils.u1
| DSTORE_0
| DSTORE_1
| DSTORE_2
| DSTORE_3
| DSUB
| DUP
| DUP2
| DUP2_X1
| DUP2_X2
| DUP_X1
| DUP_X2
| F2D
| F2I
| F2L
| FADD
| FALOAD
| FASTORE
| FCMPG
| FCMPL
| FCONST_0
| FCONST_1
| FCONST_2
| FDIV
| FLOAD of Utils.u1
| FLOAD_0
| FLOAD_1
| FLOAD_2
| FLOAD_3
| FMUL
| FNEG
| FREM
| FRETURN
| FSTORE of Utils.u1
| FSTORE_0
| FSTORE_1
| FSTORE_2
| FSTORE_3
| FSUB
| GETFIELD of Utils.u2
| GETSTATIC of Utils.u2
| GOTO of ByteCode.short_offset
| GOTO_W of ByteCode.long_offset
| I2B
| I2C
| I2D
| I2F
| I2L
| I2S
| IADD
| IALOAD
| IAND
| IASTORE
| ICONST_0
| ICONST_1
| ICONST_2
| ICONST_3
| ICONST_4
| ICONST_5
| ICONST_M1
| IDIV
| IF_ACMPEQ of ByteCode.short_offset
| IF_ACMPNE of ByteCode.short_offset
| IF_ICMPEQ of ByteCode.short_offset
| IF_ICMPGE of ByteCode.short_offset
| IF_ICMPGT of ByteCode.short_offset
| IF_ICMPLE of ByteCode.short_offset
| IF_ICMPLT of ByteCode.short_offset
| IF_ICMPNE of ByteCode.short_offset
| IFEQ of ByteCode.short_offset
| IFGE of ByteCode.short_offset
| IFGT of ByteCode.short_offset
| IFLE of ByteCode.short_offset
| IFLT of ByteCode.short_offset
| IFNE of ByteCode.short_offset
| IFNONNULL of ByteCode.short_offset
| IFNULL of ByteCode.short_offset
| IINC of Utils.u1 * Utils.s1
| ILOAD of Utils.u1
| ILOAD_0
| ILOAD_1
| ILOAD_2
| ILOAD_3
| IMUL
| INEG
| INSTANCEOF of Utils.u2
| INVOKEDYNAMIC of Utils.u2
| INVOKEINTERFACE of Utils.u2 * Utils.u1
| INVOKESPECIAL of Utils.u2
| INVOKESTATIC of Utils.u2
| INVOKEVIRTUAL of Utils.u2
| IOR
| IREM
| IRETURN
| ISHL
| ISHR
| ISTORE of Utils.u1
| ISTORE_0
| ISTORE_1
| ISTORE_2
| ISTORE_3
| ISUB
| IUSHR
| IXOR
| JSR of ByteCode.short_offset
| JSR_W of ByteCode.long_offset
| L2D
| L2F
| L2I
| LADD
| LALOAD
| LAND
| LASTORE
| LCMP
| LCONST_0
| LCONST_1
| LDC of Utils.u1
| LDC2_W of Utils.u2
| LDC_W of Utils.u2
| LDIV
| LLOAD of Utils.u1
| LLOAD_0
| LLOAD_1
| LLOAD_2
| LLOAD_3
| LMUL
| LNEG
| LOOKUPSWITCH of ByteCode.long_offset * Utils.s4 *
(Utils.s4 * ByteCode.long_offset) list
| LOR
| LREM
| LRETURN
| LSHL
| LSHR
| LSTORE of Utils.u1
| LSTORE_0
| LSTORE_1
| LSTORE_2
| LSTORE_3
| LSUB
| LUSHR
| LXOR
| MONITORENTER
| MONITOREXIT
| MULTIANEWARRAY of Utils.u2 * Utils.u1
| NEW of Utils.u2
| NEWARRAY of Utils.u1
| NOP
| POP
| POP2
| PUTFIELD of Utils.u2
| PUTSTATIC of Utils.u2
| RET of Utils.u1
| RETURN
| SALOAD
| SASTORE
| SIPUSH of Utils.s2
| SWAP
| TABLESWITCH of ByteCode.long_offset * Utils.s4 * Utils.s4 *
ByteCode.long_offset list
| WIDE_ALOAD of Utils.u2
| WIDE_ASTORE of Utils.u2
| WIDE_DLOAD of Utils.u2
| WIDE_DSTORE of Utils.u2
| WIDE_FLOAD of Utils.u2
| WIDE_FSTORE of Utils.u2
| WIDE_IINC of Utils.u2 * Utils.s2
| WIDE_ILOAD of Utils.u2
| WIDE_ISTORE of Utils.u2
| WIDE_LLOAD of Utils.u2
| WIDE_LSTORE of Utils.u2
| WIDE_RET of Utils.u2
type error =
Invalid_padding_byte
| Unknown_opcode
| Invalid_trailing_byte
| Invalid_trailing_short
| Internal
| Invalid_switch_cases
exception Exception of ByteCode.error
val string_of_error : ByteCode.error -> string
val read : InputStream.t -> int -> ByteCode.instruction list
val write : OutputStream.t -> int -> ByteCode.instruction list -> unit
end