IRBodyBuilder builder = new IRBodyBuilder(functionTable);
IRBody body = builder.build(exp);
ByteCodeVisitor visitor = new ByteCodeVisitor(generationContext, mv);
ControlFlowGraph cfg = new ControlFlowGraph(body);
for(BasicBlock bb : cfg.getBasicBlocks()) {
System.out.println(bb.statementsToString());
visitor.startBasicBlock(bb);