1*3e12c5d1SDavid du Colombier #include <u.h> 2*3e12c5d1SDavid du Colombier #include <libc.h> 3*3e12c5d1SDavid du Colombier #include <stdio.h> 4*3e12c5d1SDavid du Colombier 5*3e12c5d1SDavid du Colombier extern char yytext[]; 6*3e12c5d1SDavid du Colombier extern int yyleng; 7*3e12c5d1SDavid du Colombier extern int yyprevious; 8*3e12c5d1SDavid du Colombier 9*3e12c5d1SDavid du Colombier void yyunput(int c); 10*3e12c5d1SDavid du Colombier 11*3e12c5d1SDavid du Colombier void yyless(int x)12*3e12c5d1SDavid du Colombieryyless(int x) 13*3e12c5d1SDavid du Colombier { 14*3e12c5d1SDavid du Colombier char *lastch, *ptr; 15*3e12c5d1SDavid du Colombier 16*3e12c5d1SDavid du Colombier lastch = yytext+yyleng; 17*3e12c5d1SDavid du Colombier if(x>=0 && x <= yyleng) 18*3e12c5d1SDavid du Colombier ptr = x + yytext; 19*3e12c5d1SDavid du Colombier else 20*3e12c5d1SDavid du Colombier ptr = (char*)x; 21*3e12c5d1SDavid du Colombier while(lastch > ptr) 22*3e12c5d1SDavid du Colombier yyunput(*--lastch); 23*3e12c5d1SDavid du Colombier *lastch = 0; 24*3e12c5d1SDavid du Colombier if (ptr >yytext) 25*3e12c5d1SDavid du Colombier yyprevious = lastch[-1]; 26*3e12c5d1SDavid du Colombier yyleng = ptr-yytext; 27*3e12c5d1SDavid du Colombier } 28