Skip to content

Instantly share code, notes, and snippets.

@CalebWhiting
Last active November 24, 2016 22:28
Show Gist options
  • Save CalebWhiting/e9a14729b89db17faa24cc8363a5fe7b to your computer and use it in GitHub Desktop.
Save CalebWhiting/e9a14729b89db17faa24cc8363a5fe7b to your computer and use it in GitHub Desktop.
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