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:
x XWolverineX : Bison(e il suo antenato, Yacc) è un generatore di parser e, cioè, un compilatore di compilatori :master: . Puoi vedere qui: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; }
http://it.wikipedia.org/wiki/Generatore_di_parser

Rispondi quotando