| | 1 | /* |
| | 2 | $Header: d:/cvsroot/tads/TADS2/ERR.H,v 1.3 1999/07/11 00:46:29 MJRoberts Exp $ |
| | 3 | */ |
| | 4 | |
| | 5 | /* |
| | 6 | * Copyright (c) 1991, 2002 Michael J. Roberts. All Rights Reserved. |
| | 7 | * |
| | 8 | * Please see the accompanying license file, LICENSE.TXT, for information |
| | 9 | * on using and copying this software. |
| | 10 | */ |
| | 11 | /* |
| | 12 | Name |
| | 13 | err.h - error handling definitions |
| | 14 | Function |
| | 15 | Defines error handling mechanism |
| | 16 | Notes |
| | 17 | This package defines a set of macros that allows code to raise and |
| | 18 | handle exceptions. A macro is provided which signals an error, which |
| | 19 | does a non-local goto to the innermost enclosing exception handler. |
| | 20 | A set of macros sets up exception handling code. |
| | 21 | |
| | 22 | To catch exceptions that occur inside a block of code (i.e., in the |
| | 23 | code or in any subroutines called by the code), begin the block with |
| | 24 | ERRBEGIN. At the end of the protected code, place the exception |
| | 25 | handler, which starts with ERRCATCH. At the end of the exception |
| | 26 | handler, place ERREND. If no exception occurs, execution goes |
| | 27 | through the protected code, then resumes at the code following |
| | 28 | the ERREND. |
| | 29 | |
| | 30 | The exception handler can signal another error, which will cause |
| | 31 | the next enclosing frame to catch the error. Alternatively, if |
| | 32 | the exception handler doesn't signal an error or return, execution |
| | 33 | continues at the code following the ERREND. Exceptions that are |
| | 34 | signalled during exception handling will be caught by the next |
| | 35 | enclosing frame, unless the exception handler code is itself |
| | 36 | protected by another ERRBEGIN-ERREND block. |
| | 37 | |
| | 38 | To signal an error, use errsig(). |
| | 39 | |
| | 40 | To use a string argument in a signalled error, cover the string |
| | 41 | with errstr(ctx, str, len); for example: |
| | 42 | |
| | 43 | errsig1(ctx, ERR_XYZ, ERRTSTR, errstr(ctx, buf, strlen(buf))); |
| | 44 | |
| | 45 | This copies the string into a buffer that is unaffected by |
| | 46 | stack resetting during error signalling. |
| | 47 | Modified |
| | 48 | 12/30/92 MJRoberts - use new central library ler.h |
| | 49 | 09/14/92 MJRoberts - add errlog2 |
| | 50 | 08/15/91 MJRoberts - creation |
| | 51 | */ |
| | 52 | |
| | 53 | #ifndef ERR_INCLUDED |
| | 54 | #define ERR_INCLUDED |
| | 55 | |
| | 56 | |
| | 57 | #include "os.h" |
| | 58 | #ifndef STD_INCLUDED |
| | 59 | #include "std.h" |
| | 60 | #endif |
| | 61 | #include "ler.h" |
| | 62 | |
| | 63 | |
| | 64 | /* |
| | 65 | * for compatility with old facility-free mechanism, signal with |
| | 66 | * facility "TADS" |
| | 67 | */ |
| | 68 | #define errsig(ctx, err) errsigf(ctx, "TADS", err) |
| | 69 | #define errsig1(c, e, t, a) errsigf1(c,"TADS",e,t,a) |
| | 70 | #define errsig2(c, e, t1, a1, t2, a2) errsigf2(c,"TADS",e,t1,a1,t2,a2) |
| | 71 | #define errlog(c, e) errlogf(c, "TADS", e) |
| | 72 | #define errlog1(c, e, t, a) errlogf1(c,"TADS",e,t,a) |
| | 73 | #define errlog2(c, e, t1, a1, t2, a2) errlogf2(c,"TADS",e,t1,a1,t2,a2) |
| | 74 | |
| | 75 | |
| | 76 | |
| | 77 | /*---------------------------- TADS Error Codes ----------------------------*/ |
| | 78 | /* memory/cache manager errors */ |
| | 79 | #define ERR_NOMEM 1 /* out of memory */ |
| | 80 | #define ERR_FSEEK 2 /* error seeking in file */ |
| | 81 | #define ERR_FREAD 3 /* error reading from file */ |
| | 82 | #define ERR_NOPAGE 4 /* no more page slots */ |
| | 83 | #define ERR_REALCK 5 /* attempting to reallocate a locked object */ |
| | 84 | #define ERR_SWAPBIG 6 /* swapfile limit reached - out of virtual memory */ |
| | 85 | #define ERR_FWRITE 7 /* error writing file */ |
| | 86 | #define ERR_SWAPPG 8 /* exceeded swap page table limit */ |
| | 87 | #define ERR_CLIUSE 9 /* requested client object number already in use */ |
| | 88 | #define ERR_CLIFULL 10 /* client mapping table is full */ |
| | 89 | #define ERR_NOMEM1 11 /* swapping/garbage collection failed to find enuf */ |
| | 90 | #define ERR_NOMEM2 12 /* no memory to resize (expand) an object */ |
| | 91 | #define ERR_OPSWAP 13 /* unable to open swap file */ |
| | 92 | #define ERR_NOHDR 14 /* can't get a new object header */ |
| | 93 | #define ERR_NOLOAD 15 /* mcm cannot find object to load (internal error) */ |
| | 94 | #define ERR_LCKFRE 16 /* attempting to free a locked object (internal) */ |
| | 95 | #define ERR_INVOBJ 17 /* invalid object */ |
| | 96 | #define ERR_BIGOBJ 18 /* object too big - exceeds memory allocation limit */ |
| | 97 | |
| | 98 | /* lexical analysis errors */ |
| | 99 | #define ERR_INVTOK 100 /* invalid token */ |
| | 100 | #define ERR_STREOF 101 /* end of file while scanning string */ |
| | 101 | #define ERR_TRUNC 102 /* symbol too long - truncated */ |
| | 102 | #define ERR_NOLCLSY 103 /* no space in local symbol table */ |
| | 103 | #define ERR_PRPDIR 104 /* invalid preprocessor (#) directive */ |
| | 104 | #define ERR_INCNOFN 105 /* no filename in #include directive */ |
| | 105 | #define ERR_INCSYN 106 /* invalid #include syntax */ |
| | 106 | #define ERR_INCSEAR 107 /* can't find included file */ |
| | 107 | #define ERR_INCMTCH 108 /* no matching delimiter in #include filename */ |
| | 108 | #define ERR_MANYSYM 109 /* out of space for symbol table */ |
| | 109 | #define ERR_LONGLIN 110 /* line too long */ |
| | 110 | #define ERR_INCRPT 111 /* header file already included - ignored */ |
| | 111 | #define ERR_PRAGMA 112 /* unknown pragma (ignored) */ |
| | 112 | #define ERR_BADPELSE 113 /* unexpected #else */ |
| | 113 | #define ERR_BADENDIF 114 /* unexpected #endif */ |
| | 114 | #define ERR_BADELIF 115 /* unexpected #elif */ |
| | 115 | #define ERR_MANYPIF 116 /* #if nesting too deep */ |
| | 116 | #define ERR_DEFREDEF 117 /* #define symbol already defined */ |
| | 117 | #define ERR_PUNDEF 118 /* #undef symbol not defined */ |
| | 118 | #define ERR_NOENDIF 119 /* missing #endif */ |
| | 119 | #define ERR_MACNEST 120 /* macros nested too deeply */ |
| | 120 | #define ERR_BADISDEF 121 /* invalid argument for defined() operator */ |
| | 121 | #define ERR_PIF_NA 122 /* #if is not implemented */ |
| | 122 | #define ERR_PELIF_NA 123 /* #elif is not implemented */ |
| | 123 | #define ERR_P_ERROR 124 /* error directive: %s */ |
| | 124 | #define ERR_LONG_FILE_MACRO 125 /* __FILE__ expansion too long */ |
| | 125 | #define ERR_LONG_LINE_MACRO 126 /* __LINE__ expansion too long */ |
| | 126 | |
| | 127 | /* undo errors */ |
| | 128 | #define ERR_UNDOVF 200 /* operation is too big for undo log */ |
| | 129 | #define ERR_NOUNDO 201 /* no more undo information */ |
| | 130 | #define ERR_ICUNDO 202 /* incomplete undo (no previous savepoint) */ |
| | 131 | |
| | 132 | /* parser errors */ |
| | 133 | #define ERR_REQTOK 300 /* expected token (arg 1) - found something else */ |
| | 134 | #define ERR_REQSYM 301 /* expected symbol */ |
| | 135 | #define ERR_REQPRP 302 /* expected a property name */ |
| | 136 | #define ERR_REQOPN 303 /* expected operand */ |
| | 137 | #define ERR_REQARG 304 /* expected comma or closing paren (arg list) */ |
| | 138 | #define ERR_NONODE 305 /* no space for new parse node */ |
| | 139 | #define ERR_REQOBJ 306 /* epxected object name */ |
| | 140 | #define ERR_REQEXT 307 /* redefining symbol as external function */ |
| | 141 | #define ERR_REQFCN 308 /* redefining symbol as function */ |
| | 142 | #define ERR_NOCLASS 309 /* can't use CLASS with function/external function */ |
| | 143 | #define ERR_REQUNO 310 /* required unary operator */ |
| | 144 | #define ERR_REQBIN 311 /* required binary operator */ |
| | 145 | #define ERR_INVBIN 312 /* invalid binary operator */ |
| | 146 | #define ERR_INVASI 313 /* invalid assignment */ |
| | 147 | #define ERR_REQVAR 314 /* required variable name */ |
| | 148 | #define ERR_LCLSYN 315 /* required comma or semicolon in local list */ |
| | 149 | #define ERR_REQRBR 316 /* required right brace (eof before end of group) */ |
| | 150 | #define ERR_BADBRK 317 /* 'break' without 'while' */ |
| | 151 | #define ERR_BADCNT 318 /* 'continue' without 'while' */ |
| | 152 | #define ERR_BADELS 319 /* 'else' without 'if' */ |
| | 153 | #define ERR_WEQASI 320 /* warning: possible use of '=' where ':=' intended */ |
| | 154 | #define ERR_EOF 321 /* unexpected end of file */ |
| | 155 | #define ERR_SYNTAX 322 /* general syntax error */ |
| | 156 | #define ERR_INVOP 323 /* invalid operand type */ |
| | 157 | #define ERR_NOMEMLC 324 /* no memory for new local symbol table */ |
| | 158 | #define ERR_NOMEMAR 325 /* no memory for argument symbol table */ |
| | 159 | #define ERR_FREDEF 326 /* redefining a function which is already defined */ |
| | 160 | #define ERR_NOSW 327 /* 'case' or 'default' and not in switch block */ |
| | 161 | #define ERR_SWRQCN 328 /* constant required in switch case value */ |
| | 162 | #define ERR_REQLBL 329 /* label required for 'goto' */ |
| | 163 | #define ERR_NOGOTO 330 /* 'goto' label never defined */ |
| | 164 | #define ERR_MANYSC 331 /* too many superclasses for object */ |
| | 165 | #define ERR_OREDEF 332 /* redefining symbol as object */ |
| | 166 | #define ERR_PREDEF 333 /* property being redefined in object */ |
| | 167 | #define ERR_BADPVL 334 /* invalid property value */ |
| | 168 | #define ERR_BADVOC 335 /* bad vocabulary property value */ |
| | 169 | #define ERR_BADTPL 336 /* bad template property value (need sstring) */ |
| | 170 | #define ERR_LONGTPL 337 /* template base property name too long */ |
| | 171 | #define ERR_MANYTPL 338 /* too many templates (internal compiler limit) */ |
| | 172 | #define ERR_BADCMPD 339 /* bad value for compound word (sstring required) */ |
| | 173 | #define ERR_BADFMT 340 /* bad value for format string (sstring needed) */ |
| | 174 | #define ERR_BADSYN 341 /* invalid value for synonym (sstring required) */ |
| | 175 | #define ERR_UNDFSYM 342 /* undefined symbol */ |
| | 176 | #define ERR_BADSPEC 343 /* bad special word */ |
| | 177 | #define ERR_NOSELF 344 /* "self" not valid in this context */ |
| | 178 | #define ERR_STREND 345 /* warning: possible unterminated string */ |
| | 179 | #define ERR_MODRPLX 346 /* modify/replace not allowed with external func */ |
| | 180 | #define ERR_MODFCN 347 /* modify not allowed with function */ |
| | 181 | #define ERR_MODFWD 348 /* modify/replace not allowed with forward func */ |
| | 182 | #define ERR_MODOBJ 349 /* modify can only be used with a defined object */ |
| | 183 | #define ERR_RPLSPEC 350 /* warning - replacing specialWords */ |
| | 184 | #define ERR_SPECNIL 351 /* nil only allowed with modify specialWords */ |
| | 185 | #define ERR_BADLCL 353 /* 'local' statement must precede executable code */ |
| | 186 | #define ERR_IMPPROP 354 /* implied verifier '%s' is not a property */ |
| | 187 | #define ERR_BADTPLF 355 /* invalid command template flag */ |
| | 188 | #define ERR_NOTPLFLG 356 /* flags are not allowed with old file format */ |
| | 189 | #define ERR_AMBIGBIN 357 /* warning: operator '%s' could be binary */ |
| | 190 | #define ERR_PIA 358 /* warning: possibly incorrect assignment */ |
| | 191 | #define ERR_BADSPECEXPR 359 /* invalid speculation evaluation */ |
| | 192 | |
| | 193 | /* code generation errors */ |
| | 194 | #define ERR_OBJOVF 400 /* object cannot grow any bigger - code too big */ |
| | 195 | #define ERR_NOLBL 401 /* no more temporary labels/fixups */ |
| | 196 | #define ERR_LBNOSET 402 /* (internal error) label never set */ |
| | 197 | #define ERR_INVLSTE 403 /* invalid datatype for list element */ |
| | 198 | #define ERR_MANYDBG 404 /* too many debugger line records (internal limit) */ |
| | 199 | |
| | 200 | /* vocabulary setup errors */ |
| | 201 | #define ERR_VOCINUS 450 /* vocabulary being redefined for object */ |
| | 202 | #define ERR_VOCMNPG 451 /* too many vocwdef pages (internal limit) */ |
| | 203 | #define ERR_VOCREVB 452 /* redefining same verb */ |
| | 204 | #define ERR_VOCREVB2 453 /* redefining same verb - two arguments */ |
| | 205 | |
| | 206 | /* set-up errors */ |
| | 207 | #define ERR_LOCNOBJ 500 /* location of object %s is not an object */ |
| | 208 | #define ERR_CNTNLST 501 /* contents of object %s is not list */ |
| | 209 | #define ERR_SUPOVF 502 /* overflow trying to build contents list */ |
| | 210 | #define ERR_RQOBJNF 503 /* required object %s not found */ |
| | 211 | #define ERR_WRNONF 504 /* warning - object %s not found */ |
| | 212 | #define ERR_MANYBIF 505 /* too many built-in functions (internal error) */ |
| | 213 | |
| | 214 | /* fio errors */ |
| | 215 | #define ERR_OPWGAM 600 /* unable to open game for writing */ |
| | 216 | #define ERR_WRTGAM 601 /* error writing to game file */ |
| | 217 | #define ERR_FIOMSC 602 /* too many sc's for writing in fiowrt */ |
| | 218 | #define ERR_UNDEFF 603 /* undefined function */ |
| | 219 | #define ERR_UNDEFO 604 /* undefined object */ |
| | 220 | #define ERR_UNDEF 605 /* undefined symbols found */ |
| | 221 | #define ERR_OPRGAM 606 /* unable to open game for reading */ |
| | 222 | #define ERR_RDGAM 607 /* error reading game file */ |
| | 223 | #define ERR_BADHDR 608 /* file has invalid header - not TADS game file */ |
| | 224 | #define ERR_UNKRSC 609 /* unknown resource type in .gam file */ |
| | 225 | #define ERR_UNKOTYP 610 /* unknown object type in OBJ resource */ |
| | 226 | #define ERR_BADVSN 611 /* file saved by different incompatible version */ |
| | 227 | #define ERR_LDGAM 612 /* error loading object on demand */ |
| | 228 | #define ERR_LDBIG 613 /* object too big for load region (prob. internal) */ |
| | 229 | #define ERR_UNXEXT 614 /* did not expect external function */ |
| | 230 | #define ERR_WRTVSN 615 /* compiler cannot write the requested version */ |
| | 231 | #define ERR_VNOCTAB 616 /* format version cannot be used with -ctab */ |
| | 232 | #define ERR_BADHDRRSC 617 /* invalid resource file header in file %s */ |
| | 233 | #define ERR_RDRSC 618 /* error reading resource file "xxx" */ |
| | 234 | |
| | 235 | /* character mapping errors */ |
| | 236 | #define ERR_CHRNOFILE 700 /* unable to load character mapping file */ |
| | 237 | |
| | 238 | /* user interrupt */ |
| | 239 | #define ERR_USRINT 990 /* user requested cancel of current operation */ |
| | 240 | |
| | 241 | /* run-time errors */ |
| | 242 | #define ERR_STKOVF 1001 /* stack overflow */ |
| | 243 | #define ERR_HPOVF 1002 /* heap overflow */ |
| | 244 | #define ERR_REQNUM 1003 /* numeric value required */ |
| | 245 | #define ERR_STKUND 1004 /* stack underflow */ |
| | 246 | #define ERR_REQLOG 1005 /* logical value required */ |
| | 247 | #define ERR_INVCMP 1006 /* invalid datatypes for magnitude comparison */ |
| | 248 | #define ERR_REQSTR 1007 /* string value required */ |
| | 249 | #define ERR_INVADD 1008 /* invalid datatypes for '+' operator */ |
| | 250 | #define ERR_INVSUB 1009 /* invalid datatypes for binary '-' operator */ |
| | 251 | #define ERR_REQVOB 1010 /* require object value */ |
| | 252 | #define ERR_REQVFN 1011 /* required function pointer */ |
| | 253 | #define ERR_REQVPR 1012 /* required property number value */ |
| | 254 | |
| | 255 | /* non-error conditions: run-time EXIT, ABORT, ASKIO, ASKDO */ |
| | 256 | #define ERR_RUNEXIT 1013 /* 'exit' statement executed */ |
| | 257 | #define ERR_RUNABRT 1014 /* 'abort' statement executed */ |
| | 258 | #define ERR_RUNASKD 1015 /* 'askdo' statement executed */ |
| | 259 | #define ERR_RUNASKI 1016 /* 'askio' executed; int arg 1 is prep */ |
| | 260 | #define ERR_RUNQUIT 1017 /* 'quit' executed */ |
| | 261 | #define ERR_RUNRESTART 1018 /* 'reset' executed */ |
| | 262 | #define ERR_RUNEXITOBJ 1019 /* 'exitobj' executed */ |
| | 263 | |
| | 264 | #define ERR_REQVLS 1020 /* list value required */ |
| | 265 | #define ERR_LOWINX 1021 /* index value too low (must be >= 1) */ |
| | 266 | #define ERR_HIGHINX 1022 /* index value too high (must be <= length(list)) */ |
| | 267 | #define ERR_INVTBIF 1023 /* invalid type for built-in function */ |
| | 268 | #define ERR_INVVBIF 1024 /* invalid value for built-in function */ |
| | 269 | #define ERR_BIFARGC 1025 /* wrong number of arguments to built-in */ |
| | 270 | #define ERR_ARGC 1026 /* wrong number of arguments to user function */ |
| | 271 | #define ERR_FUSEVAL 1027 /* string/list not allowed for fuse/daemon arg */ |
| | 272 | #define ERR_BADSETF 1028 /* internal error in setfuse/setdaemon/notify */ |
| | 273 | #define ERR_MANYFUS 1029 /* too many fuses */ |
| | 274 | #define ERR_MANYDMN 1030 /* too many daemons */ |
| | 275 | #define ERR_MANYNFY 1031 /* too many notifiers */ |
| | 276 | #define ERR_NOFUSE 1032 /* fuse not found in remfuse */ |
| | 277 | #define ERR_NODMN 1033 /* daemon not found in remdaemon */ |
| | 278 | #define ERR_NONFY 1034 /* notifier not found in unnotify */ |
| | 279 | #define ERR_BADREMF 1035 /* internal error in remfuse/remdaemon/unnotify */ |
| | 280 | #define ERR_DMDLOOP 1036 /* load-on-demand loop: property not being set */ |
| | 281 | #define ERR_UNDFOBJ 1037 /* undefined object in vocabulary tree */ |
| | 282 | #define ERR_BIFCSTR 1038 /* c-string conversion overflows buffer */ |
| | 283 | #define ERR_INVOPC 1039 /* invalid opcode */ |
| | 284 | #define ERR_RUNNOBJ 1040 /* runtime error: property taken of non-object */ |
| | 285 | #define ERR_EXTLOAD 1041 /* unable to load external function "%s" */ |
| | 286 | #define ERR_EXTRUN 1042 /* error executing external function "%s" */ |
| | 287 | #define ERR_CIRCSYN 1043 /* circular synonym */ |
| | 288 | #define ERR_DIVZERO 1044 /* divide by zero */ |
| | 289 | #define ERR_BADDEL 1045 /* can only delete objects created with "new" */ |
| | 290 | #define ERR_BADNEWSC 1046 /* superclass for "new" cannot be a new object */ |
| | 291 | #define ERR_VOCSTK 1047 /* insufficient space in parser stack */ |
| | 292 | #define ERR_BADFILE 1048 /* invalid file handle */ |
| | 293 | |
| | 294 | #define ERR_RUNEXITPRECMD 1049 /* exited from preCommand */ |
| | 295 | |
| | 296 | /* run-time parser errors */ |
| | 297 | #define ERR_PRS_SENT_UNK 1200 /* sentence structure not recognized */ |
| | 298 | #define ERR_PRS_VERDO_FAIL 1201 /* verDoVerb failed */ |
| | 299 | #define ERR_PRS_VERIO_FAIL 1202 /* verIoVerb failed */ |
| | 300 | #define ERR_PRS_NO_VERDO 1203 /* no verDoVerb for direct object */ |
| | 301 | #define ERR_PRS_NO_VERIO 1204 /* no verIoVerb for direct object */ |
| | 302 | #define ERR_PRS_VAL_DO_FAIL 1205 /* direct object validation failed */ |
| | 303 | #define ERR_PRS_VAL_IO_FAIL 1206 /* indirect object validation failed */ |
| | 304 | |
| | 305 | /* compiler/runtime/debugger driver errors */ |
| | 306 | #define ERR_USAGE 1500 /* invalid usage */ |
| | 307 | #define ERR_OPNINP 1501 /* error opening input file */ |
| | 308 | #define ERR_NODBG 1502 /* game not compiled for debugging */ |
| | 309 | #define ERR_ERRFIL 1503 /* unable to open error capture file */ |
| | 310 | #define ERR_PRSCXSIZ 1504 /* parse pool + local size too large */ |
| | 311 | #define ERR_STKSIZE 1505 /* stack size too large */ |
| | 312 | #define ERR_OPNSTRFIL 1506 /* error opening string capture file */ |
| | 313 | #define ERR_INVCMAP 1507 /* invalid character map file */ |
| | 314 | |
| | 315 | /* debugger errors */ |
| | 316 | #define ERR_BPSYM 2000 /* symbol not found for breakpoint */ |
| | 317 | #define ERR_BPPROP 2002 /* breakpoint symbol is not a property */ |
| | 318 | #define ERR_BPFUNC 2003 /* breakpoint symbol is not a function */ |
| | 319 | #define ERR_BPNOPRP 2004 /* property is not defined for object */ |
| | 320 | #define ERR_BPPRPNC 2005 /* property is not code */ |
| | 321 | #define ERR_BPSET 2006 /* breakpoint already set at this location */ |
| | 322 | #define ERR_BPNOTLN 2007 /* breakpoint is not at a line (OPCLINE instr) */ |
| | 323 | #define ERR_MANYBP 2008 /* too many breakpoints */ |
| | 324 | #define ERR_BPNSET 2009 /* breakpoint to be deleted was not set */ |
| | 325 | #define ERR_DBGMNSY 2010 /* too many symbols in debug expression (int lim) */ |
| | 326 | #define ERR_NOSOURC 2011 /* unable to find source file %s */ |
| | 327 | #define ERR_WTCHLCL 2012 /* illegal to assign to local in watch expr */ |
| | 328 | #define ERR_INACTFR 2013 /* inactive frame (expression value not available) */ |
| | 329 | #define ERR_MANYWX 2014 /* too many watch expressions */ |
| | 330 | #define ERR_WXNSET 2015 /* watchpoint not set */ |
| | 331 | #define ERR_EXTRTXT 2016 /* extraneous text at end of command */ |
| | 332 | #define ERR_BPOBJ 2017 /* breakpoint symbol is not an object */ |
| | 333 | #define ERR_DBGINACT 2018 /* debugger is not active */ |
| | 334 | #define ERR_BPINUSE 2019 /* breakpoint is already used */ |
| | 335 | #define ERR_RTBADSPECEXPR 2020 /* invalid speculative expression */ |
| | 336 | #define ERR_NEEDLIN2 2021 /* -ds2 information not found - must recompile */ |
| | 337 | |
| | 338 | /* usage error messages */ |
| | 339 | #define ERR_TCUS1 3000 /* first tc usage message */ |
| | 340 | #define ERR_TCUSL 3024 /* last tc usage message */ |
| | 341 | #define ERR_TCTGUS1 3030 /* first tc toggle message */ |
| | 342 | #define ERR_TCTGUSL 3032 |
| | 343 | #define ERR_TCZUS1 3040 /* first tc -Z suboptions usage message */ |
| | 344 | #define ERR_TCZUSL 3041 |
| | 345 | #define ERR_TC1US1 3050 /* first tc -1 suboptions usage message */ |
| | 346 | #define ERR_TC1USL 3058 |
| | 347 | #define ERR_TCMUS1 3070 /* first tc -m suboptions usage message */ |
| | 348 | #define ERR_TCMUSL 3076 |
| | 349 | #define ERR_TCVUS1 3080 /* first -v suboption usage message */ |
| | 350 | #define ERR_TCVUSL 3082 |
| | 351 | #define ERR_TRUSPARM 3099 |
| | 352 | #define ERR_TRUS1 3100 /* first tr usage message */ |
| | 353 | #define ERR_TRUSL 3117 |
| | 354 | #define ERR_TRUSFT1 3118 /* first tr "footer" message */ |
| | 355 | #define ERR_TRUSFTL 3119 /* last tr "footer" message */ |
| | 356 | #define ERR_TRSUS1 3150 /* first tr -s suboptions usage message */ |
| | 357 | #define ERR_TRSUSL 3157 |
| | 358 | #define ERR_TDBUSPARM 3199 |
| | 359 | #define ERR_TDBUS1 3200 /* first tdb usage message */ |
| | 360 | #define ERR_TDBUSL 3214 /* last tdb usage message */ |
| | 361 | |
| | 362 | /* TR 16-bit MSDOS-specific usage messages */ |
| | 363 | #define ERR_TRUS_DOS_1 3300 |
| | 364 | #define ERR_TRUS_DOS_L 3300 |
| | 365 | |
| | 366 | /* TR 32-bit MSDOS console mode usage messages */ |
| | 367 | #define ERR_TRUS_DOS32_1 3310 |
| | 368 | #define ERR_TRUS_DOS32_L 3312 |
| | 369 | |
| | 370 | /* TADS/Graphic errors */ |
| | 371 | #define ERR_GNOFIL 4001 /* can't find graphics file %s */ |
| | 372 | #define ERR_GNORM 4002 /* can't find room %s */ |
| | 373 | #define ERR_GNOOBJ 4003 /* can't find hot spot object %s */ |
| | 374 | #define ERR_GNOICN 4004 /* can't find icon object %s */ |
| | 375 | |
| | 376 | |
| | 377 | /* |
| | 378 | * Special error flag - this is returned from execmd() when preparseCmd |
| | 379 | * returns a command list. This indicates to voc1cmd that it should try |
| | 380 | * the command over again, using the words in the new list. |
| | 381 | */ |
| | 382 | #define ERR_PREPRSCMDREDO 30000 /* preparseCmd returned a list */ |
| | 383 | #define ERR_PREPRSCMDCAN 30001 /* preparseCmd returned 'nil' to cancel */ |
| | 384 | |
| | 385 | #endif /* ERR_INCLUDED */ |