|
关于Basic程序解释器及编译原理的简单化(2)---C++封装好的Basic解释器(11) case '%': *r = (*r)%(*h); break; case '^': ex = *r; if (*h==0) { *r = 1; break; } for (t=*h-1;t>0;--t) *r=(*r)*ex; break; } } int CExecutable::look_up(char *c) { if(strcmp(c,"print")==0) return PRINT; if(strcmp(c,"Integer")==0) return INTEGER; if(strcmp(c,"Dim")==0) return DIM; if(strcmp(c,"As")==0) return AS; return 0; } void CExecutable::serror(int error) { char *e[] = { "syntax error", "uNBAlanced parentheses", "no expression present", "equal sign expected", "not a variable", "label table full", "duplicate label", "undefined label", "THEN expected",
|