# include "stdio.h"
# define U(x) ((unsigned char)(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 2048
# define output(c) (void)putc(c,yyout)
#if defined(__cplusplus) || defined(__STDC__)

#ifdef __cplusplus
extern "C" {
#endif
	int yylex(void);
	int yyback(int *, int);
	int yyinput(void);
	int yylook(void);
	void yyoutput(int);
	int yyracc(int);
	int yyreject(void);
	void yyunput(int);
#ifndef yyless
	void yyless(long int);
#endif
#ifndef yywrap
	int yywrap(void);
#endif
#ifdef __cplusplus
}
#endif

#endif

# 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 (void)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;

# line 2 "sa_encoder.lex"
/* $Id: sa_encode.yy.c,v 1.2 1997/11/15 00:43:03 luked Exp $ */

# line 3 "sa_encoder.lex"
/* $Log: sa_encode.yy.c,v $
 * Revision 1.2  1997/11/15 00:43:03  luked
 * This is the result of the manual merge from the vendor branch for the
 * release tagged Fribourg_after_integration. I (brian) have probably lost
 * some history, but oh well.
 *
 * This contains the integration work by Eric Scheirer (MIT).
 *
# Revision 1.1  1997/11/10  22:58:10  eds
# Initial revision
# */

# line 7 "sa_encoder.lex"
/*********************************************************************

This software module was originally developed by

Eric D. Scheirer (MIT Media Laboratory)

in the course of development of the MPEG-2 NBC/MPEG-4 Audio standard
ISO/IEC 13818-7, 14496-1,2 and 3. This software module is an
implementation of a part of one or more MPEG-2 NBC/MPEG-4 Audio tools
as specified by the MPEG-2 NBC/MPEG-4 Audio standard.  ISO/IEC gives
users of the MPEG-2 NBC/MPEG-4 Audio standards free license to this
software module or modifications thereof for use in hardware or
software products claiming conformance to the MPEG-2 NBC/ MPEG-4 Audio
standards. Those intending to use this software module in hardware or
software products are advised that this use may infringe existing
patents. The original developer of this software module and his/her
company, the subsequent editors and their companies, and ISO/IEC have
no liability for use of this software module or modifications thereof
in an implementation.

This software module is hereby released into the public domain.

***********************************************************************/

# line 36 "sa_encoder.lex"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "y.tab.h"
  
void count(void),comment(void),dumpline(int i);
int yyline=1,yycol=0;
char thisline[1000],**all_lines = NULL;
int yywrap(void) { return(1); }

# define YYNEWLINE 10
yylex(void){
int nstr; extern int yyprevious;
while((nstr = yylook()) >= 0)
yyfussy: switch(nstr){
case 0:
if(yywrap()) return(0); break;
case 1:

# line 51 "sa_encoder.lex"
	{ comment(); }
break;
case 2:

# line 52 "sa_encoder.lex"
{ count(); return(AOPCODE) ; }
break;
case 3:

# line 53 "sa_encoder.lex"
	{ count(); return(ASIG) ; }
break;
case 4:

# line 54 "sa_encoder.lex"
         { count(); return(ELSE) ; }
break;
case 5:

# line 55 "sa_encoder.lex"
      { count(); return(EXPORTS) ; }
break;
case 6:

# line 56 "sa_encoder.lex"
       { count(); return(EXTEND) ; }
break;
case 7:

# line 57 "sa_encoder.lex"
       { count(); return(GLOBAL) ; }
break;
case 8:

# line 58 "sa_encoder.lex"
           { count(); return(IF) ; }
break;
case 9:

# line 59 "sa_encoder.lex"
      { count(); return(IMPORTS); }
break;
case 10:

# line 60 "sa_encoder.lex"
   { count(); return(INCHANNELS) ; }
break;
case 11:

# line 61 "sa_encoder.lex"
     { count(); return(INPUTMOD) ; }
break;
case 12:

# line 62 "sa_encoder.lex"
        { count(); return(INSTR); }
break;
case 13:

# line 63 "sa_encoder.lex"
{ count(); return(IOPCODE); }
break;
case 14:

# line 64 "sa_encoder.lex"
	{ count(); return(IVAR) ; }
break;
case 15:

# line 65 "sa_encoder.lex"
{ count(); return(KOPCODE); }
break;
case 16:

# line 66 "sa_encoder.lex"
        { count(); return(KRATE) ; }
break;
case 17:

# line 67 "sa_encoder.lex"
	{ count(); return(KSIG) ; }
break;
case 18:

# line 68 "sa_encoder.lex"
        { count(); return(MAP) ; }
break;
case 19:

# line 69 "sa_encoder.lex"
      { count(); return(OPARRAY) ; }
break;
case 20:

# line 70 "sa_encoder.lex"
{ count(); return(OPCODE) ; }
break;
case 21:

# line 71 "sa_encoder.lex"
{ count(); return(OUTBUS) ; }
break;
case 22:

# line 72 "sa_encoder.lex"
  { count(); return(OUTCHANNELS) ; }
break;
case 23:

# line 73 "sa_encoder.lex"
{ count(); return(OUTPUT) ; }
break;
case 24:

# line 74 "sa_encoder.lex"
{ count(); return(RETURN) ; }
break;
case 25:

# line 75 "sa_encoder.lex"
        { count(); return(ROUTE) ; }
break;
case 26:

# line 76 "sa_encoder.lex"
         { count(); return(SEND) ; }
break;
case 27:

# line 77 "sa_encoder.lex"
     { count(); return(SEQUENCE) ; }
break;
case 28:

# line 78 "sa_encoder.lex"
      { count(); return(SFSYNTH) ; }
break;
case 29:

# line 79 "sa_encoder.lex"
   { count(); return(SPATIALIZE) ; }
break;
case 30:

# line 80 "sa_encoder.lex"
	{ count(); return(SRATE); }
break;
case 31:

# line 81 "sa_encoder.lex"
	{ count(); return(TABLE); }
break;
case 32:

# line 82 "sa_encoder.lex"
     { count(); return(TABLEMAP); }
break;
case 33:

# line 83 "sa_encoder.lex"
{ count(); return(TEMPLATE); }
break;
case 34:

# line 84 "sa_encoder.lex"
      { count(); return(TURNOFF); }
break;
case 35:

# line 85 "sa_encoder.lex"
	{ count(); return(WHILE); }
break;
case 36:

# line 86 "sa_encoder.lex"
         { count(); return(WITH); }
break;
case 37:

# line 87 "sa_encoder.lex"
	{ count(); return(XSIG) ; }
break;
case 38:

# line 88 "sa_encoder.lex"
	{ count(); return(AND); }
break;
case 39:

# line 89 "sa_encoder.lex"
	{ count(); return(OR); }
break;
case 40:

# line 90 "sa_encoder.lex"
	{ count(); return(GEQ); }
break;
case 41:

# line 91 "sa_encoder.lex"
	{ count(); return(LEQ); }
break;
case 42:

# line 92 "sa_encoder.lex"
	{ count(); return(NEQ); }
break;
case 43:

# line 93 "sa_encoder.lex"
	{ count(); return(EQEQ); }
break;
case 44:

# line 94 "sa_encoder.lex"
	{ count(); return(MINUS); }
break;
case 45:

# line 95 "sa_encoder.lex"
	{ count(); return(STAR); }
break;
case 46:

# line 96 "sa_encoder.lex"
	{ count(); return(SLASH); }
break;
case 47:

# line 97 "sa_encoder.lex"
	{ count(); return(PLUS); }
break;
case 48:

# line 98 "sa_encoder.lex"
	{ count(); return(GT); }
break;
case 49:

# line 99 "sa_encoder.lex"
	{ count(); return(LT); }
break;
case 50:

# line 100 "sa_encoder.lex"
	{ count(); return(Q); }
break;
case 51:

# line 101 "sa_encoder.lex"
	{ count(); return(COL); }
break;
case 52:

# line 102 "sa_encoder.lex"
	{ count(); return(LP); }
break;
case 53:

# line 103 "sa_encoder.lex"
	{ count(); return(RP); }
break;
case 54:

# line 104 "sa_encoder.lex"
	{ count(); return(LC); }
break;
case 55:

# line 105 "sa_encoder.lex"
	{ count(); return(RC); }
break;
case 56:

# line 106 "sa_encoder.lex"
	{ count(); return(LB); }
break;
case 57:

# line 107 "sa_encoder.lex"
	{ count(); return(RB); }
break;
case 58:

# line 108 "sa_encoder.lex"
	{ count(); return(SEM); }
break;
case 59:

# line 109 "sa_encoder.lex"
	{ count(); return(COM); }
break;
case 60:

# line 110 "sa_encoder.lex"
	{ count(); return(EQ); }
break;
case 61:

# line 111 "sa_encoder.lex"
            { count(); return(NOT); }
break;
case 62:

# line 113 "sa_encoder.lex"
{ count(); yytext[strlen(yytext)-1] = 0; yytext; /* strip quotes */
                           return(STRCONST); }
break;
case 63:

# line 115 "sa_encoder.lex"
	{ count(); return(IDENT) ; }
break;
case 64:

# line 116 "sa_encoder.lex"
	{ count(); return(INTGR) ; }
break;
case 65:

# line 117 "sa_encoder.lex"
{ count(); return(NUMBER) ; }
break;
case 66:

# line 118 "sa_encoder.lex"
	{ count(); }
break;
case 67:

# line 119 "sa_encoder.lex"
	{ count();
                  printf("Line %d: Unknown character: '%s'\n",yyline,yytext); }
break;
case -1:
break;
default:
(void)fprintf(yyout,"bad switch yylook %d",nstr);
} return(0); }
/* end of yylex */

# line 123 "sa_encoder.lex"

void comment() {
  char c;

  while ((c = input()) != '\n'); /* skip */
  yyline++;
  thisline[0] = 0;
  yycol = 0;
  }
              

void count() {
  char *nl;
  
  if (strcmp(yytext,"\n")) {
    yycol += strlen(yytext);
    strcat(thisline,yytext);
    }
  else {
    int i=0;

    while (thisline[i] == ' ' || thisline[i] == '\t') i++;
    nl = strdup(&thisline[i]);
   
    yycol = 0;
    if (all_lines)
      all_lines = (char **)realloc(all_lines,(yyline +2) * sizeof(char *));
    else
      all_lines = (char **)malloc(2 * sizeof(char *));
    all_lines[yyline-1] = nl; /* since yyline starts from 1 */
    yyline++;
    thisline[0] = 0;
    all_lines[yyline-1] = thisline;
    }
  }

void dumpline(int i) {
 
  printf("%s\n",all_lines[i]);
}
int yyvstop[] = {
0,

67,
0,

66,
67,
0,

66,
0,

61,
67,
0,

67,
0,

67,
0,

52,
67,
0,

53,
67,
0,

45,
67,
0,

47,
67,
0,

59,
67,
0,

44,
67,
0,

65,
67,
0,

46,
67,
0,

64,
65,
67,
0,

51,
67,
0,

58,
67,
0,

49,
67,
0,

60,
67,
0,

48,
67,
0,

50,
67,
0,

63,
67,
0,

56,
67,
0,

57,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

63,
67,
0,

54,
67,
0,

67,
0,

55,
67,
0,

42,
0,

62,
0,

38,
0,

65,
0,

1,
0,

65,
0,

64,
65,
0,

41,
0,

43,
0,

40,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

8,
63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

39,
0,

65,
0,

65,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

18,
63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

3,
63,
0,

4,
63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

14,
63,
0,

63,
0,

63,
0,

17,
63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

26,
63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

36,
63,
0,

37,
63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

12,
63,
0,

63,
0,

63,
0,

16,
63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

25,
63,
0,

63,
0,

63,
0,

63,
0,

30,
63,
0,

31,
63,
0,

63,
0,

63,
0,

35,
63,
0,

63,
0,

63,
0,

6,
63,
0,

7,
63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

20,
63,
0,

21,
63,
0,

63,
0,

23,
63,
0,

24,
63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

63,
0,

2,
63,
0,

5,
63,
0,

9,
63,
0,

63,
0,

63,
0,

13,
63,
0,

15,
63,
0,

19,
63,
0,

63,
0,

63,
0,

28,
63,
0,

63,
0,

63,
0,

63,
0,

34,
63,
0,

63,
0,

11,
63,
0,

63,
0,

27,
63,
0,

63,
0,

32,
63,
0,

33,
63,
0,

63,
0,

63,
0,

63,
0,

10,
63,
0,

63,
0,

29,
63,
0,

22,
63,
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,	
0,0,	0,0,	0,0,	1,8,	
8,46,	1,9,	1,10,	1,11,	
1,12,	1,13,	1,14,	1,15,	
1,16,	1,17,	14,47,	16,49,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	1,18,	
1,19,	1,20,	1,21,	1,22,	
1,23,	6,42,	1,24,	20,53,	
21,54,	22,55,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
7,43,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
7,43,	7,43,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
1,25,	1,3,	1,26,	0,0,	
0,0,	0,0,	1,27,	0,0,	
0,0,	0,0,	1,28,	43,45,	
1,29,	0,0,	1,30,	32,70,	
1,31,	7,44,	1,32,	66,100,	
1,33,	68,102,	77,113,	1,34,	
1,35,	1,36,	7,43,	29,61,	
1,37,	1,38,	2,6,	7,43,	
1,39,	1,40,	1,41,	2,8,	
27,57,	2,9,	2,10,	2,11,	
27,58,	2,13,	2,14,	2,15,	
2,16,	38,84,	31,67,	33,71,	
7,43,	31,68,	31,69,	40,85,	
33,72,	37,82,	37,83,	2,18,	
2,19,	2,20,	2,21,	2,22,	
2,23,	15,47,	15,47,	15,47,	
15,47,	15,47,	15,47,	15,47,	
15,47,	15,47,	15,47,	57,89,	
58,90,	59,91,	17,50,	7,45,	
17,51,	17,51,	17,51,	17,51,	
17,51,	17,51,	17,51,	17,51,	
17,51,	17,51,	34,73,	28,59,	
2,25,	2,3,	2,26,	60,92,	
35,75,	35,76,	2,27,	60,93,	
34,74,	61,94,	2,28,	28,60,	
2,29,	63,95,	2,30,	35,77,	
2,31,	35,78,	2,32,	65,99,	
2,33,	67,101,	69,103,	2,34,	
2,35,	2,36,	15,48,	70,104,	
2,37,	2,38,	72,107,	73,108,	
2,39,	2,40,	2,41,	36,79,	
71,105,	74,109,	71,106,	36,80,	
64,96,	17,52,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
76,112,	64,97,	75,110,	36,81,	
64,98,	75,111,	78,114,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	79,115,	80,116,	81,117,	
82,118,	24,56,	83,119,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	24,56,	24,56,	24,56,	
24,56,	30,62,	84,120,	45,43,	
89,121,	90,122,	91,123,	92,124,	
30,63,	30,64,	30,65,	45,43,	
45,0,	93,125,	94,126,	48,48,	
95,127,	30,66,	48,86,	48,86,	
48,86,	48,86,	48,86,	48,86,	
48,86,	48,86,	48,86,	48,86,	
96,128,	97,129,	98,130,	99,131,	
100,132,	101,133,	102,134,	103,135,	
45,43,	105,136,	106,137,	108,141,	
109,142,	110,143,	111,144,	112,145,	
113,146,	45,43,	114,147,	107,138,	
107,139,	115,148,	45,43,	50,50,	
50,50,	50,50,	50,50,	50,50,	
50,50,	50,50,	50,50,	50,50,	
50,50,	107,140,	116,149,	52,87,	
117,150,	52,87,	118,151,	45,43,	
52,88,	52,88,	52,88,	52,88,	
52,88,	52,88,	52,88,	52,88,	
52,88,	52,88,	86,86,	86,86,	
86,86,	86,86,	86,86,	86,86,	
86,86,	86,86,	86,86,	86,86,	
87,88,	87,88,	87,88,	87,88,	
87,88,	87,88,	87,88,	87,88,	
87,88,	87,88,	119,152,	120,153,	
121,154,	124,155,	125,156,	126,157,	
50,52,	127,158,	128,159,	129,160,	
130,161,	131,162,	133,163,	134,164,	
136,165,	137,166,	138,167,	139,168,	
140,169,	141,170,	142,171,	144,172,	
145,173,	146,174,	147,175,	148,176,	
149,177,	150,178,	151,179,	154,180,	
155,181,	156,182,	157,183,	158,184,	
159,185,	160,186,	162,187,	163,188,	
165,189,	166,190,	167,191,	168,192,	
169,193,	170,194,	172,195,	173,196,	
174,197,	176,198,	177,199,	178,200,	
180,201,	181,202,	184,203,	185,204,	
186,205,	187,206,	188,207,	189,208,	
192,209,	195,210,	196,211,	197,212,	
198,213,	199,214,	200,215,	204,216,	
205,217,	209,218,	210,219,	212,220,	
213,221,	214,222,	216,223,	218,224,	
220,225,	223,226,	224,227,	225,228,	
227,229,	0,0,	0,0,	0,0,	
0,0};
struct yysvf yysvec[] = {
0,	0,	0,
yycrank+-1,	0,		0,	
yycrank+-89,	yysvec+1,	0,	
yycrank+0,	0,		yyvstop+1,
yycrank+0,	0,		yyvstop+3,
yycrank+0,	0,		yyvstop+6,
yycrank+4,	0,		yyvstop+8,
yycrank+-75,	0,		yyvstop+11,
yycrank+2,	0,		yyvstop+13,
yycrank+0,	0,		yyvstop+15,
yycrank+0,	0,		yyvstop+18,
yycrank+0,	0,		yyvstop+21,
yycrank+0,	0,		yyvstop+24,
yycrank+0,	0,		yyvstop+27,
yycrank+4,	0,		yyvstop+30,
yycrank+105,	0,		yyvstop+33,
yycrank+4,	0,		yyvstop+36,
yycrank+120,	0,		yyvstop+39,
yycrank+0,	0,		yyvstop+43,
yycrank+0,	0,		yyvstop+46,
yycrank+6,	0,		yyvstop+49,
yycrank+7,	0,		yyvstop+52,
yycrank+8,	0,		yyvstop+55,
yycrank+0,	0,		yyvstop+58,
yycrank+174,	0,		yyvstop+61,
yycrank+0,	0,		yyvstop+64,
yycrank+0,	0,		yyvstop+67,
yycrank+17,	yysvec+24,	yyvstop+70,
yycrank+71,	yysvec+24,	yyvstop+73,
yycrank+11,	yysvec+24,	yyvstop+76,
yycrank+195,	yysvec+24,	yyvstop+79,
yycrank+27,	yysvec+24,	yyvstop+82,
yycrank+10,	yysvec+24,	yyvstop+85,
yycrank+27,	yysvec+24,	yyvstop+88,
yycrank+77,	yysvec+24,	yyvstop+91,
yycrank+83,	yysvec+24,	yyvstop+94,
yycrank+118,	yysvec+24,	yyvstop+97,
yycrank+41,	yysvec+24,	yyvstop+100,
yycrank+22,	yysvec+24,	yyvstop+103,
yycrank+0,	0,		yyvstop+106,
yycrank+19,	0,		yyvstop+109,
yycrank+0,	0,		yyvstop+111,
yycrank+0,	0,		yyvstop+114,
yycrank+-11,	yysvec+7,	0,	
yycrank+0,	0,		yyvstop+116,
yycrank+-298,	0,		0,	
yycrank+0,	0,		yyvstop+118,
yycrank+0,	yysvec+15,	yyvstop+120,
yycrank+266,	0,		0,	
yycrank+0,	0,		yyvstop+122,
yycrank+299,	0,		yyvstop+124,
yycrank+0,	yysvec+17,	yyvstop+126,
yycrank+316,	0,		0,	
yycrank+0,	0,		yyvstop+129,
yycrank+0,	0,		yyvstop+131,
yycrank+0,	0,		yyvstop+133,
yycrank+0,	yysvec+24,	yyvstop+135,
yycrank+51,	yysvec+24,	yyvstop+137,
yycrank+59,	yysvec+24,	yyvstop+139,
yycrank+50,	yysvec+24,	yyvstop+141,
yycrank+71,	yysvec+24,	yyvstop+143,
yycrank+78,	yysvec+24,	yyvstop+145,
yycrank+0,	yysvec+24,	yyvstop+147,
yycrank+81,	yysvec+24,	yyvstop+150,
yycrank+121,	yysvec+24,	yyvstop+152,
yycrank+87,	yysvec+24,	yyvstop+154,
yycrank+14,	yysvec+24,	yyvstop+156,
yycrank+89,	yysvec+24,	yyvstop+158,
yycrank+16,	yysvec+24,	yyvstop+160,
yycrank+97,	yysvec+24,	yyvstop+162,
yycrank+95,	yysvec+24,	yyvstop+164,
yycrank+119,	yysvec+24,	yyvstop+166,
yycrank+94,	yysvec+24,	yyvstop+168,
yycrank+95,	yysvec+24,	yyvstop+170,
yycrank+100,	yysvec+24,	yyvstop+172,
yycrank+124,	yysvec+24,	yyvstop+174,
yycrank+117,	yysvec+24,	yyvstop+176,
yycrank+17,	yysvec+24,	yyvstop+178,
yycrank+141,	yysvec+24,	yyvstop+180,
yycrank+167,	yysvec+24,	yyvstop+182,
yycrank+157,	yysvec+24,	yyvstop+184,
yycrank+153,	yysvec+24,	yyvstop+186,
yycrank+163,	yysvec+24,	yyvstop+188,
yycrank+154,	yysvec+24,	yyvstop+190,
yycrank+193,	yysvec+24,	yyvstop+192,
yycrank+0,	0,		yyvstop+194,
yycrank+326,	0,		yyvstop+196,
yycrank+336,	0,		0,	
yycrank+0,	yysvec+87,	yyvstop+198,
yycrank+201,	yysvec+24,	yyvstop+200,
yycrank+198,	yysvec+24,	yyvstop+202,
yycrank+201,	yysvec+24,	yyvstop+204,
yycrank+192,	yysvec+24,	yyvstop+206,
yycrank+208,	yysvec+24,	yyvstop+208,
yycrank+212,	yysvec+24,	yyvstop+210,
yycrank+201,	yysvec+24,	yyvstop+212,
yycrank+220,	yysvec+24,	yyvstop+214,
yycrank+208,	yysvec+24,	yyvstop+216,
yycrank+210,	yysvec+24,	yyvstop+218,
yycrank+228,	yysvec+24,	yyvstop+220,
yycrank+214,	yysvec+24,	yyvstop+222,
yycrank+230,	yysvec+24,	yyvstop+224,
yycrank+214,	yysvec+24,	yyvstop+226,
yycrank+228,	yysvec+24,	yyvstop+228,
yycrank+0,	yysvec+24,	yyvstop+230,
yycrank+219,	yysvec+24,	yyvstop+233,
yycrank+223,	yysvec+24,	yyvstop+235,
yycrank+245,	yysvec+24,	yyvstop+237,
yycrank+218,	yysvec+24,	yyvstop+239,
yycrank+220,	yysvec+24,	yyvstop+241,
yycrank+237,	yysvec+24,	yyvstop+243,
yycrank+221,	yysvec+24,	yyvstop+245,
yycrank+218,	yysvec+24,	yyvstop+247,
yycrank+224,	yysvec+24,	yyvstop+249,
yycrank+226,	yysvec+24,	yyvstop+251,
yycrank+237,	yysvec+24,	yyvstop+253,
yycrank+246,	yysvec+24,	yyvstop+255,
yycrank+250,	yysvec+24,	yyvstop+257,
yycrank+254,	yysvec+24,	yyvstop+259,
yycrank+290,	yysvec+24,	yyvstop+261,
yycrank+292,	yysvec+24,	yyvstop+263,
yycrank+285,	yysvec+24,	yyvstop+265,
yycrank+0,	yysvec+24,	yyvstop+267,
yycrank+0,	yysvec+24,	yyvstop+270,
yycrank+283,	yysvec+24,	yyvstop+273,
yycrank+288,	yysvec+24,	yyvstop+275,
yycrank+302,	yysvec+24,	yyvstop+277,
yycrank+287,	yysvec+24,	yyvstop+279,
yycrank+305,	yysvec+24,	yyvstop+281,
yycrank+287,	yysvec+24,	yyvstop+283,
yycrank+290,	yysvec+24,	yyvstop+285,
yycrank+294,	yysvec+24,	yyvstop+287,
yycrank+0,	yysvec+24,	yyvstop+289,
yycrank+295,	yysvec+24,	yyvstop+292,
yycrank+306,	yysvec+24,	yyvstop+294,
yycrank+0,	yysvec+24,	yyvstop+296,
yycrank+294,	yysvec+24,	yyvstop+299,
yycrank+309,	yysvec+24,	yyvstop+301,
yycrank+293,	yysvec+24,	yyvstop+303,
yycrank+307,	yysvec+24,	yyvstop+305,
yycrank+295,	yysvec+24,	yyvstop+307,
yycrank+299,	yysvec+24,	yyvstop+309,
yycrank+313,	yysvec+24,	yyvstop+311,
yycrank+0,	yysvec+24,	yyvstop+313,
yycrank+314,	yysvec+24,	yyvstop+316,
yycrank+306,	yysvec+24,	yyvstop+318,
yycrank+312,	yysvec+24,	yyvstop+320,
yycrank+317,	yysvec+24,	yyvstop+322,
yycrank+318,	yysvec+24,	yyvstop+324,
yycrank+312,	yysvec+24,	yyvstop+326,
yycrank+310,	yysvec+24,	yyvstop+328,
yycrank+321,	yysvec+24,	yyvstop+330,
yycrank+0,	yysvec+24,	yyvstop+332,
yycrank+0,	yysvec+24,	yyvstop+335,
yycrank+323,	yysvec+24,	yyvstop+338,
yycrank+308,	yysvec+24,	yyvstop+340,
yycrank+325,	yysvec+24,	yyvstop+342,
yycrank+318,	yysvec+24,	yyvstop+344,
yycrank+311,	yysvec+24,	yyvstop+346,
yycrank+318,	yysvec+24,	yyvstop+348,
yycrank+320,	yysvec+24,	yyvstop+350,
yycrank+0,	yysvec+24,	yyvstop+352,
yycrank+330,	yysvec+24,	yyvstop+355,
yycrank+331,	yysvec+24,	yyvstop+357,
yycrank+0,	yysvec+24,	yyvstop+359,
yycrank+335,	yysvec+24,	yyvstop+362,
yycrank+332,	yysvec+24,	yyvstop+364,
yycrank+319,	yysvec+24,	yyvstop+366,
yycrank+338,	yysvec+24,	yyvstop+368,
yycrank+320,	yysvec+24,	yyvstop+370,
yycrank+327,	yysvec+24,	yyvstop+372,
yycrank+0,	yysvec+24,	yyvstop+374,
yycrank+328,	yysvec+24,	yyvstop+377,
yycrank+323,	yysvec+24,	yyvstop+379,
yycrank+343,	yysvec+24,	yyvstop+381,
yycrank+0,	yysvec+24,	yyvstop+383,
yycrank+332,	yysvec+24,	yyvstop+386,
yycrank+345,	yysvec+24,	yyvstop+389,
yycrank+341,	yysvec+24,	yyvstop+391,
yycrank+0,	yysvec+24,	yyvstop+393,
yycrank+343,	yysvec+24,	yyvstop+396,
yycrank+330,	yysvec+24,	yyvstop+398,
yycrank+0,	yysvec+24,	yyvstop+400,
yycrank+0,	yysvec+24,	yyvstop+403,
yycrank+331,	yysvec+24,	yyvstop+406,
yycrank+337,	yysvec+24,	yyvstop+408,
yycrank+337,	yysvec+24,	yyvstop+410,
yycrank+348,	yysvec+24,	yyvstop+412,
yycrank+349,	yysvec+24,	yyvstop+414,
yycrank+330,	yysvec+24,	yyvstop+416,
yycrank+0,	yysvec+24,	yyvstop+418,
yycrank+0,	yysvec+24,	yyvstop+421,
yycrank+342,	yysvec+24,	yyvstop+424,
yycrank+0,	yysvec+24,	yyvstop+426,
yycrank+0,	yysvec+24,	yyvstop+429,
yycrank+354,	yysvec+24,	yyvstop+432,
yycrank+350,	yysvec+24,	yyvstop+434,
yycrank+347,	yysvec+24,	yyvstop+436,
yycrank+359,	yysvec+24,	yyvstop+438,
yycrank+341,	yysvec+24,	yyvstop+440,
yycrank+356,	yysvec+24,	yyvstop+442,
yycrank+0,	yysvec+24,	yyvstop+444,
yycrank+0,	yysvec+24,	yyvstop+447,
yycrank+0,	yysvec+24,	yyvstop+450,
yycrank+358,	yysvec+24,	yyvstop+453,
yycrank+360,	yysvec+24,	yyvstop+455,
yycrank+0,	yysvec+24,	yyvstop+457,
yycrank+0,	yysvec+24,	yyvstop+460,
yycrank+0,	yysvec+24,	yyvstop+463,
yycrank+351,	yysvec+24,	yyvstop+466,
yycrank+361,	yysvec+24,	yyvstop+468,
yycrank+0,	yysvec+24,	yyvstop+470,
yycrank+358,	yysvec+24,	yyvstop+473,
yycrank+352,	yysvec+24,	yyvstop+475,
yycrank+364,	yysvec+24,	yyvstop+477,
yycrank+0,	yysvec+24,	yyvstop+479,
yycrank+358,	yysvec+24,	yyvstop+482,
yycrank+0,	yysvec+24,	yyvstop+484,
yycrank+366,	yysvec+24,	yyvstop+487,
yycrank+0,	yysvec+24,	yyvstop+489,
yycrank+346,	yysvec+24,	yyvstop+492,
yycrank+0,	yysvec+24,	yyvstop+494,
yycrank+0,	yysvec+24,	yyvstop+497,
yycrank+354,	yysvec+24,	yyvstop+500,
yycrank+362,	yysvec+24,	yyvstop+502,
yycrank+370,	yysvec+24,	yyvstop+504,
yycrank+0,	yysvec+24,	yyvstop+506,
yycrank+357,	yysvec+24,	yyvstop+509,
yycrank+0,	yysvec+24,	yyvstop+511,
yycrank+0,	yysvec+24,	yyvstop+514,
0,	0,	0};
struct yywork *yytop = yycrank+472;
struct yysvf *yybgin = yysvec+1;
unsigned 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' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,01  ,'"' ,01  ,01  ,'A' ,
01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'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};
#ident	"$Revision: 1.2 $"

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;
#if defined(__cplusplus) || defined(__STDC__)
int yylook(void)
#else
yylook()
#endif
{
	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 = 0;
# 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",yystate-yysvec-1);
# 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();
#ifndef LONGLINES
			if(yylastch > &yytext[YYLMAX]) {
				fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
				exit(1);
			}
#endif
			yyfirst=0;
		tryagain:
# ifdef LEXDEBUG
			if(debug){
				fprintf(yyout,"char ");
				allprint(yych);
				putchar('\n');
				}
# endif
			yyr = yyt;
			if ( (void *)yyt > (void *)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;
#ifndef LONGLINES
					if(lsp > &yylstate[YYLMAX]) {
						fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
						exit(1);
					}
#endif
					goto contin;
					}
				}
# ifdef YYOPTIM
			else if((void *)yyt < (void *)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;
#ifndef LONGLINES
					if(lsp > &yylstate[YYLMAX]) {
						fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
						exit(1);
					}
#endif
					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;
#ifndef LONGLINES
					if(lsp > &yylstate[YYLMAX]) {
						fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
						exit(1);
					}
#endif
					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 = (int)(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
		}
	}
#if defined(__cplusplus) || defined(__STDC__)
int yyback(int *p, int m)
#else
yyback(p, m)
	int *p;
#endif
{
	if (p==0) return(0);
	while (*p) {
		if (*p++ == m)
			return(1);
	}
	return(0);
}
	/* the following are only used in the lex library */
#if defined(__cplusplus) || defined(__STDC__)
int yyinput(void)
#else
yyinput()
#endif
{
	return(input());
	}
#if defined(__cplusplus) || defined(__STDC__)
void yyoutput(int c)
#else
yyoutput(c)
  int c; 
#endif
{
	output(c);
	}
#if defined(__cplusplus) || defined(__STDC__)
void yyunput(int c)
#else
yyunput(c)
   int c; 
#endif
{
	unput(c);
	}
