reject.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 59 行

C
59
字号
#include	<u.h>#include	<libc.h>#include	<stdio.h>extern	FILE*	yyout;extern	FILE*	yyin;extern	int	yyprevious, *yyfnd;extern	char	yyextra[];extern	char	yytext[];extern	int	yyleng;externstruct{	int *yyaa, *yybb;	int *yystops;} *yylstate [], **yylsp, **yyolsp;int	yyback(int *p, int m);int	yyinput(void);void	yyoutput(int c);void	yyunput(int c);intyyracc(int m){	yyolsp = yylsp;	if(yyextra[m]) {		while(yyback((*yylsp)->yystops, -m) != 1 && yylsp > yylstate) {			yylsp--;			yyunput(yytext[--yyleng]);		}	}	yyprevious = yytext[yyleng-1];	yytext[yyleng] = 0;	return m;}intyyreject(void){	for(; yylsp < yyolsp; yylsp++)		yytext[yyleng++] = yyinput();	if(*yyfnd > 0)		return yyracc(*yyfnd++);	while(yylsp-- > yylstate) {		yyunput(yytext[yyleng-1]);		yytext[--yyleng] = 0;		if(*yylsp != 0 && (yyfnd = (*yylsp)->yystops) && *yyfnd > 0)			return yyracc(*yyfnd++);	}	if(yytext[0] == 0)		return 0;	yyoutput(yyprevious = yyinput());	yyleng = 0;	return -1;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?