From 9d47486aac9cd1a4422b78ee273b7a27bf7b733a Mon Sep 17 00:00:00 2001 From: hachem Date: Tue, 8 Sep 2026 12:00:49 +0200 Subject: refactor: flatten src and migrate to meson --- src/lexer.h | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/lexer.h (limited to 'src/lexer.h') diff --git a/src/lexer.h b/src/lexer.h new file mode 100644 index 0000000..73de02f --- /dev/null +++ b/src/lexer.h @@ -0,0 +1,82 @@ +#pragma once + +#include +#include + +enum TokenType +{ + TOKEN_EOF, + TOKEN_IDENTIFIER, + TOKEN_INTEGER, + TOKEN_FLOAT, + TOKEN_STRING, + TOKEN_CHAR, + + TOKEN_CONST, + TOKEN_DATA, + TOKEN_PROC, + TOKEN_ENUM, + TOKEN_STRUCT, + TOKEN_STACK, + TOKEN_IF, + TOKEN_ELSE, + TOKEN_GOTO, + TOKEN_SYSCALL, + TOKEN_BYTE, + TOKEN_WORD, + TOKEN_DWORD, + TOKEN_QWORD, + TOKEN_SIGNED, + + TOKEN_EQUAL, + TOKEN_PLUS, + TOKEN_MINUS, + TOKEN_STAR, + TOKEN_SLASH, + TOKEN_PERCENT, + TOKEN_CARET, + TOKEN_BANG, + TOKEN_LESS, + TOKEN_GREATER, + TOKEN_DOT, + TOKEN_COMMA, + TOKEN_COLON, + TOKEN_LEFT_PAREN, + TOKEN_RIGHT_PAREN, + TOKEN_LEFT_BRACKET, + TOKEN_RIGHT_BRACKET, + TOKEN_LEFT_BRACE, + TOKEN_RIGHT_BRACE, + + TOKEN_EQUAL_EQUAL, + TOKEN_BANG_EQUAL, + TOKEN_PLUS_EQUAL, + TOKEN_MINUS_EQUAL, + TOKEN_STAR_EQUAL, + TOKEN_SLASH_EQUAL, + TOKEN_PERCENT_EQUAL, + TOKEN_LESS_EQUAL, + TOKEN_GREATER_EQUAL, + + TOKEN_UNKNOWN, +}; + +struct Token +{ + enum TokenType type; + const char* start; + size_t length; + uint32_t line; +}; + +struct Lexer +{ + const char* name; + const char* source; + const char* current; + uint32_t line; +}; + +struct Lexer create_lexer(const char* source); +struct Token scan_token(struct Lexer* lexer); +const char* token_type_name(enum TokenType type); -- cgit v1.3