Blame examples/manual/userinit.lex

Packit f00812
%{
Packit f00812
#define YY_USER_INIT open_input_file()
Packit f00812
Packit f00812
extern FILE *yyin;
Packit f00812
Packit f00812
void open_input_file(void)
Packit f00812
{
Packit f00812
  char *file_name,buffer[1024];
Packit f00812
Packit f00812
  yyin      = NULL; 
Packit f00812
Packit f00812
  while(yyin == NULL){
Packit f00812
    printf("Input file: ");
Packit f00812
    file_name = fgets(buffer,1024,stdin);
Packit f00812
    if(file_name){
Packit f00812
      file_name[strlen(file_name)-1] = '\0';
Packit f00812
      yyin = fopen(file_name,"r");
Packit f00812
      if(yyin == NULL){
Packit f00812
        printf("Unable to open \"%s\"\n",file_name);
Packit f00812
      }
Packit f00812
    } else {
Packit f00812
      printf("stdin\n");
Packit f00812
      yyin = stdin;
Packit f00812
      break;
Packit f00812
    }
Packit f00812
  }
Packit f00812
}
Packit f00812
Packit f00812
%}
Packit f00812
%%