TC++PL上的计算器代码(2) double prim(bool get) //处理初等式{ if(get) get_token(); switch(curr_tok){ case NUMBER: //浮点常量 {double v=number_value; get_token(); return v; } case NAME: {double& v=table[string_value]; if(get_token()==ASSING)v=expr(true); return v; } case MINUS: //一元 return -prim(true); case LP: {double e=expr(true); if(curr_tok!=RP)return error(") expected"); get_token(); return e; } default: return error("primary expected"); }}double term(bool get) //乘和除{double left=prim(get); for(;;) switch(curr_tok){ case MUL: left*=prim(true); break; case DIV: if(double d=prim(true)) { left/=d; break;