diff options
Diffstat (limited to 'src/bootstrap/errors.h')
-rw-r--r-- | src/bootstrap/errors.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/bootstrap/errors.h b/src/bootstrap/errors.h new file mode 100644 index 0000000..7916f4a --- /dev/null +++ b/src/bootstrap/errors.h | |||
@@ -0,0 +1,38 @@ | |||
1 | #ifndef BDL_ERRORS_H | ||
2 | #define BDL_ERRORS_H | ||
3 | |||
4 | typedef enum ErrorType { | ||
5 | ERR_TYPE_LEXER, | ||
6 | ERR_TYPE_PARSER, | ||
7 | ERR_TYPE_RUNTIME, | ||
8 | } ErrorType; | ||
9 | |||
10 | typedef enum ErrorValue { | ||
11 | ERR_UNKNOWN = 0, | ||
12 | ERR_UNMATCHED_STRING, | ||
13 | ERR_UNBALANCED_PAREN, | ||
14 | ERR_NOT_IMPLEMENTED, | ||
15 | ERR_EOF_REACHED, | ||
16 | ERR_UNKNOWN_TOKEN, | ||
17 | ERR_UNKNOWN_OBJ_TYPE, | ||
18 | ERR_NOT_A_SYMBOL, | ||
19 | ERR_SYMBOL_NOT_FOUND, | ||
20 | ERR_OBJ_NOT_CALLABLE, | ||
21 | ERR_NOT_ENOUGH_ARGS, | ||
22 | ERR_TOO_MANY_ARGS, | ||
23 | ERR_WRONG_ARG_TYPE, | ||
24 | ERR_DIVISION_BY_ZERO, | ||
25 | } ErrorValue; | ||
26 | |||
27 | typedef struct Error { | ||
28 | ErrorType type; | ||
29 | ErrorValue value; | ||
30 | size_t line; | ||
31 | size_t col; | ||
32 | } Error; | ||
33 | |||
34 | void error_push(Error error); | ||
35 | |||
36 | #define ERR_MAX_NUMBER 16 | ||
37 | |||
38 | #endif // BDL_ERRORS_H | ||