xref: /csrg-svn/old/lex/libln/yyless.c (revision 9920)
1*9920Ssam /*	@(#)yyless.c	4.1	12/25/82	*/
2*9920Ssam 
3*9920Ssam yyless(x)
4*9920Ssam {
5*9920Ssam extern char yytext[];
6*9920Ssam register char *lastch, *ptr;
7*9920Ssam extern int yyleng;
8*9920Ssam extern int yyprevious;
9*9920Ssam lastch = yytext+yyleng;
10*9920Ssam if (x>=0 && x <= yyleng)
11*9920Ssam 	ptr = x + yytext;
12*9920Ssam else
13*9920Ssam 	ptr = x;
14*9920Ssam while (lastch > ptr)
15*9920Ssam 	yyunput(*--lastch);
16*9920Ssam *lastch = 0;
17*9920Ssam if (ptr >yytext)
18*9920Ssam 	yyprevious = *--lastch;
19*9920Ssam yyleng = ptr-yytext;
20*9920Ssam }
21