# include "stdio.h"
# define U(x) ((x)&0377)
# 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):getc(yyin))==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;
#include <math.h>

#undef input
#undef output
#undef unput    
#if defined(_AIX) && defined(_IBMR2)
#include <datatypes.h>
#else
extern char *strcpy();
#endif
#define strdup(s) strcpy(malloc(strlen(s)+1), s);
static char strbuf[200];
# define YYNEWLINE 10
yylex(){
int nstr; extern int yyprevious;
while((nstr = yylook()) >= 0)
yyfussy: switch(nstr){
case 0:
if(yywrap()) return(0); break;
case 1:
    	    ;
break;
case 2:
   	    { yylval.i = atoi(yytext); 
    	    	      return(INTEGER); }
break;
case 3:
   case 4:
   case 5:
                   { yylval.d = atof(yytext); return(REAL); }
break;
case 6:
return(EOL);
break;
case 7:
	return(LPAREN);
break;
case 8:
	return(RPAREN);
break;
case 9:
return(LBRACKET);
break;
case 10:
return(RBRACKET);
break;
case 11:
	return(LCURLY);
break;
case 12:
	return(RCURLY);
break;
case 13:
  	return(SEMICOLON);
break;
case 14:
	return(COMMA);
break;
case 15:
	return(COLON);
break;
case 16:
return(QUESTION);
break;
case 17:
return(BOR);
break;
case 18:
return(LOR);
break;
case 19:
return(BAND);
break;
case 20:
return(LAND);
break;
case 21:
return(XOR);
break;
case 22:
return(EQ);
break;
case 23:
return(NE);
break;
case 24:
return(LT);
break;
case 25:
return(GT);
break;
case 26:
return(LE);
break;
case 27:
return(GE);
break;
case 28:
return(LSHIFT);
break;
case 29:
return(RSHIFT);
break;
case 30:
return(PLUS);
break;
case 31:
return(MINUS);
break;
case 32:
return(TIMES);
break;
case 33:
return(DIVIDE);
break;
case 34:
return(MODULO);
break;
case 35:
return(POWER);
break;
case 36:
    return(CONCAT);
break;
case 37:
return(LNOT);
break;
case 38:
return(BNOT);
break;
case 39:
return(PLUSPLUS);
break;
case 40:
return(MINUSMINUS);
break;
case 41:
return(PLUSOVER);
break;
case 42:
return(MINUSOVER);
break;
case 43:
return(MULTOVER);
break;
case 44:
return(DIVOVER);
break;
case 45:
return(MODOVER);
break;
case 46:
return(POWEROVER);
break;
case 47:
return(LOROVER);
break;
case 48:
return(BOROVER);
break;
case 49:
return(XOROVER);
break;
case 50:
return(LANDOVER);
break;
case 51:
return(BANDOVER);
break;
case 52:
return(SIZEOF);
break;
case 53:
	return(ASSIGN);
break;
case 54:
return(PLUSEQ);
break;
case 55:
return(MINUSEQ);
break;
case 56:
return(TIMESEQ);
break;
case 57:
return(DIVIDEEQ);
break;
case 58:
return(MODEQ);
break;
case 59:
return(POWEREQ);
break;
case 60:
return(LSHIFTEQ);
break;
case 61:
return(RSHIFTEQ);
break;
case 62:
return(LOREQ);
break;
case 63:
return(BOREQ);
break;
case 64:
return(XOREQ);
break;
case 65:
return(LANDEQ);
break;
case 66:
return(BANDEQ);
break;
case 67:
return(DEFINE);
break;
case 68:
return(CLEAR);
break;
case 69:
return(REPLOT);
break;
case 70:
return(QUIT);
break;
case 71:
   return(PLOT);
break;
case 72:
return(TITLE);
break;
case 73:
return(XLABEL);
break;
case 74:
 return(YLABEL);
break;
case 75:
return(Y2LABEL);
break;
case 76:
    return(SET);
break;
case 77:
return(NUMSAMPLES);
break;
case 78:
return(DISPLAY);
break;
case 79:
return(ON);
break;
case 80:
return(OFF);
break;
case 81:
{ yylval.id = (char *)malloc(strlen(yytext)+1);
    	  strcpy(yylval.id, yytext);
          return(IDENT);
          /* yylval.s = LookupIdent(yytext);  
	  if (yylval.s == NULL) yylval.s = NewUndefSymbol(yytext); 
  	  return(IDENT); */ }
break;
case 82:
{ int len = strlen(yytext);
           strcpy(strbuf, yytext);
           strbuf[len-1] = '\0';
	   yylval.id = strbuf+1;
	   return(STRING); }
break;
case 83:
      { /* comment character, so read to end of line */
          while (input() != '\n') ;
        }
break;
case 84:
{ yyerror("invalid character"); }
break;
case -1:
break;
default:
fprintf(yyout,"bad switch yylook %d",nstr);
} return(0); }
/* end of yylex */

char *yystring;
#define stringinput() (*yystring++)
#define stringunput(c) (*(--yystring) = c)
    
int input()
{
/*    return (currentstream->input)(); */
/*    return ttyinput(); */
      return stringinput();
}

int output(c)
int c;
{
    internalerr("lex called output().  Check lexical rules.");
}

int unput(c)
char c;
{
/*    (currentstream->unput)(c); */
/*    ttyunput(c); */
      stringunput(c);
}

#include <setjmp.h>
extern jmp_buf errenv; 

int yyerror(msg)
char *msg;
{
/*    (currentstream->error)(msg); */
/*    ttyerror(msg); */
      fputs(msg, stdout);
      fputs("\n", stdout);
      fflush(stdout);
      yystring = "";
      longjmp(errenv, TRUE);    /* bail out to command line */
}

int yywrap()
{
    return 1;
}

#ifdef notdef

#define TTYPROMPT "fmax> "
static char ttyunputbuf[BUFSIZ];
static int  ttyunputpos = 0;
static char ttyinputline[BUFSIZ];
static int  ttyinputlen = 0;
static int  ttyinputpos = 0;
static char *ttyprompt = TTYPROMPT;

int ttyinput()
{
    if (ttyunputpos > 0) return (int)ttyunputbuf[--ttyunputpos];
    if (ttyinputpos >= ttyinputlen) {
	fputs(ttyprompt,stdout);
	fgets(ttyinputline,BUFSIZ,stdin);
	ttyinputlen = strlen(ttyinputline);
	ttyinputpos = 0;
    }
    return (int)ttyinputline[ttyinputpos++];
}

int ttyunput(c)
char c;
{
    if (ttyunputpos >= BUFSIZ) internalerr("lex lookahead overflow.");
    ttyunputbuf[ttyunputpos++] = c;
}

#include <setjmp.h>
extern jmp_buf errenv; 

int ttyerror(msg)
char *msg;
{
    int i,len;
    len = strlen(ttyprompt) + ttyinputpos-1;
    for(i=0; i < len; i++) putc(' ',stderr);
    fputs("^\n\t",stdout);
    fputs(msg,stdout);
    fputs("\n\n",stdout);
    ttyinputlen = ttyinputpos = ttyunputpos = 0;
    longjmp(errenv, TRUE);    /* bail out to command line */
}

#endif
int yyvstop[] ={
0,

84,
0,

1,
84,
0,

6,
0,

37,
84,
0,

84,
0,

83,
84,
0,

52,
84,
0,

34,
84,
0,

19,
84,
0,

7,
84,
0,

8,
84,
0,

32,
84,
0,

30,
84,
0,

14,
84,
0,

31,
84,
0,

36,
84,
0,

33,
84,
0,

2,
84,
0,

15,
84,
0,

13,
84,
0,

24,
84,
0,

53,
84,
0,

25,
84,
0,

16,
84,
0,

81,
84,
0,

9,
84,
0,

10,
84,
0,

21,
84,
0,

81,
84,
0,

81,
84,
0,

81,
84,
0,

81,
84,
0,

81,
84,
0,

81,
84,
0,

81,
84,
0,

81,
84,
0,

81,
84,
0,

81,
84,
0,

81,
84,
0,

11,
84,
0,

17,
84,
0,

12,
84,
0,

38,
84,
0,

23,
0,

82,
0,

45,
0,

58,
0,

20,
0,

51,
0,

66,
0,

35,
0,

43,
0,

56,
0,

39,
0,

41,
0,

54,
0,

40,
0,

42,
0,

55,
0,

4,
0,

44,
0,

57,
0,

3,
0,

2,
0,

28,
0,

26,
0,

22,
0,

27,
0,

29,
0,

81,
0,

49,
0,

64,
0,

81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

79,
81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

48,
0,

63,
0,

18,
0,

50,
0,

65,
0,

46,
0,

59,
0,

3,
4,
0,

5,
0,

60,
0,

61,
0,

81,
0,

81,
0,

81,
0,

81,
0,

80,
81,
0,

81,
0,

81,
0,

81,
0,

76,
81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

47,
0,

62,
0,

4,
0,

3,
0,

81,
0,

81,
0,

81,
0,

81,
0,

71,
81,
0,

70,
81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

3,
4,
0,

68,
81,
0,

81,
0,

81,
0,

81,
0,

81,
0,

72,
81,
0,

81,
0,

81,
0,

81,
0,

67,
81,
0,

81,
0,

81,
0,

69,
81,
0,

73,
81,
0,

81,
0,

74,
81,
0,

78,
81,
0,

81,
0,

75,
81,
0,

81,
0,

81,
0,

77,
81,
0,
0};
# define YYTYPE unsigned char
struct yywork { YYTYPE verify, advance; } yycrank[] ={
0,0,	0,0,	1,3,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	1,4,	1,5,	
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,	1,6,	1,7,	
1,8,	1,9,	1,10,	1,11,	
0,0,	1,12,	1,13,	1,14,	
1,15,	1,16,	1,17,	1,18,	
1,19,	1,20,	14,54,	0,0,	
0,0,	10,49,	15,57,	14,55,	
0,0,	0,0,	15,58,	1,21,	
1,22,	1,23,	1,24,	1,25,	
1,26,	6,46,	1,27,	10,50,	
24,71,	14,56,	1,27,	17,60,	
15,59,	17,61,	11,51,	23,69,	
23,70,	2,6,	69,103,	2,8,	
2,9,	2,10,	2,11,	11,52,	
2,12,	2,13,	2,14,	17,62,	
2,16,	2,17,	2,18,	2,19,	
1,28,	41,89,	1,29,	1,30,	
19,64,	11,53,	25,72,	25,73,	
1,31,	1,32,	2,21,	2,22,	
2,23,	2,24,	2,25,	2,26,	
37,85,	30,75,	19,65,	1,33,	
1,34,	1,35,	1,36,	1,37,	
1,38,	1,39,	31,77,	33,80,	
35,83,	1,40,	1,41,	30,76,	
1,42,	1,43,	1,44,	1,45,	
32,78,	36,84,	38,86,	34,81,	
32,79,	7,47,	39,87,	2,28,	
40,88,	2,29,	2,30,	34,82,	
63,98,	7,47,	7,47,	2,31,	
2,32,	73,104,	77,105,	43,91,	
51,94,	54,96,	78,106,	41,90,	
79,107,	80,108,	2,33,	2,34,	
2,35,	2,36,	2,37,	2,38,	
2,39,	43,92,	51,95,	54,97,	
2,40,	2,41,	7,48,	2,42,	
2,43,	2,44,	2,45,	81,109,	
63,98,	83,110,	84,111,	7,47,	
85,112,	86,113,	87,114,	88,115,	
7,47,	18,63,	18,63,	18,63,	
18,63,	18,63,	18,63,	18,63,	
18,63,	18,63,	18,63,	89,116,	
90,117,	99,122,	105,125,	106,126,	
107,127,	7,47,	108,128,	110,129,	
20,66,	7,47,	20,67,	20,67,	
20,67,	20,67,	20,67,	20,67,	
20,67,	20,67,	20,67,	20,67,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	111,130,	20,68,	
43,93,	99,122,	112,131,	114,132,	
115,133,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	20,68,	
116,134,	117,135,	125,138,	27,74,	
126,139,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	27,74,	
27,74,	27,74,	27,74,	66,99,	
66,99,	66,99,	66,99,	66,99,	
66,99,	66,99,	66,99,	66,99,	
66,99,	127,140,	128,141,	131,142,	
132,143,	133,144,	134,145,	135,146,	
68,101,	93,118,	68,101,	139,147,	
66,100,	68,102,	68,102,	68,102,	
68,102,	68,102,	68,102,	68,102,	
68,102,	68,102,	68,102,	93,119,	
98,120,	140,148,	98,120,	141,149,	
142,150,	98,121,	98,121,	98,121,	
98,121,	98,121,	98,121,	98,121,	
98,121,	98,121,	98,121,	144,151,	
100,123,	145,152,	100,123,	146,153,	
66,100,	100,124,	100,124,	100,124,	
100,124,	100,124,	100,124,	100,124,	
100,124,	100,124,	100,124,	101,102,	
101,102,	101,102,	101,102,	101,102,	
101,102,	101,102,	101,102,	101,102,	
101,102,	120,121,	120,121,	120,121,	
120,121,	120,121,	120,121,	120,121,	
120,121,	120,121,	120,121,	122,136,	
148,154,	122,136,	149,155,	152,156,	
122,137,	122,137,	122,137,	122,137,	
122,137,	122,137,	122,137,	122,137,	
122,137,	122,137,	123,124,	123,124,	
123,124,	123,124,	123,124,	123,124,	
123,124,	123,124,	123,124,	123,124,	
136,137,	136,137,	136,137,	136,137,	
136,137,	136,137,	136,137,	136,137,	
136,137,	136,137,	155,157,	157,158,	
158,159,	0,0,	0,0,	0,0,	
0,0};
struct yysvf yysvec[] ={
0,	0,	0,
yycrank+-1,	0,		0,	
yycrank+-44,	yysvec+1,	0,	
yycrank+0,	0,		yyvstop+1,
yycrank+0,	0,		yyvstop+3,
yycrank+0,	0,		yyvstop+6,
yycrank+4,	0,		yyvstop+8,
yycrank+-132,	0,		yyvstop+11,
yycrank+0,	0,		yyvstop+13,
yycrank+0,	0,		yyvstop+16,
yycrank+6,	0,		yyvstop+19,
yycrank+36,	0,		yyvstop+22,
yycrank+0,	0,		yyvstop+25,
yycrank+0,	0,		yyvstop+28,
yycrank+8,	0,		yyvstop+31,
yycrank+11,	0,		yyvstop+34,
yycrank+0,	0,		yyvstop+37,
yycrank+26,	0,		yyvstop+40,
yycrank+133,	0,		yyvstop+43,
yycrank+49,	0,		yyvstop+46,
yycrank+154,	0,		yyvstop+49,
yycrank+0,	0,		yyvstop+52,
yycrank+0,	0,		yyvstop+55,
yycrank+15,	0,		yyvstop+58,
yycrank+7,	0,		yyvstop+61,
yycrank+37,	0,		yyvstop+64,
yycrank+0,	0,		yyvstop+67,
yycrank+164,	0,		yyvstop+70,
yycrank+0,	0,		yyvstop+73,
yycrank+0,	0,		yyvstop+76,
yycrank+62,	0,		yyvstop+79,
yycrank+10,	yysvec+27,	yyvstop+82,
yycrank+27,	yysvec+27,	yyvstop+85,
yycrank+2,	yysvec+27,	yyvstop+88,
yycrank+29,	yysvec+27,	yyvstop+91,
yycrank+12,	yysvec+27,	yyvstop+94,
yycrank+12,	yysvec+27,	yyvstop+97,
yycrank+7,	yysvec+27,	yyvstop+100,
yycrank+29,	yysvec+27,	yyvstop+103,
yycrank+29,	yysvec+27,	yyvstop+106,
yycrank+28,	yysvec+27,	yyvstop+109,
yycrank+43,	yysvec+27,	yyvstop+112,
yycrank+0,	0,		yyvstop+115,
yycrank+100,	0,		yyvstop+118,
yycrank+0,	0,		yyvstop+121,
yycrank+0,	0,		yyvstop+124,
yycrank+0,	0,		yyvstop+127,
yycrank+0,	yysvec+7,	0,	
yycrank+0,	0,		yyvstop+129,
yycrank+0,	0,		yyvstop+131,
yycrank+0,	0,		yyvstop+133,
yycrank+101,	0,		yyvstop+135,
yycrank+0,	0,		yyvstop+137,
yycrank+0,	0,		yyvstop+139,
yycrank+102,	0,		yyvstop+141,
yycrank+0,	0,		yyvstop+143,
yycrank+0,	0,		yyvstop+145,
yycrank+0,	0,		yyvstop+147,
yycrank+0,	0,		yyvstop+149,
yycrank+0,	0,		yyvstop+151,
yycrank+0,	0,		yyvstop+153,
yycrank+0,	0,		yyvstop+155,
yycrank+0,	0,		yyvstop+157,
yycrank+71,	yysvec+18,	yyvstop+159,
yycrank+0,	0,		yyvstop+161,
yycrank+0,	0,		yyvstop+163,
yycrank+239,	0,		yyvstop+165,
yycrank+0,	yysvec+20,	yyvstop+167,
yycrank+261,	0,		0,	
yycrank+17,	0,		yyvstop+169,
yycrank+0,	0,		yyvstop+171,
yycrank+0,	0,		yyvstop+173,
yycrank+0,	0,		yyvstop+175,
yycrank+84,	0,		yyvstop+177,
yycrank+0,	yysvec+27,	yyvstop+179,
yycrank+0,	0,		yyvstop+181,
yycrank+0,	0,		yyvstop+183,
yycrank+45,	yysvec+27,	yyvstop+185,
yycrank+48,	yysvec+27,	yyvstop+187,
yycrank+37,	yysvec+27,	yyvstop+189,
yycrank+44,	yysvec+27,	yyvstop+191,
yycrank+69,	yysvec+27,	yyvstop+193,
yycrank+0,	yysvec+27,	yyvstop+195,
yycrank+62,	yysvec+27,	yyvstop+198,
yycrank+69,	yysvec+27,	yyvstop+200,
yycrank+64,	yysvec+27,	yyvstop+202,
yycrank+61,	yysvec+27,	yyvstop+204,
yycrank+62,	yysvec+27,	yyvstop+206,
yycrank+82,	yysvec+27,	yyvstop+208,
yycrank+83,	yysvec+27,	yyvstop+210,
yycrank+95,	yysvec+27,	yyvstop+212,
yycrank+0,	0,		yyvstop+214,
yycrank+0,	0,		yyvstop+216,
yycrank+258,	0,		yyvstop+218,
yycrank+0,	0,		yyvstop+220,
yycrank+0,	0,		yyvstop+222,
yycrank+0,	0,		yyvstop+224,
yycrank+0,	0,		yyvstop+226,
yycrank+277,	0,		0,	
yycrank+124,	yysvec+66,	yyvstop+228,
yycrank+293,	0,		0,	
yycrank+303,	0,		0,	
yycrank+0,	yysvec+101,	yyvstop+231,
yycrank+0,	0,		yyvstop+233,
yycrank+0,	0,		yyvstop+235,
yycrank+97,	yysvec+27,	yyvstop+237,
yycrank+90,	yysvec+27,	yyvstop+239,
yycrank+84,	yysvec+27,	yyvstop+241,
yycrank+83,	yysvec+27,	yyvstop+243,
yycrank+0,	yysvec+27,	yyvstop+245,
yycrank+83,	yysvec+27,	yyvstop+248,
yycrank+106,	yysvec+27,	yyvstop+250,
yycrank+118,	yysvec+27,	yyvstop+252,
yycrank+0,	yysvec+27,	yyvstop+254,
yycrank+119,	yysvec+27,	yyvstop+257,
yycrank+130,	yysvec+27,	yyvstop+259,
yycrank+159,	yysvec+27,	yyvstop+261,
yycrank+159,	yysvec+27,	yyvstop+263,
yycrank+0,	0,		yyvstop+265,
yycrank+0,	0,		yyvstop+267,
yycrank+313,	0,		0,	
yycrank+0,	yysvec+120,	yyvstop+269,
yycrank+328,	0,		0,	
yycrank+338,	0,		0,	
yycrank+0,	yysvec+123,	yyvstop+271,
yycrank+144,	yysvec+27,	yyvstop+273,
yycrank+150,	yysvec+27,	yyvstop+275,
yycrank+189,	yysvec+27,	yyvstop+277,
yycrank+201,	yysvec+27,	yyvstop+279,
yycrank+0,	yysvec+27,	yyvstop+281,
yycrank+0,	yysvec+27,	yyvstop+284,
yycrank+188,	yysvec+27,	yyvstop+287,
yycrank+199,	yysvec+27,	yyvstop+289,
yycrank+200,	yysvec+27,	yyvstop+291,
yycrank+204,	yysvec+27,	yyvstop+293,
yycrank+202,	yysvec+27,	yyvstop+295,
yycrank+348,	0,		0,	
yycrank+0,	yysvec+136,	yyvstop+297,
yycrank+0,	yysvec+27,	yyvstop+300,
yycrank+206,	yysvec+27,	yyvstop+303,
yycrank+224,	yysvec+27,	yyvstop+305,
yycrank+214,	yysvec+27,	yyvstop+307,
yycrank+208,	yysvec+27,	yyvstop+309,
yycrank+0,	yysvec+27,	yyvstop+311,
yycrank+227,	yysvec+27,	yyvstop+314,
yycrank+236,	yysvec+27,	yyvstop+316,
yycrank+231,	yysvec+27,	yyvstop+318,
yycrank+0,	yysvec+27,	yyvstop+320,
yycrank+251,	yysvec+27,	yyvstop+323,
yycrank+262,	yysvec+27,	yyvstop+325,
yycrank+0,	yysvec+27,	yyvstop+327,
yycrank+0,	yysvec+27,	yyvstop+330,
yycrank+267,	yysvec+27,	yyvstop+333,
yycrank+0,	yysvec+27,	yyvstop+335,
yycrank+0,	yysvec+27,	yyvstop+338,
yycrank+298,	yysvec+27,	yyvstop+341,
yycrank+0,	yysvec+27,	yyvstop+343,
yycrank+306,	yysvec+27,	yyvstop+346,
yycrank+293,	yysvec+27,	yyvstop+348,
yycrank+0,	yysvec+27,	yyvstop+350,
0,	0,	0};
struct yywork *yytop = yycrank+408;
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  ,01  ,
01  ,01  ,01  ,'+' ,01  ,'+' ,01  ,01  ,
'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
'0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,'A' ,'A' ,'A' ,'A' ,'E' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,'A' ,
01  ,'A' ,'A' ,'A' ,'A' ,'E' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,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,"unsigned 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);
	}
