}
WeaselInstruction startJump = instructions.getLast();
wcr = tree2.compile(compiler, compilerHelpher, null, new WeaselGenericClass(compiler.baseTypes.voidClass), null, false);
instructions.addAll(wcr.getInstructions());
WeaselTree.autoCast(compiler, wcr.getReturnType(), new WeaselGenericClass(compiler.baseTypes.booleanClass), token.line, instructions, true);
WeaselInstructionIf ifI;
instructions.add(token.line, ifI = new WeaselInstructionIf());
if(t.tokenType==WeaselTokenType.OPENBLOCK){
t = iterator.next();
while(t.tokenType!=WeaselTokenType.CLOSEBLOCK){
iterator.previous();
instructions.addAll(WeaselTree.parseAndCompile(compiler, compilerHelpher, iterator));
t = iterator.next();
}
}else{
iterator.previous();
instructions.addAll(WeaselTree.parseAndCompile(compiler, compilerHelpher, iterator));
}
WeaselInstruction continueJump = instructions.getLast();
if(tree3!=null){
wcr = tree3.compile(compiler, compilerHelpher, null, new WeaselGenericClass(compiler.baseTypes.voidClass), null, false);
instructions = wcr.getInstructions();
if(wcr.getReturnType().getBaseClass()!=compiler.baseTypes.voidClass)
instructions.add(t.line, new WeaselInstructionPop());
}
WeaselInstruction ifJump = new WeaselInstructionJump(startJump);
instructions.add(token.line, ifJump);
ifI.setTarget(ifJump);
WeaselBlockInfo wbi = compilerHelpher.closeBlock();
int pops = wbi.varsToPop();
if(pops==1){
instructions.add(t.line, new WeaselInstructionPop());
}else if(pops>1){