summaryrefslogtreecommitdiff
path: root/examples/manual/userinit.lex
diff options
context:
space:
mode:
authorManoj Srivastava <srivasta@golden-gryphon.com>2003-12-03 22:33:17 -0800
committerManoj Srivastava <srivasta@golden-gryphon.com>2003-12-03 22:33:17 -0800
commitc2b22e08bd48278f2cf125f054c9f6286e345ff0 (patch)
tree3c0ab722c83ef33913ad293af7d56ce2c4e1fcc9 /examples/manual/userinit.lex
parentedc848712307fe5c881364e12e520e9fe58d9969 (diff)
Imported Upstream version 2.5.31
Diffstat (limited to 'examples/manual/userinit.lex')
-rw-r--r--examples/manual/userinit.lex30
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/manual/userinit.lex b/examples/manual/userinit.lex
new file mode 100644
index 0000000..9a56471
--- /dev/null
+++ b/examples/manual/userinit.lex
@@ -0,0 +1,30 @@
+%{
+#define YY_USER_INIT open_input_file()
+
+extern FILE *yyin;
+
+void open_input_file(void)
+{
+ char *file_name,buffer[1024];
+
+ yyin = NULL;
+
+ while(yyin == NULL){
+ printf("Input file: ");
+ file_name = fgets(buffer,1024,stdin);
+ if(file_name){
+ file_name[strlen(file_name)-1] = '\0';
+ yyin = fopen(file_name,"r");
+ if(yyin == NULL){
+ printf("Unable to open \"%s\"\n",file_name);
+ }
+ } else {
+ printf("stdin\n");
+ yyin = stdin;
+ break;
+ }
+ }
+}
+
+%}
+%%