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);
}
}