Search in sources :

Example 1 with IntermediateGraphWriter

use of org.candle.decompiler.intermediate.graph.enhancer.IntermediateGraphWriter in project candle-decompiler by bradsdavis.

the class ClassIntermediateVisitor method processIntermediate.

public void processIntermediate(IntermediateGraphContext igc) {
    List<GraphIntermediateVisitor> enhancers = new LinkedList<GraphIntermediateVisitor>();
    enhancers.add(new IntermediateGraphWriter(igc, "ibefore.dot"));
    enhancers.add(new MergeConditionExpression(igc));
    enhancers.add(new ConstantArrayCompressor(igc));
    enhancers.add(new ConditionToWhileLoop(igc));
    enhancers.add(new ConditionExternalToWhileLoop(igc));
    enhancers.add(new FinallyRangeVisitor(igc));
    enhancers.add(new CatchUpperRangeVisitor(igc));
    enhancers.add(new RetractDuplicateFinally(igc));
    enhancers.add(new RetractOrphanGoto(igc));
    enhancers.add(new WhileToForLoopIncrement(igc));
    enhancers.add(new WhileToForLoopIterator(igc));
    enhancers.add(new ArrayForToEnhancedFor(igc));
    enhancers.add(new If(igc));
    enhancers.add(new ElseIf(igc));
    enhancers.add(new Else(igc));
    enhancers.add(new MultiConditionalToSwitchIntermediate(igc));
    enhancers.add(new SwitchRangeVisitor(igc));
    enhancers.add(new SwitchGotoToBreak(igc));
    enhancers.add(new CaseEndRangeIntermediateVisitor(igc));
    enhancers.add(new RemoveCaseToCaseEdge(igc));
    enhancers.add(new WhileRangeVisitor(igc));
    enhancers.add(new IfLowerRangeVisitor(igc));
    enhancers.add(new Try(igc));
    enhancers.add(new RemoveImpliedVoidReturn(igc));
    enhancers.add(new ExpressionEnhancer(igc));
    enhancers.add(new IntermediateGraphWriter(igc, "iafter.dot"));
    for (GraphIntermediateVisitor giv : enhancers) {
        giv.process();
    }
}
Also used : SwitchGotoToBreak(org.candle.decompiler.intermediate.graph.enhancer.SwitchGotoToBreak) GraphIntermediateVisitor(org.candle.decompiler.intermediate.graph.GraphIntermediateVisitor) RetractOrphanGoto(org.candle.decompiler.intermediate.graph.enhancer.RetractOrphanGoto) RemoveCaseToCaseEdge(org.candle.decompiler.intermediate.graph.enhancer.RemoveCaseToCaseEdge) RemoveImpliedVoidReturn(org.candle.decompiler.intermediate.graph.enhancer.RemoveImpliedVoidReturn) ExpressionEnhancer(org.candle.decompiler.intermediate.graph.enhancer.ExpressionEnhancer) IntermediateGraphWriter(org.candle.decompiler.intermediate.graph.enhancer.IntermediateGraphWriter) CatchUpperRangeVisitor(org.candle.decompiler.intermediate.graph.range.CatchUpperRangeVisitor) ConditionToWhileLoop(org.candle.decompiler.intermediate.graph.enhancer.ConditionToWhileLoop) ConditionExternalToWhileLoop(org.candle.decompiler.intermediate.graph.enhancer.ConditionExternalToWhileLoop) IfLowerRangeVisitor(org.candle.decompiler.intermediate.graph.range.IfLowerRangeVisitor) Try(org.candle.decompiler.intermediate.graph.enhancer.Try) ArrayForToEnhancedFor(org.candle.decompiler.intermediate.graph.enhancer.ArrayForToEnhancedFor) RetractDuplicateFinally(org.candle.decompiler.intermediate.graph.enhancer.RetractDuplicateFinally) WhileToForLoopIterator(org.candle.decompiler.intermediate.graph.enhancer.WhileToForLoopIterator) ConstantArrayCompressor(org.candle.decompiler.intermediate.graph.enhancer.ConstantArrayCompressor) WhileToForLoopIncrement(org.candle.decompiler.intermediate.graph.enhancer.WhileToForLoopIncrement) WhileRangeVisitor(org.candle.decompiler.intermediate.graph.range.WhileRangeVisitor) SwitchRangeVisitor(org.candle.decompiler.intermediate.graph.range.SwitchRangeVisitor) LinkedList(java.util.LinkedList) ElseIf(org.candle.decompiler.intermediate.graph.enhancer.ElseIf) FinallyRangeVisitor(org.candle.decompiler.intermediate.graph.range.FinallyRangeVisitor) Else(org.candle.decompiler.intermediate.graph.enhancer.Else) MergeConditionExpression(org.candle.decompiler.intermediate.graph.enhancer.MergeConditionExpression) MultiConditionalToSwitchIntermediate(org.candle.decompiler.intermediate.graph.enhancer.MultiConditionalToSwitchIntermediate) ElseIf(org.candle.decompiler.intermediate.graph.enhancer.ElseIf) If(org.candle.decompiler.intermediate.graph.enhancer.If) CaseEndRangeIntermediateVisitor(org.candle.decompiler.intermediate.graph.range.CaseEndRangeIntermediateVisitor)

Aggregations

LinkedList (java.util.LinkedList)1 GraphIntermediateVisitor (org.candle.decompiler.intermediate.graph.GraphIntermediateVisitor)1 ArrayForToEnhancedFor (org.candle.decompiler.intermediate.graph.enhancer.ArrayForToEnhancedFor)1 ConditionExternalToWhileLoop (org.candle.decompiler.intermediate.graph.enhancer.ConditionExternalToWhileLoop)1 ConditionToWhileLoop (org.candle.decompiler.intermediate.graph.enhancer.ConditionToWhileLoop)1 ConstantArrayCompressor (org.candle.decompiler.intermediate.graph.enhancer.ConstantArrayCompressor)1 Else (org.candle.decompiler.intermediate.graph.enhancer.Else)1 ElseIf (org.candle.decompiler.intermediate.graph.enhancer.ElseIf)1 ExpressionEnhancer (org.candle.decompiler.intermediate.graph.enhancer.ExpressionEnhancer)1 If (org.candle.decompiler.intermediate.graph.enhancer.If)1 IntermediateGraphWriter (org.candle.decompiler.intermediate.graph.enhancer.IntermediateGraphWriter)1 MergeConditionExpression (org.candle.decompiler.intermediate.graph.enhancer.MergeConditionExpression)1 MultiConditionalToSwitchIntermediate (org.candle.decompiler.intermediate.graph.enhancer.MultiConditionalToSwitchIntermediate)1 RemoveCaseToCaseEdge (org.candle.decompiler.intermediate.graph.enhancer.RemoveCaseToCaseEdge)1 RemoveImpliedVoidReturn (org.candle.decompiler.intermediate.graph.enhancer.RemoveImpliedVoidReturn)1 RetractDuplicateFinally (org.candle.decompiler.intermediate.graph.enhancer.RetractDuplicateFinally)1 RetractOrphanGoto (org.candle.decompiler.intermediate.graph.enhancer.RetractOrphanGoto)1 SwitchGotoToBreak (org.candle.decompiler.intermediate.graph.enhancer.SwitchGotoToBreak)1 Try (org.candle.decompiler.intermediate.graph.enhancer.Try)1 WhileToForLoopIncrement (org.candle.decompiler.intermediate.graph.enhancer.WhileToForLoopIncrement)1