aboutsummaryrefslogtreecommitdiffstats
path: root/src/lexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lexer.c')
-rw-r--r--src/lexer.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lexer.c b/src/lexer.c
index df998f2..6a5621c 100644
--- a/src/lexer.c
+++ b/src/lexer.c
@@ -1,6 +1,8 @@
1#include "badlib.h"
2
1#define LEXER_MEM GB(2) 3#define LEXER_MEM GB(2)
2 4
3typedef enum TokenType { 5typedef enum TokenKind {
4 TOK_UNKNOWN = 0, 6 TOK_UNKNOWN = 0,
5 7
6 // Parentheses. 8 // Parentheses.
@@ -65,7 +67,7 @@ typedef enum TokenType {
65 67
66 // End of file. 68 // End of file.
67 TOK_EOF, 69 TOK_EOF,
68} TokenType; 70} TokenKind;
69 71
70Str token_str[] = { 72Str token_str[] = {
71 [TOK_UNKNOWN] = cstr("UNKNOWN"), 73 [TOK_UNKNOWN] = cstr("UNKNOWN"),
@@ -135,7 +137,7 @@ Str token_str[] = {
135}; 137};
136 138
137typedef struct Token { 139typedef struct Token {
138 TokenType type; 140 TokenKind kind;
139 Str val; 141 Str val;
140 sz line; 142 sz line;
141 sz col; 143 sz col;
@@ -256,7 +258,7 @@ scan_skip_until_valid(Scanner *scanner) {
256} 258}
257 259
258Token 260Token
259emit_token(Scanner current, Scanner *scanner, TokenType t) { 261emit_token(Scanner current, Scanner *scanner, TokenKind t) {
260 Str val = current.str; 262 Str val = current.str;
261 val.size = current.str.size - scanner->str.size; 263 val.size = current.str.size - scanner->str.size;
262 val.size = val.size < 0 ? 0 : val.size; 264 val.size = val.size < 0 ? 0 : val.size;
@@ -264,7 +266,7 @@ emit_token(Scanner current, Scanner *scanner, TokenType t) {
264 .val = val, 266 .val = val,
265 .line = current.line + 1, 267 .line = current.line + 1,
266 .col = current.col + 1, 268 .col = current.col + 1,
267 .type = t, 269 .kind = t,
268 }; 270 };
269} 271}
270 272
@@ -274,7 +276,7 @@ emit_token_err(Scanner *scanner, Str err_msg) {
274 .line = scanner->line + 1, 276 .line = scanner->line + 1,
275 .col = scanner->col + 1, 277 .col = scanner->col + 1,
276 .val = err_msg, 278 .val = err_msg,
277 .type = TOK_UNKNOWN, 279 .kind = TOK_UNKNOWN,
278 }; 280 };
279} 281}
280 282
@@ -430,7 +432,7 @@ scan_token(Scanner *scanner) {
430 *scanner = current; 432 *scanner = current;
431 return emit_token_number(scanner); 433 return emit_token_number(scanner);
432 } 434 }
433 return emit_token(current, scanner, TOK_ADD); 435 return emit_token(current, scanner, TOK_SUB);
434 }; 436 };
435 case '*': 437 case '*':
436 return emit_token(current, scanner, TOK_MUL); 438 return emit_token(current, scanner, TOK_MUL);