|
关于Basic程序解释器及编译原理的简单化(2)---C++封装好的Basic解释器(10) (*index)++; return; default: serror(0); } } int CExecutable::find_var(char *var_name,void *value) { for(int i=0;i<=m_intArray.size()-1;i++) if(!strcmp(var_name,m_intArray.at(i).name)) { int *int_value=(int *)value; *int_value=m_intArray.at(i).value; return 1; } return 0; } int CExecutable::Isvar(char *name) { if(m_intArray.size()==0) return 0; for(int i=0;i<=m_intArray.size()-1;i++) if(!strcmp(name,m_intArray.at(i).name)) return INTEGER; return 0; } /* perform the specified arithmetic */ void CExecutable::arith(char o,int *r,int *h) { /*register*/ int t,ex; switch (o) { case '-': *r = *r-*h; break; case '+': *r = *r+*h; break; case '*': *r = *r**h; break; case '/': *r = (*r)/(*h); break;
|