diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 21 |
1 files changed, 18 insertions, 3 deletions
@@ -3,25 +3,40 @@ #endif #include "ast.h" +#include "common.h" #include "libparser_a-parser.h" +#include <errno.h> +#include <locale.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> + extern FILE *yyin; extern AST_NODE *prog; +const char *ccmmc_main_name; + int main (int argc, char **argv) { + ERR_DECL; + setlocale (LC_ALL, ""); + name = strrchr (argv[0], '/'); + name = name == NULL ? name : name + 1; + if (argc != 2) { - fputs("usage: parser [source file]\n", stderr); + fprintf(stderr, "Usage: %s SOURCE\n", name); exit(1); } - yyin = fopen(argv[1],"r"); + + const char *filename = argv[1]; + yyin = fopen(filename, "r"); if (yyin == NULL) { - fputs("Error opening source file.\n", stderr); + fprintf(stderr, "%s: %s: %s\n", name, filename, ERR_MSG); exit(1); } + yyparse(); printGV(prog, NULL); return 0; |