Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
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.
2026-06-24 21:28:16 -05:00

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