/* ncform 4.1 83/08/11 */
# define NLSTATE yyprevious=YYNEWLINE
struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
extern struct yysvf *yyestate;
int yyprevious = YYNEWLINE;
register struct yysvf *yystate, **lsp;
register struct yywork *yyt;
yylastch = yytext+yyleng;
yyestate = yystate = yybgin;
if (yyprevious==YYNEWLINE) yystate++;
if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
if(yyt == yycrank){ /* may not be any transitions */
if(yyz->yystoff == yycrank)break;
*yylastch++ = yych = input();
if ( (int)yyt > (int)yycrank){
if (yyt <= yytop && yyt->verify+yysvec == yystate){
if(yyt->advance+yysvec == YYLERR) /* error transitions */
{unput(*--yylastch);break;}
*lsp++ = yystate = yyt->advance+yysvec;
else if((int)yyt < (int)yycrank) { /* r < yycrank */
yyt = yyr = yycrank+(yycrank-yyt);
if(debug)fprintf(yyout,"compressed state\n");
if(yyt <= yytop && yyt->verify+yysvec == yystate){
if(yyt->advance+yysvec == YYLERR) /* error transitions */
{unput(*--yylastch);break;}
*lsp++ = yystate = yyt->advance+yysvec;
yyt = yyr + YYU(yymatch[yych]);
fprintf(yyout,"try fall back character ");
allprint(YYU(yymatch[yych]));
if(yyt <= yytop && yyt->verify+yysvec == yystate){
if(yyt->advance+yysvec == YYLERR) /* error transition */
{unput(*--yylastch);break;}
*lsp++ = yystate = yyt->advance+yysvec;
if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
{unput(*--yylastch);break;}
fprintf(yyout,"state %d char ",yystate-yysvec-1);
fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
while (lsp-- > yylstate){
if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
if(yyextra[*yyfnd]){ /* must backup */
while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
yyprevious = YYU(*yylastch);
yyleng = yylastch-yytext+1;
fprintf(yyout,"\nmatch ");
fprintf(yyout," action %d\n",*yyfnd);
if (yytext[0] == 0 /* && feof(yyin) */)
yyprevious = yytext[0] = input();
/* the following are only used in the lex library */