void Concatenation(char *ifile1, char *ifile2, char *ifile3, int threefiles, FILE *f10)
{
        FILE *f1, *f2, *f3;
        FSM fsm1, fsm2, fsm3;
        
        /* To generate the concatenation of two state machines */
        
        if(!threefiles)
        {
                ifile1 = "../data/conc1.data";
                ifile2 = "../data/conc2.data";
                ifile3 = "../data/conc.results";
        }
        f1 = fopen(ifile1, "r");
        f2 = fopen(ifile2, "r");
        f3 = fopen(ifile3, "w");

        fsm_read(f1, &fsm1);
        fsm_read(f2, &fsm2);
        fsm_concatenate(&fsm1, &fsm2, &fsm3);
        fsm_print(f3, &fsm3);

        fclose(f1);
        fclose(f2);
        fclose(f3);
        fsm_delete(&fsm1);
        fsm_delete(&fsm2);
        fsm_delete(&fsm3);


        fprintf(f10, "Concatenation between fsm 1 as input file 1:\n\t ");
        fprintf(f10, "%s \n", ifile1);
        fprintf(f10, "and fsm 2 as input file 2: \n\t %s \n", ifile2);
        fprintf(f10, "Output Concatenation fsm output file:\n\t ");
        fprintf(f10, "%s \n\n\n", ifile3);

        /*end h*/
}

