package parse; import java.awt.SystemColor; import java.util.ArrayList; import java.util.List; //enum type_id {NUM,STRING,BOOL,NORMAL_NUM,NORMAL_STRING}; enum type_com{BIG,LITTLE,EQUAL,BIG_EQUAL,LITTLE_EQUAL}; enum type_cal{BIG,LITTLE,EQUAL,BIG_EQUAL,LITTLE_EQUAL, GOT,ADD,SUB,MUL,DIV,ID,NUM,STRING,BOOL,NORMAL_NUM, NORMAL_STRING,TRANS_NUM,TRANS_STRING,TRANS_BOOL,FUNC,WHI,IFE}; enum type_ret{NUM,STRING,BOOL}; class Exp{ type_cal type; String line; String row; } //ÊýÖµ»òÕß±äÁ¿ class Exp_mark extends Exp{ String value; List list_value=null; public void set_listvalue(Exp s){ if(list_value==null){ list_value=new ArrayList(); } list_value.add(s); } Exp got=null; //ÅжϱäÁ¿ºóÃæÊÇ·ñÊÇÒ»¸öµÈºÅ } class Exp_type extends Exp{ Exp Id=null; //¶¨ÒåµÄ±äÁ¿ } class Exp_calcul extends Exp{ Exp left; Exp right; } //Ìõ¼þ class Exp_cond extends Exp{ Exp left; Exp_comp exp_comp; Exp right; } //±È½Ï·ûºÅ class Exp_comp extends Exp{ } //º¯Êý¶¨Òå class Exp_func extends Exp{ Exp_funcname name; // String return_type; // Exp_defvar exp; //´«Èë²ÎÊý²»¶¨ // List list_var=null; // exp±í´ïʽµÄ¸öÊýÒ²²»¶¨ List list_exp=null; // whileÑ­»·µÄ¸öÊýÒ²²»¶¨ // List list_whi=null; // ifÌõ¼þÓï¾äµÄ¸öÊýÒ²²»¶¨ // List list_ife=null; public void setExp(Exp exp){ if(list_exp==null){ list_exp=new ArrayList(); } list_exp.add(exp); } } class Exp_funcname extends Exp{ String name=null; } ////±äÁ¿¶¨Òå //class Exp_defvar extends Exp{ // // String id_name; // //} class Exp_whi extends Exp{ // Object exp; Exp_cond condition; // Exp_ife if_el; Exp next=null; // List list_whi=null; // List list_if=null; // List list_exp=null; // public void setList_whi(Exp whi){ // if(list_whi==null){ // list_whi=new ArrayList(); // } // list_whi.add(whi); // } // public void setList_if(Exp ife){ // if(list_if==null){ // list_if=new ArrayList(); // } // list_if.add(ife); // } // public void setList_exp(Exp exp){ // if(list_exp==null){ // list_exp=new ArrayList(); // } // list_exp.add(exp); // } } class Exp_ife extends Exp{ Exp_cond condition; Exp left=null; //Âú×ãÌõ¼þʱ Exp right=null; //²»Âú×ãÌõ¼þʱ // List list_whi=null; // List list_if=null; // List list_exp=null; // public void setList_whi(Exp whi){ // if(list_whi==null){ // list_whi=new ArrayList(); // } // list_whi.add(whi); // } // public void setList_if(Exp ife){ // if(list_if==null){ // list_if=new ArrayList(); // } // list_if.add(ife); // } // public void setList_exp(Exp exp){ // if(list_exp==null){ // list_exp=new ArrayList(); // } // list_exp.add(exp); // } // //// elseÌõ¼þϵĿÉÄܵÄÓï¾ä // Exp_cond condition1; // List list_whi1=null; // List list_if1=null; // List list_exp1=null; // public void setList_whi1(Exp whi){ // if(list_whi1==null){ // list_whi1=new ArrayList(); // } // list_whi1.add(whi); // } // public void setList_if1(Exp ife){ // if(list_if1==null){ // list_if1=new ArrayList(); // } // list_if1.add(ife); // } // public void setList_exp1(Exp exp){ // if(list_exp1==null){ // list_exp1=new ArrayList(); // } // list_exp1.add(exp); // } } class Exp_B extends Exp{ // Exp list_whi=null; // Exp exp_if=null; List list_exp=null; // public void setList_whi(Exp whi){ // list_whi=whi; // } // public void setList_if(Exp ife){ // exp_if=ife; // } public void setList_exp(Exp exp){ if(list_exp==null){ list_exp=new ArrayList(); } list_exp.add(exp); } }