#include #include #include #include "../include/sync/types.h" #include "../include/sync/lexer.h" // TODO: Update Tests // void test_tokenize_simple_assignment(void) { // const char* src = "x = 42;"; // Lexer lexer; // lexer_init(&lexer, "", src); // TokenResult t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_IDENTIFIER && strncmp(t.result.start, "x", t.result.length) == 0); // t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_OPERATOR && strncmp(t.result.start, "=", t.result.length) == 0); // t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_NUMBER && strncmp(t.result.start, "42", t.result.length) == 0); // t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_SEMICOLON); // t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_EOF); // } // void test_tokenize_function_call(void) { // const char* src = "print(x);"; // Lexer lexer; // lexer_init(&lexer, "", src); // TokenResult t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_IDENTIFIER && strncmp(t.result.start, "print", t.result.length) == 0); // t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_LPAREN); // t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_IDENTIFIER && strncmp(t.result.start, "x", t.result.length) == 0); // t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_RPAREN); // t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_SEMICOLON); // t = lexer_next(&lexer); // assert(t.type == SYNC_RESULT && t.result.type == TOKEN_EOF); // } int main(void) { // test_tokenize_simple_assignment(); // test_tokenize_function_call(); printf("All lexer tests passed.\n"); return 0; }