Main.c 894 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <stdint.h>
  2. #include <stdio.h>
  3. #include "Code.h"
  4. #include "Compiler.h"
  5. #include "Memory.h"
  6. #include "Tokenizer.h"
  7. int main(int argCount, const char** args) {
  8. if(argCount < 2) {
  9. return 0;
  10. }
  11. static char heap[2000];
  12. memoryInit(heap, sizeof(heap));
  13. // memoryDump();
  14. Tokenizer t;
  15. Error e = tokenizerInit(&t, args[1]);
  16. if(hasError(&e)) {
  17. puts(e.text);
  18. tokenizerDestroy(&t);
  19. return 0;
  20. }
  21. Code code;
  22. codeInit(&code);
  23. e = compileFile(&t, &code);
  24. tokenizerDestroy(&t);
  25. if(hasError(&e)) {
  26. puts(e.text);
  27. } else {
  28. // codeDump(&code);
  29. // return 0;
  30. // memoryDump();
  31. codeRun(&code);
  32. if(codeHasRunError(&code)) {
  33. puts(codeGetRunError(&code));
  34. }
  35. // memoryDump();
  36. }
  37. codeDestroy(&code);
  38. // memoryDump();
  39. return 0;
  40. }