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