aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode/errors.h
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-10-22 09:59:31 +0200
committerBad Diode <bd@badd10de.dev>2021-10-22 09:59:31 +0200
commiteeff5e273f22aa28e81ab080e9ffdce85ac394b8 (patch)
tree71d11c76be7c0bb649099bb55e6181f9b7c6c8a8 /src/bytecode/errors.h
parent5bd694fc7071bfb76b9f65c89d253b2b4e18cf63 (diff)
downloadbdl-eeff5e273f22aa28e81ab080e9ffdce85ac394b8.tar.gz
bdl-eeff5e273f22aa28e81ab080e9ffdce85ac394b8.zip
Prepare skeleton for bytecode interpreter
Diffstat (limited to 'src/bytecode/errors.h')
-rw-r--r--src/bytecode/errors.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/bytecode/errors.h b/src/bytecode/errors.h
new file mode 100644
index 0000000..7916f4a
--- /dev/null
+++ b/src/bytecode/errors.h
@@ -0,0 +1,38 @@
1#ifndef BDL_ERRORS_H
2#define BDL_ERRORS_H
3
4typedef enum ErrorType {
5 ERR_TYPE_LEXER,
6 ERR_TYPE_PARSER,
7 ERR_TYPE_RUNTIME,
8} ErrorType;
9
10typedef 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
27typedef struct Error {
28 ErrorType type;
29 ErrorValue value;
30 size_t line;
31 size_t col;
32} Error;
33
34void error_push(Error error);
35
36#define ERR_MAX_NUMBER 16
37
38#endif // BDL_ERRORS_H