Refactor token mapping: use keyword map for tokenization instead of strcmp

- Created KeywordMap structure with keyword-to-token mapping at top of token.c
- Added lookup_keyword() function to check if identifier is a keyword
- Replaced 3 strcmp calls (lines 99-101) with single lookup_keyword() call
- Removed token_to_string() function and its tests (3 tests removed)
- Single easy-to-read and modify keyword map serves both documentation and implementation
- Added new keywords by editing the keywords[] array at top of token.c

All 12 tests passing (removed token_to_string tests which are now unnecessary).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-04-24 09:44:19 +02:00
parent c1106d8e66
commit 49b9db5b75
4 changed files with 26 additions and 60 deletions
-7
View File
@@ -28,13 +28,6 @@ typedef enum {
typedef struct TokenStream TokenStream;
/**
* Convert a Token enum to its string representation.
* @param token The token to convert.
* @returns The string name of the token.
*/
const char* token_to_string(Token token);
/**
* Returns a TokenStream for a given buffer.
*