2026-02-16 01:36:41 +01:00
|
|
|
#include "frontend/parser.h"
|
2026-02-15 22:12:19 +01:00
|
|
|
#include "objects/object.h"
|
2026-02-15 20:57:19 +01:00
|
|
|
|
2026-02-15 20:48:01 +01:00
|
|
|
int main() {
|
2026-02-16 00:33:02 +01:00
|
|
|
// Creamos un allocator
|
2026-02-15 20:57:19 +01:00
|
|
|
JLANG_memory_allocator *allocPtr = JLANG_CreateAllocator();
|
|
|
|
|
|
2026-02-16 00:33:02 +01:00
|
|
|
size_t stringVar1 = obj_new_string(allocPtr, "Hello world!");
|
|
|
|
|
size_t floatVar1 = obj_new_float(allocPtr, 3.14);
|
|
|
|
|
size_t listVar1 = obj_new_list(allocPtr, 3);
|
|
|
|
|
Object *list = (Object *)JLANG_RESOLVE(allocPtr, listVar1);
|
2026-02-15 20:57:19 +01:00
|
|
|
|
2026-02-16 00:33:02 +01:00
|
|
|
size_t *items = (size_t *)JLANG_RESOLVE(allocPtr, list->data.list_val.items);
|
|
|
|
|
items[0] = floatVar1;
|
|
|
|
|
items[1] = stringVar1;
|
|
|
|
|
items[2] = listVar1;
|
2026-02-16 01:36:41 +01:00
|
|
|
|
2026-02-16 00:33:02 +01:00
|
|
|
obj_print(allocPtr, listVar1, "");
|
2026-02-15 22:12:19 +01:00
|
|
|
|
2026-02-16 00:33:02 +01:00
|
|
|
obj_free(allocPtr, stringVar1);
|
|
|
|
|
|
2026-02-16 01:36:41 +01:00
|
|
|
stringVar1 = obj_new_string(allocPtr, "Hola Mundo!");
|
2026-02-16 00:33:02 +01:00
|
|
|
items[1] = stringVar1;
|
|
|
|
|
items[2] = stringVar1;
|
2026-02-15 22:12:19 +01:00
|
|
|
|
2026-02-16 00:33:02 +01:00
|
|
|
obj_print(allocPtr, listVar1, "");
|
2026-02-15 20:57:19 +01:00
|
|
|
|
|
|
|
|
JLANG_visualize(allocPtr);
|
2026-02-16 00:33:02 +01:00
|
|
|
|
2026-02-16 01:36:41 +01:00
|
|
|
// Lexer test
|
|
|
|
|
int totalTokens = 0;
|
|
|
|
|
Token *tokens = tokenize("x = 10\ny = 5\nz = x + y\nprint z", &totalTokens);
|
|
|
|
|
printf("totalTokens=%d\n", totalTokens);
|
|
|
|
|
ASTNode* block = parse(tokens, totalTokens);
|
|
|
|
|
ast_debug(block);
|
|
|
|
|
|
2026-02-15 20:57:19 +01:00
|
|
|
return 0;
|
2026-02-15 20:48:01 +01:00
|
|
|
}
|