xref: /netbsd-src/external/bsd/flex/dist/examples/manual/unput.lex (revision 3c3a7b7603b4ed4cb76dd5c5a3e781ddca2349bb)
1*3c3a7b76Schristos /*
2*3c3a7b76Schristos  * unput.l : An example of what *not*
3*3c3a7b76Schristos  *           to do with unput().
4*3c3a7b76Schristos  */
5*3c3a7b76Schristos 
6*3c3a7b76Schristos 
7*3c3a7b76Schristos %{
8*3c3a7b76Schristos #include <stdio.h>
9*3c3a7b76Schristos 
10*3c3a7b76Schristos void putback_yytext(void);
11*3c3a7b76Schristos %}
12*3c3a7b76Schristos 
13*3c3a7b76Schristos %%
14*3c3a7b76Schristos foobar   putback_yytext();
15*3c3a7b76Schristos raboof   putback_yytext();
16*3c3a7b76Schristos %%
17*3c3a7b76Schristos 
18*3c3a7b76Schristos void putback_yytext(void)
19*3c3a7b76Schristos {
20*3c3a7b76Schristos     int   i;
21*3c3a7b76Schristos     int   l = strlen(yytext);
22*3c3a7b76Schristos     char  buffer[YY_BUF_SIZE];
23*3c3a7b76Schristos 
24*3c3a7b76Schristos     strcpy(buffer,yytext);
25*3c3a7b76Schristos     printf("Got: %s\n",yytext);
26*3c3a7b76Schristos     for(i=0; i<l; i++){
27*3c3a7b76Schristos        unput(buffer[i]);
28*3c3a7b76Schristos     }
29*3c3a7b76Schristos }
30*3c3a7b76Schristos 
31*3c3a7b76Schristos 
32*3c3a7b76Schristos 
33