123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- //===========================================================================//
- // Copyright (C) Microsoft Corporation. All rights reserved. //
- //===========================================================================//
- //***************************************************************************
- //
- // ERROR.H
- //
- //***************************************************************************
- #ifndef ABLERR_H
- #define ABLERR_H
- //***************************************************************************
- #define MAX_SYNTAX_ERRORS 1 //20
- #define MAXLEN_ERROR_MESSAGE 256
- #pragma warning( disable : 4514 )
- 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_ORDER_RETURNTYPE,
- ABL_ERR_SYNTAX_TOO_MANY_ORDERS,
- ABL_ERR_MISSING_STATE_IDENTIFIER,
- ABL_ERR_SYNTAX_MISSING_END_FSM,
- 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,
- ABL_ERR_RUNTIME_NULL_PREVSTATE,
- 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);
- //***************************************************************************
- #endif
|