Ablerr.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //===========================================================================//
  2. // Copyright (C) Microsoft Corporation. All rights reserved. //
  3. //===========================================================================//
  4. //***************************************************************************
  5. //
  6. // ERROR.H
  7. //
  8. //***************************************************************************
  9. #ifndef ABLERR_H
  10. #define ABLERR_H
  11. //***************************************************************************
  12. #define MAX_SYNTAX_ERRORS 1 //20
  13. #define MAXLEN_ERROR_MESSAGE 256
  14. #pragma warning( disable : 4514 )
  15. typedef enum {
  16. ABL_ERR_SYNTAX_NONE, // 0
  17. ABL_ERR_SYNTAX_ERROR,
  18. ABL_ERR_SYNTAX_TOO_MANY_ERRORS,
  19. ABL_ERR_SYNTAX_SOURCE_FILE_OPEN,
  20. ABL_ERR_SYNTAX_UNEXPECTED_EOF,
  21. ABL_ERR_SYNTAX_INVALID_NUMBER,
  22. ABL_ERR_SYNTAX_INVALID_FRACTION,
  23. ABL_ERR_SYNTAX_INVALID_EXPONENT,
  24. ABL_ERR_SYNTAX_TOO_MANY_DIGITS,
  25. ABL_ERR_SYNTAX_REAL_OUT_OF_RANGE,
  26. ABL_ERR_SYNTAX_INTEGER_OUT_OF_RANGE, // 10
  27. ABL_ERR_SYNTAX_MISSING_RPAREN,
  28. ABL_ERR_SYNTAX_INVALID_EXPRESSION,
  29. ABL_ERR_SYNTAX_UNDEFINED_IDENTIFIER,
  30. ABL_ERR_SYNTAX_REDEFINED_IDENTIFIER,
  31. ABL_ERR_SYNTAX_UNEXPECTED_TOKEN,
  32. ABL_ERR_SYNTAX_INCOMPATIBLE_TYPES,
  33. ABL_ERR_SYNTAX_NESTING_TOO_DEEP,
  34. ABL_ERR_SYNTAX_CODE_SEGMENT_OVERFLOW,
  35. ABL_ERR_SYNTAX_MISSING_EQUAL,
  36. ABL_ERR_SYNTAX_MISSING_SEMICOLON, // 20
  37. ABL_ERR_SYNTAX_INVALID_CONSTANT,
  38. ABL_ERR_SYNTAX_NOT_A_CONSTANT_IDENTIFIER,
  39. ABL_ERR_SYNTAX_NO_RECORD_TYPES,
  40. ABL_ERR_SYNTAX_MISSING_COLON,
  41. ABL_ERR_SYNTAX_NOT_A_TYPE_IDENTIFIER,
  42. ABL_ERR_SYNTAX_INVALID_TYPE,
  43. ABL_ERR_SYNTAX_MISSING_END,
  44. ABL_ERR_SYNTAX_INVALID_IDENTIFIER_USAGE,
  45. ABL_ERR_SYNTAX_TOO_MANY_SUBSCRIPTS,
  46. ABL_ERR_SYNTAX_MISSING_RBRACKET, // 30
  47. ABL_ERR_SYNTAX_INCOMPATIBLE_ASSIGNMENT,
  48. ABL_ERR_SYNTAX_MISSING_UNTIL,
  49. ABL_ERR_SYNTAX_MISSING_THEN,
  50. ABL_ERR_SYNTAX_INVALID_FOR_CONTROL,
  51. ABL_ERR_SYNTAX_MISSING_IDENTIFIER,
  52. ABL_ERR_SYNTAX_MISSING_TO,
  53. ABL_ERR_SYNTAX_MISSING_PERIOD,
  54. ABL_ERR_SYNTAX_MISSING_MODULE,
  55. ABL_ERR_SYNTAX_MISSING_LIBRARY,
  56. ABL_ERR_SYNTAX_ALREADY_FORWARDED, // 40
  57. ABL_ERR_SYNTAX_INVALID_REF_PARAM,
  58. ABL_ERR_SYNTAX_WRONG_NUMBER_OF_PARAMS,
  59. ABL_ERR_SYNTAX_MISSING_BEGIN,
  60. ABL_ERR_SYNTAX_MISSING_END_VAR,
  61. ABL_ERR_SYNTAX_NO_FUNCTION_NESTING,
  62. ABL_ERR_SYNTAX_MISSING_CODE,
  63. ABL_ERR_SYNTAX_MISSING_END_IF,
  64. ABL_ERR_SYNTAX_MISSING_END_WHILE,
  65. ABL_ERR_SYNTAX_MISSING_END_FOR,
  66. ABL_ERR_SYNTAX_MISSING_END_FUNCTION, // 50
  67. ABL_ERR_SYNTAX_MISSING_END_MODULE,
  68. ABL_ERR_SYNTAX_MISSING_END_LIBRARY,
  69. ABL_ERR_SYNTAX_MISSING_DO,
  70. ABL_ERR_SYNTAX_INVALID_INDEX_TYPE,
  71. ABL_ERR_SYNTAX_MISSING_COMMA,
  72. ABL_ERR_SYNTAX_TOO_MANY_STATIC_VARS,
  73. ABL_ERR_SYNTAX_MISSING_END_CASE,
  74. ABL_ERR_SYNTAX_MISSING_END_SWITCH,
  75. ABL_ERR_SYNTAX_MISSING_CONSTANT,
  76. ABL_ERR_SYNTAX_BAD_LANGUAGE_DIRECTIVE_USAGE, // 60
  77. ABL_ERR_SYNTAX_UNKNOWN_LANGUAGE_DIRECTIVE,
  78. ABL_ERR_SYNTAX_TOO_MANY_FORMAL_PARAMETERS,
  79. ABL_ERR_SYNTAX_TOO_MANY_LOCAL_VARIABLES,
  80. ABL_ERR_SYNTAX_ORDER_RETURNTYPE,
  81. ABL_ERR_SYNTAX_TOO_MANY_ORDERS,
  82. ABL_ERR_MISSING_STATE_IDENTIFIER,
  83. ABL_ERR_SYNTAX_MISSING_END_FSM,
  84. NUM_ABL_SYNTAX_ERRORS
  85. } SyntaxErrorType;
  86. typedef enum {
  87. ABL_ERR_RUNTIME_STACK_OVERFLOW,
  88. ABL_ERR_RUNTIME_INFINITE_LOOP,
  89. ABL_ERR_RUNTIME_NESTED_FUNCTION_CALL,
  90. ABL_ERR_RUNTIME_UNIMPLEMENTED_FEATURE,
  91. ABL_ERR_RUNTIME_VALUE_OUT_OF_RANGE,
  92. ABL_ERR_RUNTIME_DIVISION_BY_ZERO,
  93. ABL_ERR_RUNTIME_INVALID_FUNCTION_ARGUMENT,
  94. ABL_ERR_RUNTIME_INVALID_CASE_VALUE,
  95. ABL_ERR_RUNTIME_ABORT,
  96. ABL_ERR_RUNTIME_NULL_PREVSTATE,
  97. NUM_ABL_RUNTIME_ERRORS
  98. } RuntimeErrorType;
  99. //***************************************************************************
  100. void syntaxError (long errCode);
  101. void runtimeError (long errCode);
  102. void ABL_Fatal (long errCode, char* s);
  103. void ABL_Assert (bool test, long errCode, char* s);
  104. //***************************************************************************
  105. #endif