Files
JEF/src/main/java/jef/asm/OptimizedAsmParser.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;
}
}