X-Git-Url: https://git.piment-noir.org/?p=TP_AL_C.git;a=blobdiff_plain;f=lexer%2Fmain.c;h=f2b6df47660f77bb7c43c49b4752a7ea52582966;hp=c5a04576a1c9de4f9f505601af492d6a58054af9;hb=f8c1adc17ee4b1e87981568009a92d84bf0f5506;hpb=9ed84d89d23a6198fd4157bfe93424b7b7582332 diff --git a/lexer/main.c b/lexer/main.c index c5a0457..f2b6df4 100644 --- a/lexer/main.c +++ b/lexer/main.c @@ -13,31 +13,29 @@ void do_lexical_analysis() { c = fgetwc(source); // lecture du premier caractere do { scanner(); - if (tokenType == MOT || tokenType == MOTCLE) { - fwprintf(target, L"%20s: %ls\n", tokenTypestr[tokenType], token[tokenFound].value); - } else { - fwprintf(target, L"%20s\n", tokenTypestr[tokenType]); - } + wprint_token_target(); token[tokenFound].type = tokenTypestr[tokenType]; tokenFound++; } while (tokenType != FIN); // tant que la fin du fichier n'est pas atteinte } void do_syntactic_analysis() { + fputws(L"\n\n", + target); c = fgetwc(source); // lecture du premier caractere - do { - analyze_AXIOME(); - } while (tokenType != FIN); + analyze_AXIOME(); + fputws(L"\n", target); } void print_usage(const char* name) { fprintf(stdout,"Usage: %s [options]\n" "Where [options] are:\n" - " -h, --help: display this help text\n" + " -h, --help: display this help message\n" " -l, --lexical-only: do only the lexical analysis\n" " -i, --input: use as input file instead of standard input\n" " -o, --output: use as output file instead of standard output\n", name); + fflush(stdout); } int main(int argc, char **argv) { @@ -86,13 +84,15 @@ int main(int argc, char **argv) { case ':': /* missing option argument */ pr_error("%s: option '-%c' requires an argument\n", - argv[0], optopt); + argv[0], optopt); break; case '?': default: /* invalid option */ pr_error("%s: option '-%c' is invalid: ignored\n", - argv[0], optopt); + argv[0], optopt); + /* print the help message for invalid options */ + hflag = 1; break; } } @@ -101,7 +101,7 @@ int main(int argc, char **argv) { // Ouvre le fichier source en lecture seulement (le fichier doit exister) : source = fopen(in_file, "r+"); if (source == NULL) { - pr_error("Impossible d'ouvrir le fichier %s\n", in_file); + pr_error("Fail to open file %s\n", in_file); return EXIT_FAILURE; } } else { @@ -113,7 +113,7 @@ int main(int argc, char **argv) { // avec suppression du contenu au prealable : target = fopen(out_file, "w+"); if (target == NULL) { - pr_error("Impossible d'ouvrir le fichier %s\n", out_file); + pr_error("Fail to open file %s\n", out_file); return EXIT_FAILURE; } } else { @@ -122,7 +122,7 @@ int main(int argc, char **argv) { if (hflag) { print_usage(argv[0]); - } else if (lflag){ + } else if (lflag) { do_lexical_analysis(); } else { do_syntactic_analysis();