AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, 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, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V9| 构造器和说明 |
|---|
MagicScriptCompiler(Set<VarIndex> varIndices,
boolean debug) |
public MagicScriptCompiler createMethod(int access, String methodName, String descriptor)
access - 访问属性methodName - 方法名descriptor - 方法描述public int getTempIndex()
public int getFunctionIndex()
public MagicScriptCompiler markLabel(Label start, Label end)
public MagicScriptCompiler exitLabel()
public MagicScriptCompiler start()
public MagicScriptCompiler end()
public MagicScriptCompiler visit(Node node)
public MagicScriptCompiler compile(Node node)
public MagicScriptCompiler lineNumber(Span span)
public MagicScriptCompiler loadContext()
public MagicScriptCompiler newRuntimeContext()
public MagicScriptCompiler compile(Node node, boolean pop)
node - AST节点pop - 是否需要弹出栈顶public MagicScriptCompiler tryCatch(Label start, Label end, Label handle, Class<?> target)
public MagicScriptCompiler visit(List<? extends Node> nodes)
public MagicScriptCompiler compile(List<? extends Node> nodes)
public MagicScriptCompiler load0()
public MagicScriptCompiler load1()
public void newArrayList()
public MagicScriptCompiler load2()
public MagicScriptCompiler load3()
public MagicScriptCompiler load(int index)
public MagicScriptCompiler load(VarIndex varIndex)
public MagicScriptCompiler load(String name)
name - 变量名public MagicScriptCompiler label(Label label)
public MagicScriptCompiler jump(int opcode, Label label)
public MagicScriptCompiler remove(VarIndex varIndex)
public MagicScriptCompiler remove(String name)
public MagicScriptCompiler store()
public MagicScriptCompiler store(VarIndex varIndex)
public MagicScriptCompiler scopeStore()
public MagicScriptCompiler store(int index)
public MagicScriptCompiler pre_store(int index)
public MagicScriptCompiler pre_store(VarIndex varIndex)
public MagicScriptCompiler bipush(int value)
public MagicScriptCompiler typeInsn(int opcode, Class<?> target)
public MagicScriptCompiler operator(String methodName)
methodName - 运算方法public MagicScriptCompiler bit(String methodName)
methodName - 运算方法public MagicScriptCompiler lambda(String methodName)
methodName - 方法名public MagicScriptCompiler call(String methodName, int arguments)
methodName - 方法名arguments - 参数个数public MagicScriptCompiler arithmetic(String methodName)
methodName - 方法名public MagicScriptCompiler asInteger()
public MagicScriptCompiler asBoolean()
public MagicScriptCompiler invoke(int opcode, Class<?> target, String method, Class<?> returnType, Class<?>... argumentTypes)
opcode - 调用类型target - 目标类method - 方法名returnType - 返回值类型argumentTypes - 参数类型public MagicScriptCompiler invoke(int opcode, Class<?> target, String method, boolean isInterface, Class<?> returnType, Class<?>... argumentTypes)
opcode - 调用类型target - 目标类method - 方法名isInterface - 是否是接口returnType - 返回值类型argumentTypes - 参数类型public MagicScriptCompiler ldc(Object value)
public MagicScriptCompiler insn(int opcode)
public void intInsn(int opcode,
int operand)
public MagicScriptCompiler newArray(List<Expression> values)
public MagicScriptCompiler visitInt(int value)
public void loadVars()
public String visitMethod(String methodName, List<Node> childNodes, List<VarIndex> parameters, Runnable callback)
public String visitMethod(String methodName, List<Node> childNodes, List<VarIndex> parameters)
public MagicScriptCompiler pop()
public byte[] bytecode()
public String getClassName()
Copyright © 2020–2021. All rights reserved.