Last active
November 24, 2016 22:28
-
-
Save CalebWhiting/e9a14729b89db17faa24cc8363a5fe7b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.rsxml.handler.analysis; | |
import com.rsxml.*; | |
import com.rsxml.attr.*; | |
import com.rsxml.attr.Attribute; | |
import org.objectweb.asm.*; | |
import org.objectweb.asm.tree.*; | |
import java.util.function.*; | |
/* AUTOMATICALLY GENERATED DATA */ | |
public class PatternInsnHandlers { | |
public abstract class PatternNode implements Predicate<AbstractInsnNode> { | |
@Attribute(value="parent") BasicPattern parent; | |
@Attribute(value="context") XMLContext context; | |
@Attribute(value="id", dflt="") String id; | |
public abstract int getOpcode(); | |
} | |
@Handler(value="NOP", parent = BasicPattern.class) | |
class NOP extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.NOP; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ACONST_NULL", parent = BasicPattern.class) | |
class ACONST_NULL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ACONST_NULL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ICONST_M1", parent = BasicPattern.class) | |
class ICONST_M1 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ICONST_M1; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ICONST_0", parent = BasicPattern.class) | |
class ICONST_0 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ICONST_0; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ICONST_1", parent = BasicPattern.class) | |
class ICONST_1 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ICONST_1; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ICONST_2", parent = BasicPattern.class) | |
class ICONST_2 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ICONST_2; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ICONST_3", parent = BasicPattern.class) | |
class ICONST_3 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ICONST_3; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ICONST_4", parent = BasicPattern.class) | |
class ICONST_4 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ICONST_4; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ICONST_5", parent = BasicPattern.class) | |
class ICONST_5 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ICONST_5; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LCONST_0", parent = BasicPattern.class) | |
class LCONST_0 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LCONST_0; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LCONST_1", parent = BasicPattern.class) | |
class LCONST_1 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LCONST_1; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FCONST_0", parent = BasicPattern.class) | |
class FCONST_0 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FCONST_0; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FCONST_1", parent = BasicPattern.class) | |
class FCONST_1 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FCONST_1; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FCONST_2", parent = BasicPattern.class) | |
class FCONST_2 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FCONST_2; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DCONST_0", parent = BasicPattern.class) | |
class DCONST_0 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DCONST_0; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DCONST_1", parent = BasicPattern.class) | |
class DCONST_1 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DCONST_1; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="BIPUSH", parent = BasicPattern.class) | |
class BIPUSH extends PatternNode { | |
@Attribute(value="operand", dflt="") Integer operand; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.BIPUSH; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
IntInsnNode cast = (IntInsnNode) node; | |
if (this.operand != null && operand != cast.operand) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="SIPUSH", parent = BasicPattern.class) | |
class SIPUSH extends PatternNode { | |
@Attribute(value="operand", dflt="") Integer operand; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.SIPUSH; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
IntInsnNode cast = (IntInsnNode) node; | |
if (this.operand != null && operand != cast.operand) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="LDC", parent = BasicPattern.class) | |
class LDC extends PatternNode { | |
@Attribute(value="cst", dflt="") String cst; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LDC; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
LdcInsnNode cast = (LdcInsnNode) node; | |
if (this.cst != null && !cst.equals(String.valueOf(cast.cst))) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="ILOAD", parent = BasicPattern.class) | |
class ILOAD extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ILOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="LLOAD", parent = BasicPattern.class) | |
class LLOAD extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LLOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="FLOAD", parent = BasicPattern.class) | |
class FLOAD extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FLOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="DLOAD", parent = BasicPattern.class) | |
class DLOAD extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DLOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="ALOAD", parent = BasicPattern.class) | |
class ALOAD extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ALOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="IALOAD", parent = BasicPattern.class) | |
class IALOAD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IALOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LALOAD", parent = BasicPattern.class) | |
class LALOAD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LALOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FALOAD", parent = BasicPattern.class) | |
class FALOAD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FALOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DALOAD", parent = BasicPattern.class) | |
class DALOAD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DALOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="AALOAD", parent = BasicPattern.class) | |
class AALOAD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.AALOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="BALOAD", parent = BasicPattern.class) | |
class BALOAD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.BALOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="CALOAD", parent = BasicPattern.class) | |
class CALOAD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.CALOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="SALOAD", parent = BasicPattern.class) | |
class SALOAD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.SALOAD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ISTORE", parent = BasicPattern.class) | |
class ISTORE extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ISTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="LSTORE", parent = BasicPattern.class) | |
class LSTORE extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LSTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="FSTORE", parent = BasicPattern.class) | |
class FSTORE extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FSTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="DSTORE", parent = BasicPattern.class) | |
class DSTORE extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DSTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="ASTORE", parent = BasicPattern.class) | |
class ASTORE extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ASTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="IASTORE", parent = BasicPattern.class) | |
class IASTORE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IASTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LASTORE", parent = BasicPattern.class) | |
class LASTORE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LASTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FASTORE", parent = BasicPattern.class) | |
class FASTORE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FASTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DASTORE", parent = BasicPattern.class) | |
class DASTORE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DASTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="AASTORE", parent = BasicPattern.class) | |
class AASTORE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.AASTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="BASTORE", parent = BasicPattern.class) | |
class BASTORE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.BASTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="CASTORE", parent = BasicPattern.class) | |
class CASTORE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.CASTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="SASTORE", parent = BasicPattern.class) | |
class SASTORE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.SASTORE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="POP", parent = BasicPattern.class) | |
class POP extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.POP; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="POP2", parent = BasicPattern.class) | |
class POP2 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.POP2; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DUP", parent = BasicPattern.class) | |
class DUP extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DUP; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DUP_X1", parent = BasicPattern.class) | |
class DUP_X1 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DUP_X1; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DUP_X2", parent = BasicPattern.class) | |
class DUP_X2 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DUP_X2; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DUP2", parent = BasicPattern.class) | |
class DUP2 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DUP2; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DUP2_X1", parent = BasicPattern.class) | |
class DUP2_X1 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DUP2_X1; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DUP2_X2", parent = BasicPattern.class) | |
class DUP2_X2 extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DUP2_X2; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="SWAP", parent = BasicPattern.class) | |
class SWAP extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.SWAP; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IADD", parent = BasicPattern.class) | |
class IADD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IADD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LADD", parent = BasicPattern.class) | |
class LADD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LADD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FADD", parent = BasicPattern.class) | |
class FADD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FADD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DADD", parent = BasicPattern.class) | |
class DADD extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DADD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ISUB", parent = BasicPattern.class) | |
class ISUB extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ISUB; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LSUB", parent = BasicPattern.class) | |
class LSUB extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LSUB; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FSUB", parent = BasicPattern.class) | |
class FSUB extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FSUB; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DSUB", parent = BasicPattern.class) | |
class DSUB extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DSUB; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IMUL", parent = BasicPattern.class) | |
class IMUL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IMUL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LMUL", parent = BasicPattern.class) | |
class LMUL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LMUL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FMUL", parent = BasicPattern.class) | |
class FMUL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FMUL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DMUL", parent = BasicPattern.class) | |
class DMUL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DMUL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IDIV", parent = BasicPattern.class) | |
class IDIV extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IDIV; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LDIV", parent = BasicPattern.class) | |
class LDIV extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LDIV; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FDIV", parent = BasicPattern.class) | |
class FDIV extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FDIV; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DDIV", parent = BasicPattern.class) | |
class DDIV extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DDIV; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IREM", parent = BasicPattern.class) | |
class IREM extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IREM; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LREM", parent = BasicPattern.class) | |
class LREM extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LREM; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FREM", parent = BasicPattern.class) | |
class FREM extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FREM; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DREM", parent = BasicPattern.class) | |
class DREM extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DREM; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="INEG", parent = BasicPattern.class) | |
class INEG extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.INEG; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LNEG", parent = BasicPattern.class) | |
class LNEG extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LNEG; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FNEG", parent = BasicPattern.class) | |
class FNEG extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FNEG; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DNEG", parent = BasicPattern.class) | |
class DNEG extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DNEG; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ISHL", parent = BasicPattern.class) | |
class ISHL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ISHL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LSHL", parent = BasicPattern.class) | |
class LSHL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LSHL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ISHR", parent = BasicPattern.class) | |
class ISHR extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ISHR; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LSHR", parent = BasicPattern.class) | |
class LSHR extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LSHR; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IUSHR", parent = BasicPattern.class) | |
class IUSHR extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IUSHR; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LUSHR", parent = BasicPattern.class) | |
class LUSHR extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LUSHR; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IAND", parent = BasicPattern.class) | |
class IAND extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IAND; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LAND", parent = BasicPattern.class) | |
class LAND extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LAND; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IOR", parent = BasicPattern.class) | |
class IOR extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IOR; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LOR", parent = BasicPattern.class) | |
class LOR extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LOR; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IXOR", parent = BasicPattern.class) | |
class IXOR extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IXOR; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LXOR", parent = BasicPattern.class) | |
class LXOR extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LXOR; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IINC", parent = BasicPattern.class) | |
class IINC extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Attribute(value="incr", dflt="") Integer incr; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IINC; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
IincInsnNode cast = (IincInsnNode) node; | |
if (this.incr != null && incr != cast.incr) { | |
return false; | |
} | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="I2L", parent = BasicPattern.class) | |
class I2L extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.I2L; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="I2F", parent = BasicPattern.class) | |
class I2F extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.I2F; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="I2D", parent = BasicPattern.class) | |
class I2D extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.I2D; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="L2I", parent = BasicPattern.class) | |
class L2I extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.L2I; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="L2F", parent = BasicPattern.class) | |
class L2F extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.L2F; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="L2D", parent = BasicPattern.class) | |
class L2D extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.L2D; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="F2I", parent = BasicPattern.class) | |
class F2I extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.F2I; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="F2L", parent = BasicPattern.class) | |
class F2L extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.F2L; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="F2D", parent = BasicPattern.class) | |
class F2D extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.F2D; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="D2I", parent = BasicPattern.class) | |
class D2I extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.D2I; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="D2L", parent = BasicPattern.class) | |
class D2L extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.D2L; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="D2F", parent = BasicPattern.class) | |
class D2F extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.D2F; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="I2B", parent = BasicPattern.class) | |
class I2B extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.I2B; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="I2C", parent = BasicPattern.class) | |
class I2C extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.I2C; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="I2S", parent = BasicPattern.class) | |
class I2S extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.I2S; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LCMP", parent = BasicPattern.class) | |
class LCMP extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LCMP; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FCMPL", parent = BasicPattern.class) | |
class FCMPL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FCMPL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FCMPG", parent = BasicPattern.class) | |
class FCMPG extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FCMPG; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DCMPL", parent = BasicPattern.class) | |
class DCMPL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DCMPL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DCMPG", parent = BasicPattern.class) | |
class DCMPG extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DCMPG; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IFEQ", parent = BasicPattern.class) | |
class IFEQ extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IFEQ; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IFNE", parent = BasicPattern.class) | |
class IFNE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IFNE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IFLT", parent = BasicPattern.class) | |
class IFLT extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IFLT; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IFGE", parent = BasicPattern.class) | |
class IFGE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IFGE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IFGT", parent = BasicPattern.class) | |
class IFGT extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IFGT; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IFLE", parent = BasicPattern.class) | |
class IFLE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IFLE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IF_ICMPEQ", parent = BasicPattern.class) | |
class IF_ICMPEQ extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IF_ICMPEQ; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IF_ICMPNE", parent = BasicPattern.class) | |
class IF_ICMPNE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IF_ICMPNE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IF_ICMPLT", parent = BasicPattern.class) | |
class IF_ICMPLT extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IF_ICMPLT; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IF_ICMPGE", parent = BasicPattern.class) | |
class IF_ICMPGE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IF_ICMPGE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IF_ICMPGT", parent = BasicPattern.class) | |
class IF_ICMPGT extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IF_ICMPGT; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IF_ICMPLE", parent = BasicPattern.class) | |
class IF_ICMPLE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IF_ICMPLE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IF_ACMPEQ", parent = BasicPattern.class) | |
class IF_ACMPEQ extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IF_ACMPEQ; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IF_ACMPNE", parent = BasicPattern.class) | |
class IF_ACMPNE extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IF_ACMPNE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="GOTO", parent = BasicPattern.class) | |
class GOTO extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.GOTO; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="JSR", parent = BasicPattern.class) | |
class JSR extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.JSR; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="RET", parent = BasicPattern.class) | |
class RET extends PatternNode { | |
@Attribute(value="var", dflt="") Integer var; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.RET; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
VarInsnNode cast = (VarInsnNode) node; | |
if (this.var != null && var != cast.var) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="TABLESWITCH", parent = BasicPattern.class) | |
class TABLESWITCH extends PatternNode { | |
@Attribute(value="min", dflt="") Integer min; | |
@Attribute(value="max", dflt="") Integer max; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.TABLESWITCH; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
TableSwitchInsnNode cast = (TableSwitchInsnNode) node; | |
if (this.max != null && max != cast.max) { | |
return false; | |
} | |
if (this.min != null && min != cast.min) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="LOOKUPSWITCH", parent = BasicPattern.class) | |
class LOOKUPSWITCH extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LOOKUPSWITCH; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
LookupSwitchInsnNode cast = (LookupSwitchInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IRETURN", parent = BasicPattern.class) | |
class IRETURN extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IRETURN; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="LRETURN", parent = BasicPattern.class) | |
class LRETURN extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.LRETURN; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="FRETURN", parent = BasicPattern.class) | |
class FRETURN extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.FRETURN; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="DRETURN", parent = BasicPattern.class) | |
class DRETURN extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.DRETURN; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ARETURN", parent = BasicPattern.class) | |
class ARETURN extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ARETURN; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="RETURN", parent = BasicPattern.class) | |
class RETURN extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.RETURN; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="GETSTATIC", parent = BasicPattern.class) | |
class GETSTATIC extends PatternNode { | |
@Attribute(value="owner", dflt="") String owner; | |
@Attribute(value="name", dflt="") String name; | |
@Attribute(value="desc", dflt="") String desc; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.GETSTATIC; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
FieldInsnNode cast = (FieldInsnNode) node; | |
if (!this.owner.isEmpty() && !owner.equals(cast.owner)) { | |
return false; | |
} | |
if (!this.name.isEmpty() && !name.equals(cast.name)) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="PUTSTATIC", parent = BasicPattern.class) | |
class PUTSTATIC extends PatternNode { | |
@Attribute(value="owner", dflt="") String owner; | |
@Attribute(value="name", dflt="") String name; | |
@Attribute(value="desc", dflt="") String desc; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.PUTSTATIC; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
FieldInsnNode cast = (FieldInsnNode) node; | |
if (!this.owner.isEmpty() && !owner.equals(cast.owner)) { | |
return false; | |
} | |
if (!this.name.isEmpty() && !name.equals(cast.name)) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="GETFIELD", parent = BasicPattern.class) | |
class GETFIELD extends PatternNode { | |
@Attribute(value="owner", dflt="") String owner; | |
@Attribute(value="name", dflt="") String name; | |
@Attribute(value="desc", dflt="") String desc; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.GETFIELD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
FieldInsnNode cast = (FieldInsnNode) node; | |
if (!this.owner.isEmpty() && !owner.equals(cast.owner)) { | |
return false; | |
} | |
if (!this.name.isEmpty() && !name.equals(cast.name)) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="PUTFIELD", parent = BasicPattern.class) | |
class PUTFIELD extends PatternNode { | |
@Attribute(value="owner", dflt="") String owner; | |
@Attribute(value="name", dflt="") String name; | |
@Attribute(value="desc", dflt="") String desc; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.PUTFIELD; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
FieldInsnNode cast = (FieldInsnNode) node; | |
if (!this.owner.isEmpty() && !owner.equals(cast.owner)) { | |
return false; | |
} | |
if (!this.name.isEmpty() && !name.equals(cast.name)) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="INVOKEVIRTUAL", parent = BasicPattern.class) | |
class INVOKEVIRTUAL extends PatternNode { | |
@Attribute(value="owner", dflt="") String owner; | |
@Attribute(value="name", dflt="") String name; | |
@Attribute(value="desc", dflt="") String desc; | |
@Attribute(value="itf", dflt="") Boolean itf; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.INVOKEVIRTUAL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
MethodInsnNode cast = (MethodInsnNode) node; | |
if (!this.owner.isEmpty() && !owner.equals(cast.owner)) { | |
return false; | |
} | |
if (!this.name.isEmpty() && !name.equals(cast.name)) { | |
return false; | |
} | |
if (this.itf != null && itf != cast.itf) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="INVOKESPECIAL", parent = BasicPattern.class) | |
class INVOKESPECIAL extends PatternNode { | |
@Attribute(value="owner", dflt="") String owner; | |
@Attribute(value="name", dflt="") String name; | |
@Attribute(value="desc", dflt="") String desc; | |
@Attribute(value="itf", dflt="") Boolean itf; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.INVOKESPECIAL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
MethodInsnNode cast = (MethodInsnNode) node; | |
if (!this.owner.isEmpty() && !owner.equals(cast.owner)) { | |
return false; | |
} | |
if (!this.name.isEmpty() && !name.equals(cast.name)) { | |
return false; | |
} | |
if (this.itf != null && itf != cast.itf) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="INVOKESTATIC", parent = BasicPattern.class) | |
class INVOKESTATIC extends PatternNode { | |
@Attribute(value="owner", dflt="") String owner; | |
@Attribute(value="name", dflt="") String name; | |
@Attribute(value="desc", dflt="") String desc; | |
@Attribute(value="itf", dflt="") Boolean itf; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.INVOKESTATIC; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
MethodInsnNode cast = (MethodInsnNode) node; | |
if (!this.owner.isEmpty() && !owner.equals(cast.owner)) { | |
return false; | |
} | |
if (!this.name.isEmpty() && !name.equals(cast.name)) { | |
return false; | |
} | |
if (this.itf != null && itf != cast.itf) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="INVOKEINTERFACE", parent = BasicPattern.class) | |
class INVOKEINTERFACE extends PatternNode { | |
@Attribute(value="owner", dflt="") String owner; | |
@Attribute(value="name", dflt="") String name; | |
@Attribute(value="desc", dflt="") String desc; | |
@Attribute(value="itf", dflt="") Boolean itf; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.INVOKEINTERFACE; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
MethodInsnNode cast = (MethodInsnNode) node; | |
if (!this.owner.isEmpty() && !owner.equals(cast.owner)) { | |
return false; | |
} | |
if (!this.name.isEmpty() && !name.equals(cast.name)) { | |
return false; | |
} | |
if (this.itf != null && itf != cast.itf) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="INVOKEDYNAMIC", parent = BasicPattern.class) | |
class INVOKEDYNAMIC extends PatternNode { | |
@Attribute(value="name", dflt="") String name; | |
@Attribute(value="desc", dflt="") String desc; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.INVOKEDYNAMIC; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InvokeDynamicInsnNode cast = (InvokeDynamicInsnNode) node; | |
if (!this.name.isEmpty() && !name.equals(cast.name)) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="NEW", parent = BasicPattern.class) | |
class NEW extends PatternNode { | |
@Attribute(value="desc", dflt="") String desc; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.NEW; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
TypeInsnNode cast = (TypeInsnNode) node; | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="NEWARRAY", parent = BasicPattern.class) | |
class NEWARRAY extends PatternNode { | |
@Attribute(value="operand", dflt="") Integer operand; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.NEWARRAY; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
IntInsnNode cast = (IntInsnNode) node; | |
if (this.operand != null && operand != cast.operand) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="ANEWARRAY", parent = BasicPattern.class) | |
class ANEWARRAY extends PatternNode { | |
@Attribute(value="desc", dflt="") String desc; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ANEWARRAY; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
TypeInsnNode cast = (TypeInsnNode) node; | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="ARRAYLENGTH", parent = BasicPattern.class) | |
class ARRAYLENGTH extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ARRAYLENGTH; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="ATHROW", parent = BasicPattern.class) | |
class ATHROW extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.ATHROW; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="CHECKCAST", parent = BasicPattern.class) | |
class CHECKCAST extends PatternNode { | |
@Attribute(value="desc", dflt="") String desc; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.CHECKCAST; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
TypeInsnNode cast = (TypeInsnNode) node; | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="INSTANCEOF", parent = BasicPattern.class) | |
class INSTANCEOF extends PatternNode { | |
@Attribute(value="desc", dflt="") String desc; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.INSTANCEOF; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
TypeInsnNode cast = (TypeInsnNode) node; | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="MONITORENTER", parent = BasicPattern.class) | |
class MONITORENTER extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.MONITORENTER; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="MONITOREXIT", parent = BasicPattern.class) | |
class MONITOREXIT extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.MONITOREXIT; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
InsnNode cast = (InsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="MULTIANEWARRAY", parent = BasicPattern.class) | |
class MULTIANEWARRAY extends PatternNode { | |
@Attribute(value="desc", dflt="") String desc; | |
@Attribute(value="dims", dflt="") Integer dims; | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.MULTIANEWARRAY; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
MultiANewArrayInsnNode cast = (MultiANewArrayInsnNode) node; | |
if (this.dims != null && dims != cast.dims) { | |
return false; | |
} | |
if (!this.desc.isEmpty() && !desc.equals(cast.desc)) { | |
return false; | |
} | |
return true; | |
} | |
} | |
@Handler(value="IFNULL", parent = BasicPattern.class) | |
class IFNULL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IFNULL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
@Handler(value="IFNONNULL", parent = BasicPattern.class) | |
class IFNONNULL extends PatternNode { | |
@Start | |
private void addPatternNode() { | |
parent.addNode(this); | |
} | |
public int getOpcode() { | |
return Opcodes.IFNONNULL; | |
} | |
public boolean test(AbstractInsnNode node) { | |
if (node.getOpcode() != getOpcode()) { | |
return false; | |
} | |
JumpInsnNode cast = (JumpInsnNode) node; | |
return true; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment