char *CParameters::getStringPtr(char* parameterName) { int index= getParameterIndex(parameterName); return getStringPtr(index); }
int ReportError(int no,...) { va_list v1; va_start (v1,no); char Buffer[32]; KWEnum_t kw; int i,j; char*msg; switch (no) { case UNEXPECTEDID: i=va_arg(v1,int); sprintf(message,"'%s' unexpected", getStringPtr(i)); break; case UNKNOWNID: i=va_arg(v1,int); sprintf(message,"'%s' unknown", getStringPtr(i)); break; case EXPECTEDCHAR: i=va_arg(v1,int); if (i<256) { // signe char notification sprintf(message,"'%c' expected",(char)i); } else { // dual char notification sprintf(message,"'%c%d' expected", (char)(i&0xff),(char)(i>>8)); } break; case EXPECTEDKW: kw=va_arg(v1,KWEnum_t); i=KWStart[kw]; j=KWStart[kw+1]-i; memcpy(Buffer,KWPool+i,j); Buffer[j]=0; sprintf(message,"\"%s\" expected", Buffer); break; case CANTOPEN: msg=va_arg(v1,char*); sprintf(message,"Could not open file \"%s\"",msg); break; case REGULAR_TEXT: msg=va_arg(v1,char*); sprintf(message,"%s",msg); break; case UNEXPECTEDCHAR: i=va_arg(v1,int); sprintf(message,"unexpected '%c'",(char)i); break; case DUPLICATEID: i=va_arg(v1,int); sprintf(message,"duplicate '%s'",getStringPtr(i)); break; case UNEXPECTEDKW: kw=va_arg(v1,KWEnum_t); i=KWStart[kw]; j=KWStart[kw+1]-i; memcpy(Buffer,KWPool+i,j); Buffer[j]=0; sprintf(message,"unexpected \"%s\"", Buffer); break; case UNDEFFWDTYPE: i=va_arg(v1,int); sprintf(message,"undefined '%s'", getStringPtr(i)); break; case UNDECLAREDLABEL: i=va_arg(v1,int); sprintf(message,"undeclared '%s'", getStringPtr(i)); break; case UNDEFINEDID: i=va_arg(v1,int); sprintf(message,"undefined '%s'",getStringPtr(i)); break; case UNDECLAREDLBL: i=va_arg(v1,int); sprintf(message,"undeclared '%s'",getStringPtr(i)); break; case LBLALREADYDEF: i=va_arg(v1,int); sprintf(message,"duplicate definition of '%s'",getStringPtr(i)); break; case UNKNOWNMNEMONIC: Pool[IdPtr+LenID]=0; sprintf(message,"unknown mnemonic '%s'",Pool+IdPtr); break; case INVALIDOPCODE: Pool[IdPtr+LenID]=0; sprintf(message,"invalid opcode '%s'",Pool+IdPtr); break; case INTERNAL: msg=va_arg(v1,char*); sprintf(message,"Internal Error '%s'",msg); break; } longjmp(jmp_env,no); return no; }