#ifndef __TREE_H__
#define __TREE_H__
char ops[6]={'*','/','+','-','=','\n'};
char* inputExpression;
int experLength;
typedef enum {rien,Mult,Div,Add,Sub,Equal} operande;
typedef struct Noeud{
operande op;
char c;
struct Noeud* filsG;
struct Noeud* filsD;
}Noeud;
typedef struct Arbre{
Noeud* racine;
}Arbre;
typedef struct Cell{
Noeud* n;
struct Cell* suivante;
}Cell;
typedef struct ListeN{
Cell* tete;
Cell* fin;
}ListeN;
/*Cette fonction permet de creer une liste de noeud temporaire*/
/* */
/* qui va servir à creer l'arbre syntaxique. */
/**************************************************************/
ListeN creer_liste(char*);
/*Ajoute un noeud a la fin de la liste*/
void addtoListe(Noeud*);
/*retourne le noeud de tete et le retire de la liste*/
Noeud* grapstoListe();
/*cette creer l'arbre syntaxique a partir d'une liste de noeud qui va etre interpréter*/
Arbre creerAbr(ListeN);
/*teste si l'arbre est vide ou c'est une feuille retourne:*/
/* */
/* .i!=0 si oui */
/* */
/* .i=0 sinon */
/* */
/**********************************************************/
int isEmpty(Arbre*);
int estFeuille(Arbre*);
#endif