diff options
Diffstat (limited to 'examples/manual/unput.lex')
-rw-r--r-- | examples/manual/unput.lex | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/manual/unput.lex b/examples/manual/unput.lex new file mode 100644 index 0000000..161471a --- /dev/null +++ b/examples/manual/unput.lex @@ -0,0 +1,32 @@ +/* + * unput.l : An example of what *not* + * to do with unput(). + */ + + +%{ +#include <stdio.h> + +void putback_yytext(void); +%} + +%% +foobar putback_yytext(); +raboof putback_yytext(); +%% + +void putback_yytext(void) +{ + int i; + int l = strlen(yytext); + char buffer[YY_BUF_SIZE]; + + strcpy(buffer,yytext); + printf("Got: %s\n",yytext); + for(i=0; i<l; i++){ + unput(buffer[i]); + } +} + + + |