Files
j-lang/src/main.c

40 lines
951 B
C
Raw Normal View History

#include "vm/eval.h"
2026-02-15 20:57:19 +01:00
int main(int argc, char **argv) {
if (argc != 2) {
printf("usage: %s <path to .j file>\n", argv[0]);
exit(1);
}
// Creamos un allocator
2026-02-15 20:57:19 +01:00
JLANG_memory_allocator *allocPtr = JLANG_CreateAllocator();
// Read file from argv
FILE *fptr = fopen(argv[1], "r");
if (fptr == NULL) {
printf("error leyendo: %s\n", argv[1]);
exit(1);
}
2026-02-15 20:57:19 +01:00
fseek(fptr, 0, SEEK_END); // ir al final
long length = ftell(fptr); // cuántos bytes tiene
fseek(fptr, 0, SEEK_SET); // volver al inicio
char *buff = malloc(length + 1);
size_t bytesRead = fread(buff, 1, length, fptr);
buff[bytesRead] = '\0';
fclose(fptr);
2026-02-15 22:12:19 +01:00
printf("%s\n", buff);
// Lexer test
int totalTokens = 0;
Token *tokens = tokenize(buff, &totalTokens);
printf("totalTokens=%d\n", totalTokens);
ASTNode *block = parse(tokens, totalTokens);
ast_debug(block);
Environment env = {0};
eval(block, &env, allocPtr);
2026-02-15 20:57:19 +01:00
return 0;
2026-02-15 20:48:01 +01:00
}