/*
----------------------------------------------------------------
Y. CIURLIK & A. DUCHENE - Projet Compil - M1GMI
-------------------------------------------------------------------
*/
#include "file.h"

/**
 * Fichier concernant une FILE FIFO
 *
**/

/**
 * Initialise la file 
 *
**/
void file_vide() {
	file = (int*) malloc (sizeof(int)*10000);
	pointeur = 0;
	nb_element = 0;
}

/**
 * Ajoute un element en fin de la file
 *
**/
void enfiler(int etat) {
	//file = realloc(file, (nb_element+1)*sizeof(int));
	if (file == NULL) {
            printf("ERROR realloc : Allocation impossible\n");
            printf("Dans la fonction 'enfiler'\n");
            exit(10);
        }
	nb_element++;
	file[nb_element-1] = etat+1;
}

/**
 * Retourne le premier element de la file.
 * Si la file est vide, retourne -1.
 *
**/
int defiler() {
	int temp;
	
	if (!isEmpty()) {
		temp = file[pointeur];
		// On supprime le premier element de la file
		file = &file[1];
		nb_element--;
		return temp;
	}
	printf("file vide\n");
	return -1;
}

/**
 * Indique si la pile est vide ou non.
 *
 * Renvoie TRUE si la pile est vide, FALSE sinon.
 *
**/
boolean isEmpty() {
	/* si la file est non vide */
	if (nb_element > 0) {
		return FALSE;
	} else {
		return TRUE;
	}
	
}
