aboutsummaryrefslogtreecommitdiffstats
path: root/src/errors.h
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2022-02-01 18:36:52 +0100
committerBad Diode <bd@badd10de.dev>2022-02-01 18:36:52 +0100
commitee1a5de91c875fb66724dc21c02333bfebe2a812 (patch)
treed3eaa226816d295bb9dc48a2aed27044832ec413 /src/errors.h
parent3156265c7b2da8cc43fee996c0518ea274d39c8a (diff)
downloadbdl-ee1a5de91c875fb66724dc21c02333bfebe2a812.tar.gz
bdl-ee1a5de91c875fb66724dc21c02333bfebe2a812.zip
Add new syntax to lexer and prepare refactor
Diffstat (limited to 'src/errors.h')
-rw-r--r--src/errors.h30
1 files changed, 6 insertions, 24 deletions
diff --git a/src/errors.h b/src/errors.h
index 7d8e977..8a378a2 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -6,26 +6,14 @@
6typedef enum ErrorType { 6typedef enum ErrorType {
7 ERR_TYPE_LEXER, 7 ERR_TYPE_LEXER,
8 ERR_TYPE_PARSER, 8 ERR_TYPE_PARSER,
9 ERR_TYPE_COMPILER,
10 ERR_TYPE_RUNTIME,
11} ErrorType; 9} ErrorType;
12 10
13typedef enum ErrorValue { 11typedef enum ErrorValue {
14 ERR_UNKNOWN = 0, 12 ERR_UNKNOWN = 0,
15 ERR_UNMATCHED_STRING, 13 ERR_UNMATCHED_STRING,
16 ERR_UNBALANCED_PAREN, 14 ERR_UNKNOWN_TOK_TYPE,
17 ERR_NOT_IMPLEMENTED, 15 ERR_MALFORMED_NUMBER,
18 ERR_EOF_REACHED, 16 ERR_OK,
19 ERR_UNKNOWN_TOKEN,
20 ERR_UNKNOWN_OBJ_TYPE,
21 ERR_NOT_A_SYMBOL,
22 ERR_SYMBOL_NOT_FOUND,
23 ERR_NOT_CALLABLE,
24 ERR_NOT_ENOUGH_ARGS,
25 ERR_TOO_MANY_ARGS,
26 ERR_WRONG_ARG_TYPE,
27 ERR_DIVISION_BY_ZERO,
28 ERR_AMBIGUOUS_PARAMS,
29} ErrorValue; 17} ErrorValue;
30 18
31typedef struct Error { 19typedef struct Error {
@@ -35,14 +23,8 @@ typedef struct Error {
35 size_t col; 23 size_t col;
36} Error; 24} Error;
37 25
38#define ERR_MAX_NUMBER 16 26void push_error(ErrorType type, ErrorValue value, size_t line, size_t col);
39 27void check_errors(const char *file_name);
40typedef struct Errors { 28bool has_errors(void);
41 Error errors[ERR_MAX_NUMBER];
42 size_t n;
43} Errors;
44
45void error_push(Errors *errors, Error error);
46void report_errors(Errors *errors, const char *file_name);
47 29
48#endif // BDL_ERRORS_H 30#endif // BDL_ERRORS_H