
#include	<stdio.h>
#include	<projet.h>
#include	<projet.tab.h>
#include	<string.h>



/*
	variable externe :
*/
extern int	yylval	;
extern char *	yytext	;
extern int	yyleng	;

/*


	reperes
*/
int		noLig	=	0,
		noCol	=	0,
		noErr	=	0;


/* 
	structure de donnée pour le dictionnaire
*/




int		initialization		()
	{
	int	w;
	for	(w = 0; w < N; w++)
		{
		dico[w].nomVar[0]= '\0';
		dico[w].type[0]	= '\0';
		dico[w].size = 0;
		}
	return	0;
	}

int		print	()
	{
	int	w;
	printf("Liste des variables déclarées : \n \n \n");
	
	for	(w = 0; w < nbVar; w++)
		{
		printf	("%s\t<%010s>\n", dico[w].type, dico[w].nomVar);
		}
	return	0;
	}


int add ()
{
	int i;
	for(i=0;i<nbVar;i++)
	{
		if ( !(strcmp(yytext,dico[i].nomVar)))
			return i;
	 	
			//printf("variable déja existante : %s \n", yytext );
	}
	strcpy(dico[i].nomVar,yytext);
//on sauve le type. on utilise la convention des noms pour les variables booléenes, sinon on regarde le dernier type annoncé
	if (yytext[0] == 'L')
	{
		strcpy(dico[i].type,"bool");
	}
	else
	{
		strcpy(dico[i].type,lastType);	
	}
	nbVar++;
	return nbVar -1;

}

void memType(char param[])
{
strcpy(lastType,param);
}

/* 
	func
*/

int main (int argc, char * argv[])
{

	initialization();
	yyparse();

		print();
printf("\n %d \n", nbVar);
}





