| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #include <stdint.h>
- #include <stdio.h>
- #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;
- }
|