*	@()ncform	1.2	*
extern void allprint(char c);
extern void sprint(char *s);
extern int  printable(char c);
extern int  yyback(int *, int);
extern int  yyinput();
extern void yyless(long x);
extern int  yylex();
extern int  yylook();  
extern void yyoutput(int);
extern int  yyracc(int m);
extern int  yyreject();
extern void yyunput(int);
extern int  yywrap();

int yylineno =1;
 define YYU(x) x
 ifndef NLSTATE
 define NLSTATE yyprevious=YYNEWLINE
 endif
char yytext[YYLMAX];
struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
char yysbuf[YYLMAX];
char *yysptr = yysbuf;
int *yyfnd;
extern struct yysvf *yyestate;
int yyprevious = YYNEWLINE;
 ifdef LEXDEBUG
int yylexdebug = 0;
 endif
int yylook(){
	register struct yysvf *yystate, **lsp;
	register struct yywork *yyt;
	struct yysvf *yyz;
	int yych, yyfirst;
	struct yywork *yyr;
 ifdef LEXDEBUG
	int debug;
 endif
	char *yylastch;
	* start off machines *
 ifdef LEXDEBUG
	debug = yylexdebug;
 endif
	yyfirst=1;
	if (yymorfg)
		yylastch = yytext;
	else {
		yymorfg=0;
		yylastch = yytext+yyleng;
		}
	for(;;){
		lsp = yylstate;
		yyestate = yystate = yybgin;
		if (yyprevious==YYNEWLINE) yystate++;
		for (;;){
 ifdef LEXDEBUG
			if(debug)fprintf(yyout,state d\n,yystateyysvec1);
 endif
			yyt = yystate>yystoff;
			if(yyt == yycrank  yyfirst){  * may not be any transitions *
				yyz = yystate>yyother;
				if(yyz == 0)break;
				if(yyz>yystoff == yycrank)break;
				}
			*yylastch++ = yych = input();
			yyfirst=0;
		tryagain:
 ifdef LEXDEBUG
			if(debug){
				fprintf(yyout,char );
				allprint(yych);
				putchar('\n');
				}
 endif
			yyr = yyt;
			if ( yyt > yycrank){
				yyt = yyr + yych;
				if (yyt <= yytop  yyt>verify+yysvec == yystate){
					if(yyt>advance+yysvec == YYLERR)	* error transitions *
						{unput(*yylastch);break;}
					*lsp++ = yystate = yyt>advance+yysvec;
					goto contin;
					}
				}
 ifdef YYOPTIM
			else if(yyt < yycrank) {		* r < yycrank *
				yyt = yyr = yycrank+(yycrankyyt);
 ifdef LEXDEBUG
				if(debug)fprintf(yyout,compressed state\n);
 endif
				yyt = yyt + yych;
				if(yyt <= yytop  yyt>verify+yysvec == yystate){
					if(yyt>advance+yysvec == YYLERR)	* error transitions *
						{unput(*yylastch);break;}
					*lsp++ = yystate = yyt>advance+yysvec;
					goto contin;
					}
				yyt = yyr + YYU(yymatch[yych]);
 ifdef LEXDEBUG
				if(debug){
					fprintf(yyout,try fall back character );
					allprint(YYU(yymatch[yych]));
					putchar('\n');
					}
 endif
				if(yyt <= yytop  yyt>verify+yysvec == yystate){
					if(yyt>advance+yysvec == YYLERR)	* error transition *
						{unput(*yylastch);break;}
					*lsp++ = yystate = yyt>advance+yysvec;
					goto contin;
					}
				}
			if (((yystate = yystate>yyother) = 0)  (yyt= yystate>yystoff) = yycrank){
 ifdef LEXDEBUG
				if(debug)fprintf(yyout,fall back to state d\n,yystateyysvec1);
 endif
				goto tryagain;
				}
 endif
			else
				{unput(*yylastch);break;}
		contin:
 ifdef LEXDEBUG
			if(debug){
				fprintf(yyout,state d char ,yystateyysvec1);
				allprint(yych);
				putchar('\n');
				}
 endif
			;
			}
 ifdef LEXDEBUG
		if(debug){
			fprintf(yyout,stopped at d with ,*(lsp1)yysvec1);
			allprint(yych);
			putchar('\n');
			}
 endif
		while (lsp > yylstate){
			*yylastch = 0;
			if (*lsp = 0  ((yyfnd= (*lsp)>yystops) = 0)  *yyfnd > 0){
				yyolsp = lsp;
				if(yyextra[*yyfnd]){		* must backup *
					while(yyback((*lsp)>yystops,*yyfnd) = 1  lsp > yylstate){
						lsp;
						unput(*yylastch);
						}
					}
				yyprevious = YYU(*yylastch);
				yylsp = lsp;
				yyleng = yylastchyytext+1;
				yytext[yyleng] = 0;
 ifdef LEXDEBUG
				if(debug){
					fprintf(yyout,\nmatch );
					sprint(yytext);
					fprintf(yyout, action d\n,*yyfnd);
					}
 endif
				return(*yyfnd++);
				}
			unput(*yylastch);
			}
		if (yytext[0] == 0  *  feof(yyin) *)
			{
			yysptr=yysbuf;
			return(0);
			}
		yyprevious = yytext[0] = input();
*
		if (yyprevious>0)
			output(yyprevious); 
*
		yylastch=yytext;
 ifdef LEXDEBUG
		if(debug)putchar('\n');
 endif
		}
	}

int yyback(int *p, int m)
{
	if (p==0) return(0);
	while (*p) {
		if (*p++ == m)
			return(1);
	}
	return(0);
}

* the following are only used in the lex library *
int yyinput() 
{
	return(input());
}

void yyoutput(int c) 
{
	output(c);
}

void yyunput(int c) 
{
	unput(c);
}
ontin;
					}
				}
 ifdef YYOPTIM
			else if(yyt < yycrank) {		* r < yycrank *
				yyt = yyr = yycrank+(yycrankyyt);
 ifdef LEXDEBUG
				if(debug)fprintf(yyout,compressed s