Exemple #1
0
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;
}
Exemple #2
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;
}