#include "Token.h" #include "drain.h" #include "lexer.h" #include "parse.h" #include #include int main(int argc, char **argv) { if (argc != 2) { fprintf(stderr, "usage: %s \n", argv[0]); return 1; } FILE *fp = fopen(argv[1], "rb"); if (fp == NULL) { perror("main"); return 1; } char *data = drain(fp); fclose(fp); if (data == NULL) { fprintf(stderr, "failed to drain '%s'\n", argv[1]); return 1; } Token *toks = lexer(data); free(data); if (toks == NULL) { fprintf(stderr, "lexer failed\n"); return 1; } if (parse(toks)) fprintf(stderr, "parse failed\n"); lexer_free(toks); return 0; }