int main(int argc, char** argv) { if(argc <= 1) return 1; FILE *f = fopen(argv[1], "r"); if (!f) { perror(argv[1]); return 1; } FILE *fp = stdout; if(argc == 3) { fp = fopen(argv[2], "w"); } yyrestart(f); #if YYDEBUG yydebug = 1; #endif yyparse(); if(!err) { #ifdef DEBUG print_tree(root); #endif main_parse(root); //print_code(&code, stdout); init_mips(fp); gen_mips(&code, fp); } return 0; }
int main (int argc, char *argv[]) { FILE *fin; long i = 0; if (argc == 1) { printf ("Mod de utilizare : %s file_name\n",argv[0]); exit (0); } if ((fin = fopen (argv[1], "r")) == NULL) { fprintf (stderr, "\nEroare la deschiderea fisierului %s\n",argv[1]); exit (1); } marime_fisier = 0; fseek (fin, 0, SEEK_END); // calculam marimea fisierului marime_fisier = ftell (fin); // daca e vid inseamna ca a aparut o eroare if (marime_fisier == 0) { fprintf (stderr, "\nFisier vid sau eroare de citire\n"); exit (1); } fseek (fin, 0, SEEK_SET); if ((sursa = (char *) malloc (marime_fisier * sizeof (char))) == NULL) { fprintf(stderr,"\nEroare la alocarea de memorie pentru incarcarea fisierului\n"); exit (1); } i = 0; while (!feof (fin)) // citim fisierul in sursa sursa[i++] = fgetc (fin); sursa[marime_fisier] = '\0'; pozitie_in_fisier = 0; main_parse(); return 0; }