Package org.candle.decompiler.intermediate.graph.range

Source Code of org.candle.decompiler.intermediate.graph.range.WhileRangeVisitor

package org.candle.decompiler.intermediate.graph.range;

import org.candle.decompiler.intermediate.code.AbstractIntermediate;
import org.candle.decompiler.intermediate.code.loop.EnhancedForIntermediate;
import org.candle.decompiler.intermediate.code.loop.ForIntermediate;
import org.candle.decompiler.intermediate.code.loop.WhileIntermediate;
import org.candle.decompiler.intermediate.graph.GraphIntermediateVisitor;
import org.candle.decompiler.intermediate.graph.context.IntermediateGraphContext;

public class WhileRangeVisitor extends GraphIntermediateVisitor {

 
  public WhileRangeVisitor(IntermediateGraphContext igc) {
    super(igc, false);
  }

  @Override
  public void visitWhileIntermediate(WhileIntermediate line) {
    AbstractIntermediate falseTarget = igc.getFalseTarget(line);
    AbstractIntermediate trueTarget = igc.getTrueTarget(line);
   
    line.getBlockRange().setStart(trueTarget.getInstruction());
    line.getBlockRange().setEnd(falseTarget.getInstruction().getPrev());
    super.visitWhileIntermediate(line);
  }
 
  @Override
  public void visitForIntermediate(ForIntermediate line) {
    this.visitWhileIntermediate(line);
  }
 
  @Override
  public void visitEnhancedForLoopIntermediate(EnhancedForIntermediate line) {
    this.visitWhileIntermediate(line);
  }
}
TOP

Related Classes of org.candle.decompiler.intermediate.graph.range.WhileRangeVisitor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.