1 19 20 package jode.flow; 21 import jode.GlobalOptions; 22 import jode.expr.*; 23 24 public class CreateForInitializer { 25 26 31 public static boolean transform(LoopBlock forBlock, StructuredBlock last) { 32 33 if (!(last.outer instanceof SequentialBlock)) 34 return false; 35 36 SequentialBlock sequBlock = (SequentialBlock) last.outer; 37 38 if (!(sequBlock.subBlocks[0] instanceof InstructionBlock)) 39 return false; 40 41 InstructionBlock init = (InstructionBlock) sequBlock.subBlocks[0]; 42 43 if (!init.getInstruction().isVoid() 44 || !(init.getInstruction() instanceof CombineableOperator) 45 || !forBlock.conditionMatches((CombineableOperator) 46 init.getInstruction())) 47 return false; 48 49 if (GlobalOptions.verboseLevel > 0) 50 GlobalOptions.err.print('f'); 51 52 forBlock.setInit((InstructionBlock) sequBlock.subBlocks[0]); 53 return true; 54 } 55 } 56 | Popular Tags |