1*357f1050SThomas Veerman %{ 2*357f1050SThomas Veerman #define YY_USER_INIT open_input_file() 3*357f1050SThomas Veerman 4*357f1050SThomas Veerman extern FILE *yyin; 5*357f1050SThomas Veerman open_input_file(void)6*357f1050SThomas Veermanvoid open_input_file(void) 7*357f1050SThomas Veerman { 8*357f1050SThomas Veerman char *file_name,buffer[1024]; 9*357f1050SThomas Veerman 10*357f1050SThomas Veerman yyin = NULL; 11*357f1050SThomas Veerman 12*357f1050SThomas Veerman while(yyin == NULL){ 13*357f1050SThomas Veerman printf("Input file: "); 14*357f1050SThomas Veerman file_name = fgets(buffer,1024,stdin); 15*357f1050SThomas Veerman if(file_name){ 16*357f1050SThomas Veerman file_name[strlen(file_name)-1] = '\0'; 17*357f1050SThomas Veerman yyin = fopen(file_name,"r"); 18*357f1050SThomas Veerman if(yyin == NULL){ 19*357f1050SThomas Veerman printf("Unable to open \"%s\"\n",file_name); 20*357f1050SThomas Veerman } 21*357f1050SThomas Veerman } else { 22*357f1050SThomas Veerman printf("stdin\n"); 23*357f1050SThomas Veerman yyin = stdin; 24*357f1050SThomas Veerman break; 25*357f1050SThomas Veerman } 26*357f1050SThomas Veerman } 27*357f1050SThomas Veerman } 28*357f1050SThomas Veerman 29*357f1050SThomas Veerman %} 30*357f1050SThomas Veerman %% 31