Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1.  
  2. #ifndef __errors_h__
  3. #define __errors_h__
  4.  
  5. void CheckArgType(LispInt aArgNr, LispPtr& aArguments, LispEnvironment& aEnvironment, LispInt aError);
  6. #define CHK_ARG(_pred,_argnr)           {if (!(_pred))                              CheckArgType(_argnr,aArguments, aEnvironment,KLispErrInvalidArg);}
  7. #define CHK_ARG_CORE(_pred,_argnr)      {if (!(_pred))                              CheckArgType(_argnr,ARGUMENT(0),aEnvironment,KLispErrInvalidArg);}
  8. #define CHK_ISLIST(_pred,_argnr)        {if (!InternalIsList(_pred))                     CheckArgType(_argnr,aArguments, aEnvironment,KLispErrNotList);}
  9. #define CHK_ISLIST_CORE(_pred,_argnr)   {if (!InternalIsList(_pred))                     CheckArgType(_argnr,ARGUMENT(0),aEnvironment,KLispErrNotList);}
  10. #define CHK_ISSTRING(_pred,_argnr)      {if (!InternalIsString((_pred)->String())) CheckArgType(_argnr,aArguments, aEnvironment,KLispErrNotString);}
  11. #define CHK_ISSTRING_CORE(_pred,_argnr) {if (!InternalIsString((_pred)->String())) CheckArgType(_argnr,ARGUMENT(0),aEnvironment,KLispErrNotString);}
  12.  
  13. void CheckNrArgs(LispInt n, LispPtr& aArguments, LispEnvironment& aEnvironment);
  14. #define TESTARGS(_n)  CheckNrArgs(_n,aArguments,aEnvironment)
  15.  
  16. void CheckFuncGeneric(LispInt aError,LispPtr& aArguments,LispEnvironment& aEnvironment);
  17. void CheckFuncGeneric(LispInt aError,LispEnvironment& aEnvironment);
  18. #define CHK(_pred,_err)      {if (!(_pred)) CheckFuncGeneric(_err,aArguments, aEnvironment);}
  19. #define CHK_CORE(_pred,_err) {if (!(_pred)) CheckFuncGeneric(_err,ARGUMENT(0),aEnvironment);}
  20. #define CHK2(_pred,_err)     {if (!(_pred)) CheckFuncGeneric(_err,aEnvironment);}
  21.  
  22. char *GenericErrorBuf(); // called (only) from errors.cpp and LispEnvironment::ErrorString()
  23. void RaiseError(char* str,...);
  24.  
  25. /*
  26. #define TESTARGS(_n)  \
  27.     { \
  28.       LispInt nrArguments = InternalListLength(aArguments);  \
  29.       Check(nrArguments == _n,KLispErrWrongNumberOfArgs); \
  30.     }
  31. */
  32.  
  33. #endif
  34.