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

/* file fifo */
int* file;
/* pointeur sur l indice de la file*/
int pointeur;
/*nbre d'elements*/
int nb_element;

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

int getElement(){
	return nb_element;
}

int getValeurFile(int pos) {
	return file[pos];
}

/*Ajoute un element en fin de la file*/
void enfiler(int etat) {
	//file = (int*)realloc(file, (nb_element+1)*sizeof(int));
	nb_element++;
	file[nb_element-1] = etat+1;
}

/*Retourne le premier element de la file*/
int defiler() {
	int temp;
	if (!isEmpty()) {
		temp = file[pointeur];
		// On supprime le premier element de la file
		file = &file[1];
		//pointeur++;
		nb_element--;
		
		return temp;
	}
	return -1; /*la pile est vide*/
}

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