public void ge_if(TextArea area,SimpleNode node,String prefix)throws SemanticErr{
        int child_num = node.jjtGetNumChildren();
        int cur_end_num = end_num;
        end_num = end_num+1;
        if(child_num==2)if_last=1;
        for(int i=0;i<child_num;i++){
            SimpleNode child = (SimpleNode)node.jjtGetChild(i);
            if(child.toString().equals("Logical_expression")){
                SimpleNode logical_node =(SimpleNode)child.jjtGetChild(0);
                ge_or_logical(area, logical_node, prefix,cur_end_num,0);
            }
            else if(child.toString().equals("Block")){
                String sub_prefix = prefix.substring(0,prefix.length()-2);
                String instr = sub_prefix+"if.then"+String.valueOf(then_num)+":\n";
                area.append(instr);
                then_num = then_num+1;
               // SimpleNode block_node = (SimpleNode)
                ge_block(area,child,prefix);
                String instr2 = prefix+"br label %if.end"+String.valueOf(cur_end_num)+"\n";
                area.append(instr2);
            }
            else if(child.toString().equals("Elif_statement")){
                if(i==child_num-1)if_last=1;
                String sub_prefix = prefix.substring(0,prefix.length()-2);
                String instr = sub_prefix+"if.else"+String.valueOf(else_num)+":\n";
                else_num = else_num+1;
                area.append(instr);
                SimpleNode elif_node= (SimpleNode)child.jjtGetChild(0).jjtGetChild(0);
                ge_or_logical(area,elif_node,prefix,cur_end_num,0);

                String sub_prefix2 = prefix.substring(0,prefix.length()-2);
                String instr2 = sub_prefix2+"if.then"+String.valueOf(then_num)+":\n";
                area.append(instr2);
                then_num = then_num+1;
                SimpleNode block_node = (SimpleNode)child.jjtGetChild(1);
                ge_block(area,block_node,prefix+"  ");

                String instr3 = prefix+"br label %if.end"+String.valueOf(cur_end_num)+"\n";
                area.append(instr3);

            }
            else if(child.toString().equals("Else_statement")){
                if_last=1;
                String sub_prefix = prefix.substring(0,prefix.length()-2);
                String instr = sub_prefix+"if.else"+String.valueOf(else_num)+":\n";
                else_num = else_num+1;
                area.append(instr);

                SimpleNode block_node = (SimpleNode)child.jjtGetChild(0);
                ge_block(area,block_node,prefix);
                String instr3 = prefix+"br label %if.end"+String.valueOf(cur_end_num)+"\n";
                area.append(instr3);
            }

        }
        String sub_prefix = prefix.substring(0,prefix.length()-2);
        String instr =sub_prefix+ "if.end"+String.valueOf(cur_end_num)+":\n";
        area.append(instr);
        if_last=0;
    }