main.c 886 B

1234567891011121314151617181920212223242526272829303132
  1. #include <stdio.h>
  2. #include "pikaScript.h"
  3. #include "pikaVM.h"
  4. int main(int argc, char* argv[])
  5. {
  6. PikaObj* pikaMain = NULL;
  7. // pika.exe
  8. if (argc == 1) {
  9. pikaMain = pikaPythonInit();
  10. }
  11. // pika.exe xxx.py
  12. if (argc == 2) {
  13. Args buffs = { 0 };
  14. pikaMain = newRootObj("pikaMain", New_PikaMain);
  15. char* path = argv[1];
  16. char* filename = strsPathGetFileName(&buffs, path);
  17. size_t filename_size = strGetSize(filename);
  18. if (0 == strncmp(filename + filename_size - 3, ".py", 3)) {
  19. mkdir("pikascript-api");
  20. pikaVM_runFile(pikaMain, path);
  21. }
  22. else if(0 == strncmp(filename + filename_size - 5, ".py.a", 5)){
  23. obj_linkLibraryFile(pikaMain, path);
  24. obj_runModule(pikaMain, "main");
  25. }
  26. strsDeinit(&buffs);
  27. }
  28. pikaPythonShell(pikaMain);
  29. }