home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 275 / DPCS0111DVD.ISO / Toolkit / Audio-Visual / VirtualDub / Source / VirtualDub-1.9.10-src.7z / src / Sylia / ScriptError.h < prev    next >
Encoding:
C/C++ Source or Header  |  2009-09-14  |  1.2 KB  |  66 lines

  1. #ifndef f_SYLIA_SCRIPTERROR_H
  2. #define f_SYLIA_SCRIPTERROR_H
  3.  
  4. class VDScriptError {
  5. public:
  6.     int err;
  7.  
  8.     enum {
  9.         PARSE_ERROR=1,
  10.         SEMICOLON_EXPECTED,
  11.         IDENTIFIER_EXPECTED,
  12.  
  13.         TYPE_INT_REQUIRED,
  14.         TYPE_ARRAY_REQUIRED,
  15.         TYPE_FUNCTION_REQUIRED,
  16.         TYPE_OBJECT_REQUIRED,
  17.  
  18.         OBJECT_MEMBER_NAME_REQUIRED,
  19.         FUNCCALLEND_EXPECTED,
  20.         TOO_MANY_PARAMS,
  21.         DIVIDE_BY_ZERO,
  22.         VAR_NOT_FOUND,
  23.         MEMBER_NOT_FOUND,
  24.         OVERLOADED_FUNCTION_NOT_FOUND,
  25.         IDENT_TOO_LONG,
  26.         OPERATOR_EXPECTED,
  27.         CLOSEPARENS_EXPECTED,
  28.         CLOSEBRACKET_EXPECTED,
  29.  
  30.         VAR_UNDEFINED,
  31.  
  32.         OUT_OF_STRING_SPACE,
  33.         OUT_OF_MEMORY,
  34.         INTERNAL_ERROR,
  35.         EXTERNAL_ERROR,
  36.  
  37.         FCALL_OUT_OF_RANGE,
  38.         FCALL_INVALID_PTYPE,
  39.         FCALL_UNKNOWN_STR,
  40.  
  41.         ARRAY_INDEX_OUT_OF_BOUNDS,
  42.  
  43.         NUMERIC_OVERFLOW,
  44.         STRING_NOT_AN_INTEGER_VALUE,
  45.         STRING_NOT_A_REAL_VALUE,
  46.  
  47.         ASSERTION_FAILED,
  48.         AMBIGUOUS_CALL,
  49.         CANNOT_CAST
  50.     };
  51.  
  52.     VDScriptError(int err_num) : err(err_num) { }
  53.  
  54.     int getErr() { return err; }
  55. };
  56.  
  57. #define SCRIPT_ERROR(x)            throw VDScriptError(VDScriptError::##x)
  58.  
  59. const char *VDScriptTranslateError(int);
  60.  
  61. static inline const char *VDScriptTranslateError(VDScriptError cse) {
  62.     return VDScriptTranslateError(cse.getErr());
  63. }
  64.  
  65. #endif
  66.