43 lines
1.2 KiB
Java
43 lines
1.2 KiB
Java
package jef.asm;
|
|
|
|
import jef.expressions.Expression;
|
|
import jef.expressions.modifier.ExpressionOptimizerBottomUp;
|
|
import jef.expressions.modifier.IConst0Fixer;
|
|
import jef.expressions.modifier.TableAliasInjector;
|
|
import jef.expressions.modifier.TernaryRewriter;
|
|
import jef.serializable.SerializableFunction;
|
|
import jef.serializable.SerializablePredicate;
|
|
import lombok.Getter;
|
|
import org.objectweb.asm.ClassReader;
|
|
import org.objectweb.asm.Opcodes;
|
|
|
|
import java.io.InputStream;
|
|
import java.io.Serializable;
|
|
import java.lang.invoke.SerializedLambda;
|
|
import java.util.stream.IntStream;
|
|
|
|
@Getter
|
|
public class OptimizedAsmParser extends AsmParser{
|
|
|
|
public OptimizedAsmParser(SerializablePredicate<?> predicate) {
|
|
super(predicate);
|
|
}
|
|
|
|
public OptimizedAsmParser(SerializableFunction<?, ?> function) {
|
|
super(function);
|
|
}
|
|
|
|
public Expression parse() throws AsmParseException {
|
|
var expr = super.parse();
|
|
|
|
System.out.println(expr);
|
|
expr = new TernaryRewriter().modify(expr);
|
|
System.out.println(expr);
|
|
expr = new IConst0Fixer().modify(expr);
|
|
System.out.println(expr);
|
|
expr = new ExpressionOptimizerBottomUp().modify(expr);
|
|
|
|
return expr;
|
|
}
|
|
}
|