43 lines
1.0 KiB
C
43 lines
1.0 KiB
C
/* splc0.c — SPL compiler CLI */
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
static char *read_file(const char *path, long *out_len) {
|
|
FILE *f = fopen(path, "rb");
|
|
if (!f) {
|
|
perror("fopen");
|
|
return NULL;
|
|
}
|
|
fseek(f, 0, SEEK_END);
|
|
long len = ftell(f);
|
|
fseek(f, 0, SEEK_SET);
|
|
char *buf = malloc((size_t)len + 1);
|
|
if (!buf) {
|
|
fclose(f);
|
|
return NULL;
|
|
}
|
|
fread(buf, 1, (size_t)len, f);
|
|
fclose(f);
|
|
buf[len] = '\0';
|
|
*out_len = len;
|
|
return buf;
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
if (argc < 2) {
|
|
fprintf(stderr, "Usage: splc0 [--dump <flags>] <in> [out]\n");
|
|
return 1;
|
|
}
|
|
if (strcmp(argv[1], "--dump") == 0)
|
|
// return cmd_dump(argc - 2, argv + 2);
|
|
return 0;
|
|
if (strcmp(argv[1], "--help") == 0) {
|
|
printf("splc0 <in> <out> compile\n");
|
|
printf("splc0 --dump <f> <file> dump: tokens,cst,ast,ir,mcode,all\n");
|
|
return 0;
|
|
}
|
|
// return cmd_compile(argc - 1, argv + 1);
|
|
return 0;
|
|
}
|