File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / usr / src / usr.bin / efl / lex.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:26:06 2019 UTC (6 years, 11 months ago) by root
Branches: bsd, MAIN
CVS tags: v121, HEAD
Power 6/32 Unix version 1.21

# include "stdio.h"
# define U(x) x
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
# define INITIAL 0
# define YYLERR yysvec
# define YYSTATE (yyestate-yysvec-1)
# define YYOPTIM 1
# define YYLMAX 200
# define output(c) putc(c,yyout)
# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):efgetc)==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
# define yymore() (yymorfg=1)
# define ECHO fprintf(yyout, "%s",yytext)
# define REJECT { nstr = yyreject(); goto yyfussy;}
int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
FILE *yyin ={stdin}, *yyout ={stdout};
extern int yylineno;
struct yysvf { 
	struct yywork *yystoff;
	struct yysvf *yyother;
	int *yystops;};
struct yysvf *yyestate;
extern struct yysvf yysvec[], *yybgin;
# define DOTSON 2
#include <ctype.h>
#include "defs"
#include "tokdefs"

typedef union { int ival; ptr pval; } YYSTYPE;
extern YYSTYPE yylval;
YYSTYPE prevl;
int prevv;
char *copys();
static ptr p;
static ptr q;
static FILE *fd;
static int quoted, k;
static int rket	= 0;
FILE *opincl();
ptr mkdef(), mkcomm(), mkname(), mkimcon();

#define RET(x)	{ RETI(x,x);  }

#define RETL(yv,yl) {yylval=prevl=yl;igeol=comneed=0;return(prevv=yv); }
#define RETP(yv,yl) {yylval.pval=prevl.pval=yl;igeol=comneed=0;return(prevv=yv); }
#define RETI(yv,yl) {yylval.ival=prevl.ival=yl;igeol=comneed=0;return(prevv=yv); }
#define REL(n)  {  RETI(RELOP, OPREL+n);}
#define AS(n)  {  RETI(ASGNOP, OPASGN+n); }
#define RETC(x) { RETP(CONST, mkconst(x,yytext) );  }
#define RETZ(x) { yytext[yyleng-1] = '\0'; RETP(CONST, mkimcon(x,yytext) ); }

# define YYNEWLINE 10
yylex(){
int nstr; extern int yyprevious;
if(pushlex)
	if(pushlex==1)
		{
		pushlex = 2;
		yylval.ival = 0;
		return(EOS);
		}
	else	{
		pushlex = 0;
		if(rket == 2)
			rket = 1;
		else	RETL(prevv,prevl);
		}
if(rket > 0)
	{
	if(rket==1)
		{
		rket = 2;
		RET(RBRACK);
		}
	else	{
		rket = 0;
		RET(EOS);
		}
	}
if(eofneed) return(0);
if(forcerr) return(-1);
while((nstr = yylook()) >= 0)
yyfussy: switch(nstr){
case 0:
if(yywrap()) return(0); break;
case 1:
{
		   lower(yytext);
		   if(lettneed && yyleng==1)
			{ RETI(LETTER, yytext[0]); }
		   else if(defneed)
			{
			register char *q1, *q2;
			for(q2=q1=yytext+yyleng+1 ; (*q1 = efgetc)!='\n' ; ++q1)
				;
			*q1 = '\0';
			p = mkdef(yytext, q2);
			defneed = 0;
			++yylineno;
			unput('\n');
			}
		   else if(optneed)
			{ RETP(OPTNAME, copys(yytext)); }
		   else if(comneed && ( (q=name(yytext,1))==NULL || q->tag!=TDEFINE) )
			{ RETP(COMNAME, mkcomm(yytext) ); }
		   else if(q = name(yytext,1)) switch(q->tag)
			{
			case TDEFINE:
				filelines[filedepth] = yylineno;
				filemacs[filedepth] = efmacp;
				pushchars[filedepth] = (yysptr>yysbuf?
						*--yysptr : -1);
				if(++filedepth >= MAXINCLUDEDEPTH)
					fatal("macro or include too deep");
				filelines[filedepth] = yylineno = 1;
				efmacp = q->varp->valp;
				filenames[filedepth] = NULL;
				break;	/*now process new input */

			case TSTRUCT:
				RETP(STRUCTNAME, q);

			case TNAME:
				RETP(NAME, q);

			case TKEYWORD:
				if(q->subtype == END)
					{
					register int c;
					eofneed = YES;
					while((c=input())!=';'&&c!='\n'&&c!=EOF)
						;
					NLSTATE;
					}
				RET(q->subtype);

			default:
				fatal1("lex: impossible type code %d", q->tag);
			}
		   else  RETP(NAME, mkname(yytext) );
		}
break;
case 2:
RET(COMMA);
break;
case 3:
RET(EOS);
break;
case 4:
RET(LPAR);
break;
case 5:
RET(RPAR);
break;
case 6:
case 7:
RET(LBRACK);
break;
case 8:
case 9:
{ if(iobrlevel>0) RET(RBRACK); rket = 1;  RET(EOS); }
break;
case 10:
RET(COMMA);
break;
case 11:
RET(COLON);
break;
case 12:
RET(REPOP);
break;
case 13:
case 14:
RETI(OR,OPOR);
break;
case 15:
case 16:
RETI(OR,OP2OR);
break;
case 17:
case 18:
RETI(AND,OPAND);
break;
case 19:
case 20:
RETI(AND,OP2AND);
break;
case 21:
case 22:
RETI(NOT,OPNOT);
break;
case 23:
RETI(NOT,OPNOT);
break;
case 24:
case 25:
REL(OPLT);
break;
case 26:
case 27:
REL(OPLE);
break;
case 28:
case 29:
REL(OPGT);
break;
case 30:
case 31:
REL(OPGE);
break;
case 32:
case 33:
REL(OPEQ);
break;
case 34:
case 35:
case 36:
REL(OPNE);
break;
case 37:
RET(ARROW);
break;
case 38:
RET(QUALOP);
break;
case 39:
RETI(ADDOP, OPPLUS);
break;
case 40:
RETI(ADDOP, OPMINUS);
break;
case 41:
RETI(MULTOP, OPSTAR);
break;
case 42:
RETI(MULTOP, OPSLASH);
break;
case 43:
case 44:
RETI(POWER, OPPOWER);
break;
case 45:
RETI(DOUBLEADDOP, OPPLUS);
break;
case 46:
RETI(DOUBLEADDOP, OPMINUS);
break;
case 47:
AS(OPASGN);
break;
case 48:
AS(OPPLUS);
break;
case 49:
AS(OPMINUS);
break;
case 50:
AS(OPSTAR);
break;
case 51:
AS(OPSLASH);
break;
case 52:
case 53:
AS(OPPOWER);
break;
case 54:
AS(OPAND);
break;
case 55:
AS(OP2AND);
break;
case 56:
AS(OPOR);
break;
case 57:
AS(OP2OR);
break;
case 58:
case 59:
{ yytext[yyleng-1] = '\0'; p = mkconst(TYCHAR,yytext+1);
		  RETP(CONST,p); }
break;
case 60:
{ /* nh construct */
		int i, n;  char c;
		yytext[yyleng-1] = '\0';  n = convci(yytext);
		for(i = 0; i<n ; ++i)
			if( (c=yytext[i]=input()) == '\n' || c=='\0') break;
		yytext[i] = '\0';
		p = mkconst(TYCHAR,yytext);
		p->vtypep = mkint(i);
		RETP(CONST, p);
		}
break;
case 61:
	RETC(TYINT);
break;
case 62:
case 63:
RETC(TYREAL);
break;
case 64:
case 65:
RETC(TYREAL);
break;
case 66:
case 67:
RETC(TYLREAL);
break;
case 68:
	{ yytext[yyleng-1] = '.';
		  RETP(CONST,mkimcon(TYCOMPLEX,yytext)); }
break;
case 69:
case 70:
RETZ(TYCOMPLEX);
break;
case 71:
case 72:
RETZ(TYCOMPLEX);
break;
case 73:
case 74:
RETZ(TYLCOMPLEX);
break;
case 75:
{ if(! nocommentflag) goto litline; }
break;
case 76:
{ if(thisexec) thisexec->nftnst += 2;
	  if(inproc)
		{
		unput('\n');
		RETP(ESCAPE, copys(yytext));
		}

	litline:	p = mkchain( copys(yytext), CHNULL);
			if(inproc==0 && yytext[0]=='%')
				prevcomments = hookup(prevcomments, p);
			else
				comments =  hookup(comments,p);
	}
break;
case 77:
;
break;
case 78:
;
break;
case 79:
;
break;
case 80:
;
break;
case 81:
{ if(igeol) { igeol=0; prevv = NEWLINE; }
	  else if(prevv>=NAME || prevv==RPAR || prevv==RBRACK
			|| prevv== -1 || prevv==QUALOP)
		RET(EOS); }
break;
case 82:
{ char * linerr();
	  fprintf(diagfile, "Bad input character %c %s\n", yytext[0], linerr());
	  ++nerrs;
	}
break;
case 83:
{ /* Include statement */
	char *q1;
	register char *q2;
	for(q1=yytext ; *q1==' ' || *q1=='\t' ; ++q1) ;
	quoted = NO;
	for(q1 += 7 ; *q1==' ' || *q1=='\t' ||
		*q1=='\'' || *q1=='"' || *q1=='(' ; ++q1 )
			if(*q1=='"' || *q1=='\'')
				quoted = YES;
	for(q2=q1 ; *q2!='\0' &&  *q2!=' ' && *q2!='\n' &&
		*q2!='\'' && *q2!='"' && *q2!=')' ; ++q2 )
			;
	*q2 = '\0';
	if( ! quoted)
		for(k=0; (q = name(q1,1)) && q->tag==TDEFINE ; ++k)
			{
			if(k > MAXINCLUDEDEPTH)
				fatal1("Macros too deep for %s", yytext);
			q1 = q->varp->valp;
			}
	if( (fd = opincl(&q1)) == NULL)
		{
		fprintf(diagfile, "Cannot open file %s.  Stop.\n", q1);
		exit(2);
		}
	filelines[filedepth] = yylineno;
	pushchars[filedepth] = '\n';
	if(++filedepth >= MAXINCLUDEDEPTH)
		fatal("macro or include too deep");
	fileptrs[filedepth] = yyin = fd;
	filenames[filedepth] = copys(q1);
	filelines[filedepth] = yylineno = 1;
	filemacs[filedepth] = NULL;
	}
break;
case -1:
break;
default:
fprintf(yyout,"bad switch yylook %d",nstr);
} return(0); }
/* end of yylex */

yywrap()
{
if(filedepth == 0)
	{
	ateof = 1;
	return(1);
	}

if(efmacp == 0)
	{
	fclose(yyin);
	cfree(filenames[filedepth]);
	}

--filedepth;
if( filemacs[filedepth] )
	efmacp = filemacs[filedepth];
else	{
	yyin = fileptrs[filedepth];
	efmacp = 0;
	}
yylineno = filelines[filedepth];
if(pushchars[filedepth] != -1)
	unput( pushchars[filedepth] );
return(0);
}



lower(s)	/* replace upper with lower case letters */
register char *s;
{
register char *t;
for(t=s ; *t ; ++t)
	if( isupper(*t) )
		*s++ = tolower(*t);
	else if(*t != '_')
		*s++ = *t;
}




setdot(k)
int k;
{
if(k)
	BEGIN DOTSON;
else	BEGIN 0;
}




FILE *opincl(namep)
char **namep;
{
#ifndef unix
	return( fopen(*namep, "r") );
#else

	/* On Unix, follow the C include conventions */
	
	register char *s, *lastslash;
	char *dir, *name, temp[100];
	int i;
	FILE *fp;
	
	name = *namep;
	if(name[0] == '/')
		return( fopen(name, "r") );
	
	dir = basefile;
	for(i = filedepth ; i>=0 ; --i)
		if( filemacs[i] == NULL)
			{
			dir = filenames[i];
			break;
			}

	lastslash = NULL;
	for(s = dir ; *s ; ++s)
		if(*s == '/')
			lastslash = s;
	if(lastslash)
		{
		*lastslash = '\0';
		sprintf(temp, "%s/%s", dir, name);
		*lastslash = '/';
		if( fp = fopen(temp, "r") )
			*namep = temp;
		}
	else
		fp = fopen(name, "r");
	
	if(fp == NULL)
		{
		sprintf(temp, "/usr/include/%s", name);
		fp = fopen(temp, "r");
		*namep = temp;
		}
	return(fp);

#endif
}

int yyvstop[] ={
0,

82,
0,

78,
82,
0,

81,
0,

79,
82,
0,

77,
82,
0,

23,
82,
0,

82,
0,

75,
82,
0,

12,
82,
0,

18,
82,
0,

82,
0,

4,
82,
0,

5,
82,
0,

41,
82,
0,

39,
82,
0,

2,
10,
82,
0,

40,
82,
0,

38,
82,
0,

42,
82,
0,

61,
82,
0,

11,
82,
0,

3,
82,
0,

25,
82,
0,

47,
82,
0,

29,
82,
0,

1,
82,
0,

6,
82,
0,

8,
82,
0,

44,
82,
0,

82,
0,

7,
82,
0,

14,
82,
0,

9,
82,
0,

22,
82,
0,

78,
82,
0,

77,
82,
0,

76,
82,
0,

1,
82,
0,

38,
82,
0,

36,
0,

59,
0,

75,
0,

20,
0,

54,
0,

58,
0,

43,
0,

50,
0,

45,
0,

48,
0,

46,
0,

49,
0,

37,
0,

63,
0,

51,
0,

62,
0,

61,
0,

60,
0,

68,
0,

27,
0,

33,
0,

31,
0,

1,
0,

53,
0,

80,
0,

56,
0,

16,
0,

35,
0,

76,
0,

1,
0,

55,
0,

52,
0,

70,
0,

62,
63,
0,

69,
0,

66,
0,

64,
0,

57,
0,

1,
0,

67,
0,

65,
0,

69,
70,
0,

73,
0,

71,
0,

1,
0,

32,
0,

30,
0,

28,
0,

26,
0,

24,
0,

34,
0,

13,
0,

74,
0,

72,
0,

66,
67,
0,

64,
65,
0,

1,
0,

17,
0,

15,
0,

21,
0,

73,
74,
0,

71,
72,
0,

1,
0,

19,
0,

1,
0,

83,
0,
0};
# define YYTYPE int
struct yywork { YYTYPE verify, advance; } yycrank[] ={
0,0,	0,0,	1,5,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	1,6,	1,7,	
45,0,	1,8,	47,0,	34,72,	
34,73,	50,0,	79,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	1,9,	1,10,	1,11,	
1,12,	1,13,	34,72,	1,14,	
1,15,	1,16,	1,17,	1,18,	
1,19,	1,20,	1,21,	1,22,	
1,23,	1,24,	0,0,	0,0,	
14,48,	19,54,	0,0,	0,0,	
0,0,	18,52,	105,127,	1,25,	
1,26,	1,27,	1,28,	1,29,	
10,44,	23,60,	1,30,	1,30,	
1,30,	1,30,	1,30,	19,55,	
1,30,	1,30,	1,30,	14,49,	
18,53,	1,30,	27,67,	1,30,	
1,30,	2,39,	1,30,	1,30,	
2,8,	1,30,	1,30,	28,68,	
29,69,	33,71,	38,76,	36,74,	
1,31,	48,88,	1,32,	1,33,	
1,34,	42,80,	39,77,	52,89,	
75,99,	106,128,	107,129,	78,100,	
2,40,	2,10,	80,101,	2,12,	
2,13,	2,41,	2,14,	108,130,	
2,16,	2,17,	2,18,	109,131,	
2,20,	2,21,	2,22,	2,23,	
21,56,	39,77,	110,132,	3,8,	
1,35,	1,36,	1,37,	1,38,	
81,102,	42,80,	2,25,	2,26,	
2,27,	2,28,	2,29,	78,100,	
21,57,	21,58,	80,101,	112,134,	
124,143,	126,145,	133,146,	3,9,	
3,10,	2,42,	3,12,	3,13,	
144,151,	3,14,	0,0,	3,16,	
3,17,	3,18,	36,75,	3,20,	
3,21,	3,43,	3,23,	83,105,	
81,102,	87,112,	39,78,	2,31,	
0,0,	2,32,	2,33,	96,120,	
0,0,	3,25,	3,26,	3,27,	
3,28,	3,29,	22,59,	22,59,	
22,59,	22,59,	22,59,	22,59,	
22,59,	22,59,	22,59,	22,59,	
0,0,	0,0,	0,0,	98,121,	
0,0,	4,39,	0,0,	83,105,	
4,8,	87,112,	39,78,	2,35,	
2,36,	2,37,	2,38,	96,120,	
82,103,	0,0,	3,31,	0,0,	
3,32,	3,33,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
4,40,	4,10,	82,104,	4,12,	
4,13,	4,41,	4,14,	98,121,	
4,16,	4,17,	4,18,	0,0,	
4,20,	4,21,	4,43,	4,23,	
59,90,	59,91,	84,106,	0,0,	
82,103,	59,92,	3,35,	3,36,	
3,37,	3,38,	4,25,	4,26,	
4,27,	4,28,	4,29,	11,45,	
0,0,	84,107,	82,104,	86,110,	
85,108,	0,0,	100,122,	11,45,	
11,0,	4,42,	93,117,	93,118,	
101,123,	86,111,	0,0,	93,119,	
59,90,	59,91,	84,106,	85,109,	
102,124,	59,92,	103,125,	104,126,	
0,0,	0,0,	111,133,	4,31,	
0,0,	4,32,	4,33,	0,0,	
11,46,	84,107,	0,0,	86,110,	
85,108,	11,45,	100,122,	0,0,	
114,135,	11,45,	93,117,	93,118,	
101,123,	86,111,	11,45,	93,119,	
12,47,	0,0,	0,0,	85,109,	
102,124,	116,136,	103,125,	104,126,	
12,47,	12,0,	111,133,	4,35,	
4,36,	4,37,	4,38,	11,45,	
11,45,	11,45,	11,45,	11,45,	
122,141,	11,45,	11,45,	11,45,	
114,135,	0,0,	11,45,	123,142,	
11,45,	11,45,	125,144,	11,45,	
11,45,	12,47,	11,45,	11,45,	
0,0,	116,136,	12,47,	0,0,	
0,0,	138,147,	12,47,	0,0,	
140,148,	11,45,	0,0,	12,47,	
0,0,	15,50,	0,0,	0,0,	
122,141,	141,149,	142,150,	0,0,	
149,152,	15,50,	15,0,	123,142,	
150,153,	0,0,	125,144,	0,0,	
12,47,	12,47,	12,47,	12,47,	
12,47,	0,0,	12,47,	12,47,	
12,47,	138,147,	0,0,	12,47,	
140,148,	12,47,	12,47,	152,154,	
12,47,	12,47,	15,50,	12,47,	
12,47,	141,149,	142,150,	15,51,	
149,152,	0,0,	0,0,	15,50,	
150,153,	63,95,	12,47,	63,95,	
15,50,	0,0,	63,96,	63,96,	
63,96,	63,96,	63,96,	63,96,	
63,96,	63,96,	63,96,	63,96,	
0,0,	0,0,	0,0,	152,154,	
0,0,	15,50,	15,50,	15,50,	
15,50,	15,50,	0,0,	15,50,	
15,50,	15,50,	0,0,	0,0,	
15,50,	0,0,	15,50,	15,50,	
0,0,	15,50,	15,50,	0,0,	
15,50,	15,50,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	24,61,	15,50,	
24,62,	24,62,	24,62,	24,62,	
24,62,	24,62,	24,62,	24,62,	
24,62,	24,62,	95,96,	95,96,	
95,96,	95,96,	95,96,	95,96,	
95,96,	95,96,	95,96,	95,96,	
24,63,	24,64,	0,0,	0,0,	
24,65,	24,66,	64,97,	0,0,	
64,97,	0,0,	0,0,	64,98,	
64,98,	64,98,	64,98,	64,98,	
64,98,	64,98,	64,98,	64,98,	
64,98,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	0,0,	
24,63,	24,64,	0,0,	0,0,	
24,65,	24,66,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
0,0,	0,0,	0,0,	0,0,	
30,70,	0,0,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
30,70,	30,70,	30,70,	30,70,	
41,79,	0,0,	0,0,	0,0,	
0,0,	90,113,	0,0,	90,113,	
41,79,	41,0,	90,114,	90,114,	
90,114,	90,114,	90,114,	90,114,	
90,114,	90,114,	90,114,	90,114,	
97,98,	97,98,	97,98,	97,98,	
97,98,	97,98,	97,98,	97,98,	
97,98,	97,98,	0,0,	0,0,	
0,0,	41,79,	0,0,	0,0,	
0,0,	0,0,	41,79,	0,0,	
0,0,	0,0,	41,79,	91,115,	
0,0,	91,115,	0,0,	41,79,	
91,116,	91,116,	91,116,	91,116,	
91,116,	91,116,	91,116,	91,116,	
91,116,	91,116,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
41,79,	41,79,	41,79,	41,79,	
41,79,	0,0,	41,79,	41,79,	
41,79,	0,0,	0,0,	41,79,	
0,0,	41,79,	41,79,	0,0,	
41,79,	41,79,	0,0,	41,79,	
41,79,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	41,79,	43,59,	
43,59,	43,59,	43,59,	43,59,	
43,59,	43,59,	43,59,	43,59,	
43,59,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
43,81,	0,0,	43,82,	0,0,	
43,83,	0,0,	43,84,	0,0,	
0,0,	0,0,	0,0,	43,85,	
0,0,	43,86,	43,87,	0,0,	
0,0,	0,0,	0,0,	61,93,	
61,93,	61,93,	61,93,	61,93,	
61,93,	61,93,	61,93,	61,93,	
61,93,	0,0,	0,0,	0,0,	
43,81,	0,0,	43,82,	0,0,	
43,83,	0,0,	43,84,	61,63,	
61,64,	0,0,	0,0,	43,85,	
61,94,	43,86,	43,87,	113,114,	
113,114,	113,114,	113,114,	113,114,	
113,114,	113,114,	113,114,	113,114,	
113,114,	115,116,	115,116,	115,116,	
115,116,	115,116,	115,116,	115,116,	
115,116,	115,116,	115,116,	0,0,	
0,0,	0,0,	0,0,	61,63,	
61,64,	117,137,	0,0,	117,137,	
61,94,	0,0,	117,138,	117,138,	
117,138,	117,138,	117,138,	117,138,	
117,138,	117,138,	117,138,	117,138,	
118,139,	0,0,	118,139,	0,0,	
0,0,	118,140,	118,140,	118,140,	
118,140,	118,140,	118,140,	118,140,	
118,140,	118,140,	118,140,	137,138,	
137,138,	137,138,	137,138,	137,138,	
137,138,	137,138,	137,138,	137,138,	
137,138,	139,140,	139,140,	139,140,	
139,140,	139,140,	139,140,	139,140,	
139,140,	139,140,	139,140,	153,154,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	153,154,	
153,155,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
153,154,	0,0,	0,0,	0,0,	
0,0,	153,154,	0,0,	0,0,	
0,0,	153,154,	0,0,	0,0,	
0,0,	0,0,	153,153,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	153,153,	
153,153,	153,153,	153,153,	153,153,	
0,0,	153,153,	153,153,	153,153,	
0,0,	0,0,	153,153,	0,0,	
153,153,	153,153,	154,154,	153,153,	
153,153,	0,0,	153,153,	153,153,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	153,153,	0,0,	154,154,	
154,154,	154,154,	154,154,	154,154,	
0,0,	154,154,	154,154,	154,154,	
0,0,	0,0,	154,154,	0,0,	
154,154,	154,154,	0,0,	154,154,	
154,154,	0,0,	154,154,	154,154,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	154,154,	0,0,	0,0,	
0,0};
struct yysvf yysvec[] ={
0,	0,	0,
yycrank+-1,	0,		0,	
yycrank+-72,	yysvec+1,	0,	
yycrank+-111,	yysvec+1,	0,	
yycrank+-180,	yysvec+1,	0,	
yycrank+0,	0,		yyvstop+1,
yycrank+0,	0,		yyvstop+3,
yycrank+0,	0,		yyvstop+6,
yycrank+0,	0,		yyvstop+8,
yycrank+0,	0,		yyvstop+11,
yycrank+3,	0,		yyvstop+14,
yycrank+-242,	0,		yyvstop+17,
yycrank+-291,	0,		yyvstop+19,
yycrank+0,	0,		yyvstop+22,
yycrank+14,	0,		yyvstop+25,
yycrank+-340,	0,		yyvstop+28,
yycrank+0,	0,		yyvstop+30,
yycrank+0,	0,		yyvstop+33,
yycrank+15,	0,		yyvstop+36,
yycrank+10,	0,		yyvstop+39,
yycrank+0,	0,		yyvstop+42,
yycrank+75,	0,		yyvstop+46,
yycrank+126,	0,		yyvstop+49,
yycrank+4,	0,		yyvstop+52,
yycrank+388,	0,		yyvstop+55,
yycrank+0,	0,		yyvstop+58,
yycrank+0,	0,		yyvstop+61,
yycrank+17,	0,		yyvstop+64,
yycrank+26,	0,		yyvstop+67,
yycrank+27,	0,		yyvstop+70,
yycrank+429,	0,		yyvstop+73,
yycrank+0,	0,		yyvstop+76,
yycrank+0,	0,		yyvstop+79,
yycrank+28,	0,		yyvstop+82,
yycrank+6,	0,		yyvstop+85,
yycrank+0,	0,		yyvstop+87,
yycrank+30,	0,		yyvstop+90,
yycrank+0,	0,		yyvstop+93,
yycrank+29,	0,		yyvstop+96,
yycrank+89,	0,		yyvstop+99,
yycrank+0,	yysvec+39,	yyvstop+102,
yycrank+-551,	0,		yyvstop+105,
yycrank+19,	yysvec+30,	yyvstop+108,
yycrank+599,	0,		yyvstop+111,
yycrank+0,	0,		yyvstop+114,
yycrank+-2,	yysvec+11,	0,	
yycrank+0,	0,		yyvstop+116,
yycrank+-4,	yysvec+12,	yyvstop+118,
yycrank+32,	0,		yyvstop+120,
yycrank+0,	0,		yyvstop+122,
yycrank+-7,	yysvec+15,	0,	
yycrank+0,	0,		yyvstop+124,
yycrank+38,	0,		yyvstop+126,
yycrank+0,	0,		yyvstop+128,
yycrank+0,	0,		yyvstop+130,
yycrank+0,	0,		yyvstop+132,
yycrank+0,	0,		yyvstop+134,
yycrank+0,	0,		yyvstop+136,
yycrank+0,	0,		yyvstop+138,
yycrank+160,	yysvec+22,	yyvstop+140,
yycrank+0,	0,		yyvstop+142,
yycrank+635,	0,		yyvstop+144,
yycrank+0,	yysvec+24,	yyvstop+146,
yycrank+342,	0,		0,	
yycrank+419,	0,		0,	
yycrank+0,	0,		yyvstop+148,
yycrank+0,	0,		yyvstop+150,
yycrank+0,	0,		yyvstop+152,
yycrank+0,	0,		yyvstop+154,
yycrank+0,	0,		yyvstop+156,
yycrank+0,	yysvec+30,	yyvstop+158,
yycrank+0,	0,		yyvstop+160,
yycrank+0,	yysvec+34,	0,	
yycrank+0,	0,		yyvstop+162,
yycrank+0,	0,		yyvstop+164,
yycrank+39,	0,		yyvstop+166,
yycrank+0,	0,		yyvstop+168,
yycrank+0,	yysvec+39,	0,	
yycrank+25,	0,		0,	
yycrank+-8,	yysvec+41,	yyvstop+170,
yycrank+39,	yysvec+30,	yyvstop+172,
yycrank+50,	0,		0,	
yycrank+135,	0,		0,	
yycrank+78,	0,		0,	
yycrank+161,	0,		0,	
yycrank+179,	0,		0,	
yycrank+178,	0,		0,	
yycrank+79,	0,		0,	
yycrank+0,	0,		yyvstop+174,
yycrank+0,	0,		yyvstop+176,
yycrank+514,	0,		0,	
yycrank+552,	0,		0,	
yycrank+0,	0,		yyvstop+178,
yycrank+186,	yysvec+61,	yyvstop+180,
yycrank+0,	0,		yyvstop+183,
yycrank+398,	0,		0,	
yycrank+94,	yysvec+95,	yyvstop+185,
yycrank+524,	0,		0,	
yycrank+114,	yysvec+97,	yyvstop+187,
yycrank+0,	0,		yyvstop+189,
yycrank+183,	0,		0,	
yycrank+180,	yysvec+30,	yyvstop+191,
yycrank+196,	0,		0,	
yycrank+188,	0,		0,	
yycrank+185,	0,		0,	
yycrank+12,	0,		0,	
yycrank+55,	0,		0,	
yycrank+56,	0,		0,	
yycrank+65,	0,		0,	
yycrank+69,	0,		0,	
yycrank+76,	0,		0,	
yycrank+186,	0,		0,	
yycrank+93,	0,		0,	
yycrank+663,	0,		0,	
yycrank+211,	yysvec+113,	yyvstop+193,
yycrank+673,	0,		0,	
yycrank+224,	yysvec+115,	yyvstop+195,
yycrank+694,	0,		0,	
yycrank+709,	0,		0,	
yycrank+0,	0,		yyvstop+197,
yycrank+0,	0,		yyvstop+200,
yycrank+0,	0,		yyvstop+202,
yycrank+236,	0,		0,	
yycrank+234,	yysvec+30,	yyvstop+204,
yycrank+94,	0,		0,	
yycrank+254,	0,		0,	
yycrank+95,	0,		0,	
yycrank+0,	0,		yyvstop+206,
yycrank+0,	0,		yyvstop+208,
yycrank+0,	0,		yyvstop+210,
yycrank+0,	0,		yyvstop+212,
yycrank+0,	0,		yyvstop+214,
yycrank+0,	0,		yyvstop+216,
yycrank+96,	0,		0,	
yycrank+0,	0,		yyvstop+218,
yycrank+0,	0,		yyvstop+220,
yycrank+0,	0,		yyvstop+222,
yycrank+719,	0,		0,	
yycrank+260,	yysvec+137,	yyvstop+224,
yycrank+729,	0,		0,	
yycrank+263,	yysvec+139,	yyvstop+227,
yycrank+260,	0,		0,	
yycrank+278,	yysvec+30,	yyvstop+230,
yycrank+0,	0,		yyvstop+232,
yycrank+102,	0,		0,	
yycrank+0,	0,		yyvstop+234,
yycrank+0,	0,		yyvstop+236,
yycrank+0,	0,		yyvstop+238,
yycrank+0,	0,		yyvstop+241,
yycrank+280,	0,		0,	
yycrank+283,	yysvec+30,	yyvstop+244,
yycrank+0,	0,		yyvstop+246,
yycrank+302,	0,		0,	
yycrank+-786,	0,		yyvstop+248,
yycrank+-818,	yysvec+153,	0,	
yycrank+0,	0,		yyvstop+250,
0,	0,	0};
struct yywork *yytop = yycrank+913;
struct yysvf *yybgin = yysvec+1;
char yymatch[] ={
00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
011 ,01  ,'"' ,01  ,01  ,01  ,01  ,047 ,
01  ,01  ,01  ,'+' ,01  ,'+' ,01  ,01  ,
'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
'0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,'A' ,'B' ,'C' ,'D' ,'E' ,'B' ,'G' ,
'H' ,'I' ,'B' ,'B' ,'L' ,'B' ,'N' ,'O' ,
'B' ,'Q' ,'R' ,'B' ,'T' ,'U' ,'B' ,'B' ,
'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,'_' ,
01  ,'A' ,'B' ,'C' ,'D' ,'E' ,'B' ,'G' ,
'H' ,'I' ,'B' ,'B' ,'L' ,'B' ,'N' ,'O' ,
'B' ,'Q' ,'R' ,'B' ,'T' ,'U' ,'B' ,'B' ,
'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,01  ,
0};
char yyextra[] ={
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0};
/*	ncform	4.1	83/08/11	*/

int yylineno =1;
# define YYU(x) x
# define NLSTATE yyprevious=YYNEWLINE
char yytext[YYLMAX];
struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
char yysbuf[YYLMAX];
char *yysptr = yysbuf;
int *yyfnd;
extern struct yysvf *yyestate;
int yyprevious = YYNEWLINE;
yylook(){
	register struct yysvf *yystate, **lsp;
	register struct yywork *yyt;
	struct yysvf *yyz;
	int yych;
	struct yywork *yyr;
# ifdef LEXDEBUG
	int debug;
# endif
	char *yylastch;
	/* start off machines */
# ifdef LEXDEBUG
	debug = 0;
# endif
	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",yystate-yysvec-1);
# endif
			yyt = yystate->yystoff;
			if(yyt == yycrank){		/* may not be any transitions */
				yyz = yystate->yyother;
				if(yyz == 0)break;
				if(yyz->yystoff == yycrank)break;
				}
			*yylastch++ = yych = input();
		tryagain:
# ifdef LEXDEBUG
			if(debug){
				fprintf(yyout,"char ");
				allprint(yych);
				putchar('\n');
				}
# endif
			yyr = yyt;
			if ( (int)yyt > (int)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((int)yyt < (int)yycrank) {		/* r < yycrank */
				yyt = yyr = yycrank+(yycrank-yyt);
# 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) && (yyt= yystate->yystoff) != yycrank){
# ifdef LEXDEBUG
				if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
# endif
				goto tryagain;
				}
# endif
			else
				{unput(*--yylastch);break;}
		contin:
# ifdef LEXDEBUG
			if(debug){
				fprintf(yyout,"state %d char ",yystate-yysvec-1);
				allprint(yych);
				putchar('\n');
				}
# endif
			;
			}
# ifdef LEXDEBUG
		if(debug){
			fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
			allprint(yych);
			putchar('\n');
			}
# endif
		while (lsp-- > yylstate){
			*yylastch-- = 0;
			if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *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 = yylastch-yytext+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
		}
	}
yyback(p, m)
	int *p;
{
if (p==0) return(0);
while (*p)
	{
	if (*p++ == m)
		return(1);
	}
return(0);
}
	/* the following are only used in the lex library */
yyinput(){
	return(input());
	}
yyoutput(c)
  int c; {
	output(c);
	}
yyunput(c)
   int c; {
	unput(c);
	}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.