Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
QuickBrainFuck - main.cpp

main.cpp

Caricato da: TheDarkJuster
Scarica il programma completo

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <malloc.h>
  5. #include <iostream>
  6. #include <vector>
  7. #include <stack>
  8.  
  9. #include "BrainFuck.h"
  10.  
  11. int main(int argc, char **argv)
  12. {
  13.         printf("\n");
  14.         if (argc >= 2)
  15.         {
  16.                 Format formato = Characters;
  17.                 if (argc >= 3)
  18.                 {
  19.                         if (strcmp(argv[2], "-n") == 0)
  20.                                 formato = Numbers;
  21.                         else
  22.                                 formato = Characters;
  23.                 }
  24.                
  25.                 BrainFuck* programma = new BrainFuck(argv[1], formato);
  26.                 unsigned long istruzioniEseguite = programma->Esegui();
  27.                 struct Report statistiche = programma->GeneraReport();
  28.                 if (istruzioniEseguite != 0)
  29.                 {
  30.                         printf("\n\nStatistiche sull' esecuzione del programma:\n");
  31.                         printf("Totale Istruzioni caricate: %u\n", statistiche.istruzioniCaricate);
  32.                         printf("Totale Istruzioni eseguite: %u\n", statistiche.istruzioniEseguite);
  33.                         printf("Operazioni Aritmetiche eseguite: %u\n", statistiche.opAritmetiche);
  34.                         printf("Numero di byte utilizzati: %u", statistiche.byteUtilizzati);
  35.                 } else {
  36.                         switch (statistiche.ultimoErrore)
  37.                         {
  38.                                 case FILE_UNAVAILABLE:
  39.                                         printf("Impossibile aprire il file specificato");
  40.                                         break;
  41.                                 case FILE_EMPTY:
  42.                                         printf("Il file e' vuoto");
  43.                                         break;
  44.                                 case NOT_CORRESPONDING:
  45.                                         printf("Errore nella corrispondenza fra [ e ]");
  46.                                         break;
  47.                                 case NOINSTRUCTIONS:
  48.                                         printf("Il file non e' vuoto ma non contiene istruzioni eseguibili");
  49.                                         break;
  50.                                 default:
  51.                                         printf("Nessun errore classificato e' stato riscontrato!");
  52.                                         break;
  53.                         }
  54.                 }
  55.                 delete programma;
  56.         } else {
  57.                 printf("Devi specificare un programma da eseguire!");
  58.         }
  59.         printf("\n");
  60.         return EXIT_SUCCESS;
  61. }