zig0

my attempts at zig bootstrapping in C
Log | Files | Refs | README | LICENSE

main.c (751B) - Raw


      1 #include "common.h"
      2 
      3 #include <stdbool.h>
      4 #include <stdio.h>
      5 #include <stdlib.h>
      6 
      7 int zig0Run(char* program, char** msg);
      8 int zig0RunFile(char* fname, char** msg);
      9 
     10 static void usage(const char* argv0) {
     11     fprintf(stderr, "Usage: %s program.zig\n", argv0);
     12 }
     13 
     14 int main(int argc, char** argv) {
     15     if (argc != 2) {
     16         usage(argv[0]);
     17         return 1;
     18     }
     19 
     20     char* msg;
     21     switch (zig0RunFile(argv[1], &msg)) {
     22     case 0:
     23         return 0;
     24         break;
     25     case 1:
     26         fprintf(stderr, "panic: %s\n", msg);
     27         free(msg);
     28         return 0;
     29         break;
     30     case 2:
     31         fprintf(stderr, "interpreter error: %s\n", msg);
     32         free(msg);
     33         return 1;
     34         break;
     35     case 3:
     36         return 1;
     37         break;
     38     }
     39 }