Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
118 lines
3.8 KiB
C++
118 lines
3.8 KiB
C++
//***************************************************************************
|
|
//
|
|
// ERROR.H
|
|
//
|
|
//***************************************************************************
|
|
|
|
#ifndef ABLERR_H
|
|
#define ABLERR_H
|
|
|
|
//***************************************************************************
|
|
namespace ABL
|
|
{
|
|
|
|
#define MAX_SYNTAX_ERRORS 1 //20
|
|
#define MAXLEN_ERROR_MESSAGE 256
|
|
|
|
typedef enum {
|
|
ABL_ERR_SYNTAX_NONE, // 0
|
|
ABL_ERR_SYNTAX_ERROR,
|
|
ABL_ERR_SYNTAX_TOO_MANY_ERRORS,
|
|
ABL_ERR_SYNTAX_SOURCE_FILE_OPEN,
|
|
ABL_ERR_SYNTAX_UNEXPECTED_EOF,
|
|
ABL_ERR_SYNTAX_INVALID_NUMBER,
|
|
ABL_ERR_SYNTAX_INVALID_FRACTION,
|
|
ABL_ERR_SYNTAX_INVALID_EXPONENT,
|
|
ABL_ERR_SYNTAX_TOO_MANY_DIGITS,
|
|
ABL_ERR_SYNTAX_REAL_OUT_OF_RANGE,
|
|
ABL_ERR_SYNTAX_INTEGER_OUT_OF_RANGE, // 10
|
|
ABL_ERR_SYNTAX_MISSING_RPAREN,
|
|
ABL_ERR_SYNTAX_INVALID_EXPRESSION,
|
|
ABL_ERR_SYNTAX_UNDEFINED_IDENTIFIER,
|
|
ABL_ERR_SYNTAX_REDEFINED_IDENTIFIER,
|
|
ABL_ERR_SYNTAX_UNEXPECTED_TOKEN,
|
|
ABL_ERR_SYNTAX_INCOMPATIBLE_TYPES,
|
|
ABL_ERR_SYNTAX_NESTING_TOO_DEEP,
|
|
ABL_ERR_SYNTAX_CODE_SEGMENT_OVERFLOW,
|
|
ABL_ERR_SYNTAX_MISSING_EQUAL,
|
|
ABL_ERR_SYNTAX_MISSING_SEMICOLON, // 20
|
|
ABL_ERR_SYNTAX_INVALID_CONSTANT,
|
|
ABL_ERR_SYNTAX_NOT_A_CONSTANT_IDENTIFIER,
|
|
ABL_ERR_SYNTAX_NO_RECORD_TYPES,
|
|
ABL_ERR_SYNTAX_MISSING_COLON,
|
|
ABL_ERR_SYNTAX_NOT_A_TYPE_IDENTIFIER,
|
|
ABL_ERR_SYNTAX_INVALID_TYPE,
|
|
ABL_ERR_SYNTAX_MISSING_END,
|
|
ABL_ERR_SYNTAX_INVALID_IDENTIFIER_USAGE,
|
|
ABL_ERR_SYNTAX_TOO_MANY_SUBSCRIPTS,
|
|
ABL_ERR_SYNTAX_MISSING_RBRACKET, // 30
|
|
ABL_ERR_SYNTAX_INCOMPATIBLE_ASSIGNMENT,
|
|
ABL_ERR_SYNTAX_MISSING_UNTIL,
|
|
ABL_ERR_SYNTAX_MISSING_THEN,
|
|
ABL_ERR_SYNTAX_INVALID_FOR_CONTROL,
|
|
ABL_ERR_SYNTAX_MISSING_IDENTIFIER,
|
|
ABL_ERR_SYNTAX_MISSING_TO,
|
|
ABL_ERR_SYNTAX_MISSING_PERIOD,
|
|
ABL_ERR_SYNTAX_MISSING_MODULE,
|
|
ABL_ERR_SYNTAX_MISSING_LIBRARY,
|
|
ABL_ERR_SYNTAX_ALREADY_FORWARDED, // 40
|
|
ABL_ERR_SYNTAX_INVALID_REF_PARAM,
|
|
ABL_ERR_SYNTAX_WRONG_NUMBER_OF_PARAMS,
|
|
ABL_ERR_SYNTAX_MISSING_BEGIN,
|
|
ABL_ERR_SYNTAX_MISSING_END_VAR,
|
|
ABL_ERR_SYNTAX_NO_FUNCTION_NESTING,
|
|
ABL_ERR_SYNTAX_MISSING_CODE,
|
|
ABL_ERR_SYNTAX_MISSING_END_IF,
|
|
ABL_ERR_SYNTAX_MISSING_END_WHILE,
|
|
ABL_ERR_SYNTAX_MISSING_END_FOR,
|
|
ABL_ERR_SYNTAX_MISSING_END_FUNCTION, // 50
|
|
ABL_ERR_SYNTAX_MISSING_END_MODULE,
|
|
ABL_ERR_SYNTAX_MISSING_END_LIBRARY,
|
|
ABL_ERR_SYNTAX_MISSING_DO,
|
|
ABL_ERR_SYNTAX_INVALID_INDEX_TYPE,
|
|
ABL_ERR_SYNTAX_MISSING_COMMA,
|
|
ABL_ERR_SYNTAX_TOO_MANY_STATIC_VARS,
|
|
ABL_ERR_SYNTAX_MISSING_END_CASE,
|
|
ABL_ERR_SYNTAX_MISSING_END_SWITCH,
|
|
ABL_ERR_SYNTAX_MISSING_CONSTANT,
|
|
ABL_ERR_SYNTAX_BAD_LANGUAGE_DIRECTIVE_USAGE, // 60
|
|
ABL_ERR_SYNTAX_UNKNOWN_LANGUAGE_DIRECTIVE,
|
|
ABL_ERR_SYNTAX_TOO_MANY_FORMAL_PARAMETERS,
|
|
ABL_ERR_SYNTAX_TOO_MANY_LOCAL_VARIABLES,
|
|
ABL_ERR_SYNTAX_CODE_OUTSIDE_STATE_BLOCK,
|
|
ABL_ERR_SYNTAX_NO_STATE_NESTING,
|
|
ABL_ERR_SYNTAX_STATE_FORWARD,
|
|
ABL_ERR_SYNTAX_MISSING_END_STATE,
|
|
ABL_ERR_SYNTAX_TRANS_TO_NON_STATE,
|
|
ABL_ERR_SYNTAX_TRANS_IN_NONFSM,
|
|
ABL_ERR_SYNTAX_FORWARDED_STATE_NOT_DECLARED,
|
|
NUM_ABL_SYNTAX_ERRORS
|
|
} SyntaxErrorType;
|
|
|
|
typedef enum {
|
|
ABL_ERR_RUNTIME_STACK_OVERFLOW,
|
|
ABL_ERR_RUNTIME_INFINITE_LOOP,
|
|
ABL_ERR_RUNTIME_NESTED_FUNCTION_CALL,
|
|
ABL_ERR_RUNTIME_UNIMPLEMENTED_FEATURE,
|
|
ABL_ERR_RUNTIME_VALUE_OUT_OF_RANGE,
|
|
ABL_ERR_RUNTIME_DIVISION_BY_ZERO,
|
|
ABL_ERR_RUNTIME_INVALID_FUNCTION_ARGUMENT,
|
|
ABL_ERR_RUNTIME_INVALID_CASE_VALUE,
|
|
ABL_ERR_RUNTIME_ABORT,
|
|
NUM_ABL_RUNTIME_ERRORS
|
|
} RuntimeErrorType;
|
|
|
|
//***************************************************************************
|
|
|
|
void syntaxError (long errCode);
|
|
void runtimeError (long errCode);
|
|
void ABL_Fatal (long errCode, char* s);
|
|
void ABL_Assert (bool test, long errCode, char* s);
|
|
char *ABL_runtimeErrorString (char *str,int strlen);
|
|
|
|
|
|
//***************************************************************************
|
|
}
|
|
#endif
|
|
|