Originariamente inviato da Vincenzo1968
Ciao,

dovrebbe essere sufficiente richiamare la funzione yyparse(generata da Yacc/Bison) una volta per ogni file da analizzare.
Nel seguente esempio, l'utente specifica uno o più file da riga di comeando e il programma effettua il parsing di ognuno dei file:

codice:
void parse(char *filename)
{
	yyin = fopen(filename, "r");
	if (yyin == NULL)
	{
		fprintf(stderr,"Impossibile aprire il file: %s\n", filename);
	}
	else
	{
		if (yyparse() == 0)
			fprintf(stderr,"Parsing eseguito con successo!\n");
		else
			fprintf(stderr,"Parsing fallito.\n");
	}
}

int main(int argc, char **argv)
{
	int k;

	if (argc<2)
	{
		fprintf(stderr,"uso: %s filename\n", argv[0]);
		return -1;
	}

	for ( k = 1; k < argc; k++ )
	{
		printf("\nParsing del file %s:\n\n", argv[k]);
		parse(argv[k]);
	}

	return 0;
}
x XWolverineX : Bison(e il suo antenato, Yacc) è un generatore di parser e, cioè, un compilatore di compilatori :master: . Puoi vedere qui:

http://it.wikipedia.org/wiki/Generatore_di_parser
Ho inserito il tuo codice...ma mi da i seguenti errori
http://img299.imageshack.us/my.php?image=progsn3.jpg