#include #include #include "Code.h" #include "Compiler.h" #include "Memory.h" #include "Tokenizer.h" int main(int argCount, const char** args) { if(argCount < 2) { return 0; } static char heap[1000]; memoryInit(heap, sizeof(heap)); // memoryDump(); // char* c1 = memoryAllocate(16); // char* c2 = memoryAllocate(22); // char* c3 = memoryAllocate(32); // if(c1 == nullptr || c2 == nullptr || c3 == nullptr) { // return 0; // } // memset(c1, 1, 16); // memset(c2, 2, 22); // memset(c3, 3, 32); // memoryDump(); // memoryFree(c2); // memoryDump(); // memoryFree(c3); // memoryDump(); // memoryFree(c1); // memoryDump(); Tokenizer t; Error e = tokenizerInit(&t, args[1]); memoryDump(); if(hasError(&e)) { puts(e.text); tokenizerDestroy(&t); return 0; } Code code; codeInit(&code); e = compileFile(&t, &code); tokenizerDestroy(&t); if(hasError(&e)) { puts(e.text); } else { codeRun(&code); if(codeHasRunError(&code)) { puts(codeGetRunError(&code)); } } codeDestroy(&code); // while(true) { // Token token = tokenizerNext(&t); // if(tokenizerHasError(&t)) { // puts(tokenizerGetError(&t)); // break; // } // char buffer[256]; // tokenizerPrintToken(&token, buffer, sizeof(buffer)); // puts(buffer); // if(token.type == END) { // break; // } // } // char line[256]; // while(true) { // fgets(line, sizeof(line), stdin); // if(strcmp(line, "quit\n") == 0) { // break; // } // puts(line); // } // puts("quit"); return 0; }