# 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) (void)putc(c,yyout)
#if defined(__cplusplus) || defined(__STDC__)
#if defined(__cplusplus) && defined(__EXTERN_C__)
extern "C" {
#endif
int yyback(int *, int);
int yyinput(void);
int yylook(void);
void yyoutput(int);
int yyracc(int);
int yyreject(void);
void yyunput(int);
int yylex(void);
#ifndef yyless
void yyless(int);
#endif
#ifndef yywrap
int yywrap(void);
#endif
#ifdef LEXDEBUG
void allprint(char);
void sprint(char *);
#endif
#if defined(__cplusplus) && defined(__EXTERN_C__)
}
#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 3 "ncgen.l"
/*********************************************************************
* Copyright 1993, UCAR/Unidata
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
* $Id: msoftyy.c,v 1.4 1996/03/26 22:39:38 georgev Exp $
*********************************************************************/
#define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0)
# line 11 "ncgen.l"
/* lex specification for tokens for ncgen */
char errstr[100]; /* for short error messages */
extern long strtol();
void expand_escapes();
#include <string.h>
#include <ctype.h>
#include <limits.h>
#include "msofttab.h"
# 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:
# line 26 "ncgen.l"
/* comment */ ;
break;
case 2:
# line 28 "ncgen.l"
{
if(yyleng > MAXTRST) {
yyerror("string too long, truncated\n");
yytext[MAXTRST-1] = '\0';
}
expand_escapes(termstring,yytext,yyleng);
return (TERMSTRING);
}
break;
case 3:
# line 37 "ncgen.l"
{return (FLOAT_K);}
break;
case 4:
# line 38 "ncgen.l"
{return (CHAR_K);}
break;
case 5:
# line 39 "ncgen.l"
{return (BYTE_K);}
break;
case 6:
# line 40 "ncgen.l"
{return (SHORT_K);}
break;
case 7:
# line 41 "ncgen.l"
{return (LONG_K);}
break;
case 8:
# line 42 "ncgen.l"
{return (DOUBLE_K);}
break;
case 9:
# line 43 "ncgen.l"
{long_val = -1;
return (NC_UNLIMITED_K);}
break;
case 10:
# line 46 "ncgen.l"
{return (DIMENSIONS);}
break;
case 11:
# line 47 "ncgen.l"
{return (VARIABLES);}
break;
case 12:
# line 48 "ncgen.l"
{return (DATA);}
break;
case 13:
# line 49 "ncgen.l"
{
char *s = (char*)yytext+strlen("netcdf");
char *t = (char*)yytext+yyleng-1;
while (isspace(*s))
s++;
while (isspace(*t))
t--;
t++;
netcdfname = (char *) emalloc(t-s+1);
(void) strncpy(netcdfname, s, t-s);
netcdfname[t-s] = '\0';
return (NETCDF);
}
break;
case 14:
# line 63 "ncgen.l"
{ /* double missing values */
double_val = FILL_DOUBLE; /* IEEE double infinity */
return (DOUBLE_CONST);
}
break;
case 15:
# line 68 "ncgen.l"
{ /* float missing values */
float_val = FILL_FLOAT; /* IEEE float infinity */
return (FLOAT_CONST);
}
break;
case 16:
# line 72 "ncgen.l"
{
if ((yylval = lookup(yytext)) == NULL) {
yylval = install(yytext);
}
return (IDENT);
}
break;
case 17:
# line 79 "ncgen.l"
{
lineno++ ;
}
break;
case 18:
# line 82 "ncgen.l"
{
if (sscanf((char*)yytext, "%le", &double_val) != 1) {
sprintf(errstr,"bad long or double constant: %s",(char*)yytext);
yyerror(errstr);
}
return (DOUBLE_CONST);
}
break;
case 19:
# line 89 "ncgen.l"
{
if (sscanf((char*)yytext, "%e", &float_val) != 1) {
sprintf(errstr,"bad float constant: %s",(char*)yytext);
yyerror(errstr);
}
return (FLOAT_CONST);
}
break;
case 20:
# line 96 "ncgen.l"
{
if (sscanf((char*)yytext, "%hd", &short_val) != 1) {
sprintf(errstr,"bad short constant: %s",(char*)yytext);
yyerror(errstr);
}
return (SHORT_CONST);
}
break;
case 21:
# line 103 "ncgen.l"
{
#ifdef cray /* machines where longs have more precision than doubles. */
char *ptr;
long_val = strtol((char*)yytext, &ptr, 0);
if (ptr == (char*)yytext) {
sprintf(errstr,"bad long constant: %s",(char*)yytext);
yyerror(errstr);
}
return (LONG_CONST);
#else /* machines where doubles have more precision than longs. */
/*
* Because strtol and sscanf with "%ld" may silently give
* bad results from undetected overflow for strings like
* "30000000000", we scan as double first.
*/
double dd;
#ifdef VMS /* work around bug in VMS strtol() */
if (STREQ((char*)yytext, "-2147483648")) {
long_val = -2147483648;
return (LONG_CONST);
}
#endif /* VMS */
if (sscanf((char*)yytext, "%le", &dd) != 1) {
sprintf(errstr,"bad long constant: %s",(char*)yytext);
yyerror(errstr);
}
if (dd < LONG_MIN || dd > LONG_MAX) {
double_val = dd;
return DOUBLE_CONST;
} else {
long_val = dd;
return LONG_CONST;
}
#endif /* cray */
}
break;
case 22:
# line 138 "ncgen.l"
{
long dd;
#ifdef VMS /* work around bug in VMS strtol() */
if (STREQ((char*)yytext, "-2147483648")) {
long_val = -2147483648;
return (LONG_CONST);
}
#endif /* VMS */
if (sscanf((char*)yytext, "%li", &dd) != 1) {
sprintf(errstr,"bad long constant: %s",(char*)yytext);
yyerror(errstr);
}
long_val = dd;
return LONG_CONST;
}
break;
case 23:
# line 153 "ncgen.l"
{
(void) sscanf((char*)&yytext[1],"%c",&byte_val);
return (BYTE_CONST);
}
break;
case 24:
# line 157 "ncgen.l"
{
byte_val = strtol((char*)&yytext[2], (char **) 0, 8);
return (BYTE_CONST);
}
break;
case 25:
# line 161 "ncgen.l"
{
byte_val = strtol((char*)&yytext[2], (char **) 0, 16);
return (BYTE_CONST);
}
break;
case 26:
# line 165 "ncgen.l"
{
switch ((char)yytext[2]) {
case 'a': byte_val = '\007'; break; /* not everyone under-
* stands '\a' yet */
case 'b': byte_val = '\b'; break;
case 'f': byte_val = '\f'; break;
case 'n': byte_val = '\n'; break;
case 'r': byte_val = '\r'; break;
case 't': byte_val = '\t'; break;
case 'v': byte_val = '\v'; break;
case '\\': byte_val = '\\'; break;
case '?': byte_val = '\?'; break;
case '\'': byte_val = '\''; break;
default: byte_val = (char)yytext[2];
}
return (BYTE_CONST);
}
break;
case 27:
# line 183 "ncgen.l"
{/* whitespace */ ;
}
break;
case 28:
# line 185 "ncgen.l"
return (yytext[0]) ;
break;
case -1:
break;
default:
(void)fprintf(yyout,"bad switch yylook %d",nstr);
} return(0); }
/* end of yylex */
int yyvstop[] = {
0,
28,
0,
27,
28,
0,
17,
0,
28,
0,
28,
0,
28,
0,
28,
0,
18,
28,
0,
28,
0,
21,
28,
0,
21,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
16,
28,
0,
27,
0,
2,
0,
18,
0,
21,
0,
18,
0,
19,
0,
1,
0,
22,
0,
22,
0,
22,
0,
21,
0,
20,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
18,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
2,
0,
23,
0,
18,
0,
18,
0,
22,
0,
18,
22,
0,
22,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
18,
0,
16,
19,
0,
16,
0,
16,
0,
7,
16,
0,
15,
16,
0,
16,
0,
16,
0,
14,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
7,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
26,
0,
24,
26,
0,
14,
0,
18,
22,
0,
19,
22,
0,
18,
22,
0,
5,
16,
0,
4,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
7,
16,
0,
16,
0,
3,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
24,
0,
25,
0,
12,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
6,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
8,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
13,
0,
13,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
15,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
9,
16,
0,
16,
0,
16,
0,
16,
0,
16,
0,
11,
0,
16,
0,
10,
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, 4,38, 0,0, 0,0,
4,38, 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,
4,38, 41,93, 0,0, 0,0,
1,7, 42,94, 95,137, 0,0,
1,8, 0,0, 1,9, 1,10,
1,11, 1,12, 1,13, 11,52,
0,0, 0,0, 0,0, 0,0,
0,0, 1,13, 0,0, 0,0,
13,46, 0,0, 0,0, 0,0,
0,0, 0,0, 1,14, 1,15,
1,16, 1,17, 1,18, 1,19,
1,14, 23,76, 1,20, 16,61,
22,74, 1,21, 19,69, 1,22,
9,48, 21,73, 17,62, 1,23,
1,24, 20,71, 1,25, 1,26,
13,56, 1,14, 17,63, 15,60,
24,77, 1,3, 25,78, 13,57,
17,64, 26,79, 60,105, 1,27,
1,28, 1,29, 37,92, 1,30,
22,75, 2,7, 1,31, 28,81,
33,88, 1,32, 19,70, 1,33,
2,10, 2,11, 30,85, 1,34,
1,35, 20,72, 1,36, 1,37,
13,56, 29,82, 31,86, 27,80,
1,3, 32,87, 34,89, 13,57,
17,65, 29,83, 35,90, 36,91,
2,15, 2,16, 48,99, 29,84,
61,106, 62,107, 63,108, 2,20,
64,109, 65,110, 69,113, 70,114,
2,22, 6,39, 71,115, 72,116,
2,23, 73,117, 74,118, 2,25,
2,26, 6,39, 6,39, 75,119,
76,120, 77,121, 78,122, 79,123,
80,124, 81,125, 46,46, 82,126,
2,27, 2,28, 2,29, 83,127,
2,30, 84,128, 85,129, 2,31,
86,130, 87,131, 2,32, 88,132,
2,33, 89,133, 6,40, 90,134,
2,34, 2,35, 91,135, 2,36,
2,37, 92,136, 7,42, 6,39,
99,141, 6,39, 46,56, 105,145,
6,39, 6,39, 7,42, 7,42,
106,146, 46,57, 107,147, 104,102,
6,39, 108,148, 109,149, 98,49,
110,150, 98,51, 104,57, 113,151,
101,49, 6,39, 101,51, 98,49,
6,39, 6,39, 6,39, 6,39,
101,49, 114,152, 115,153, 7,42,
6,39, 116,154, 46,56, 117,155,
118,156, 120,157, 121,158, 6,39,
7,42, 46,57, 7,42, 104,102,
6,39, 7,42, 7,42, 98,49,
6,41, 98,51, 104,57, 122,159,
101,49, 7,42, 101,51, 98,49,
123,160, 124,145, 125,146, 126,161,
101,49, 127,162, 7,42, 128,163,
129,164, 7,42, 7,42, 7,42,
7,42, 130,165, 131,155, 133,157,
134,168, 7,42, 135,169, 136,170,
147,175, 148,176, 149,177, 6,39,
7,42, 132,166, 150,178, 151,157,
152,179, 7,42, 153,180, 154,181,
8,44, 7,43, 8,45, 8,46,
8,46, 8,46, 8,46, 8,46,
8,46, 8,46, 8,46, 8,46,
156,182, 10,44, 10,44, 10,44,
10,44, 10,44, 10,44, 10,44,
10,44, 10,44, 10,44, 8,47,
158,183, 132,167, 159,184, 160,185,
161,175, 162,186, 163,187, 164,157,
7,42, 10,49, 10,50, 10,51,
165,188, 166,189, 167,190, 168,183,
12,44, 10,49, 12,53, 12,53,
12,53, 12,53, 12,53, 12,53,
12,53, 12,53, 12,53, 12,53,
169,191, 170,192, 172,171, 8,47,
174,173, 176,193, 177,194, 12,54,
12,54, 12,54, 12,54, 12,55,
12,54, 10,49, 10,50, 10,51,
178,195, 179,196, 12,56, 180,197,
181,198, 10,49, 96,138, 182,199,
184,200, 12,57, 185,201, 186,202,
187,194, 188,203, 12,58, 96,139,
96,139, 96,139, 96,139, 96,139,
96,139, 96,139, 96,139, 12,54,
12,54, 12,54, 12,54, 12,55,
12,54, 189,199, 190,199, 191,204,
192,205, 193,206, 12,56, 195,207,
196,208, 197,155, 198,209, 200,212,
201,213, 12,57, 202,214, 203,155,
14,59, 204,215, 12,58, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 205,216, 206,217, 207,218,
208,219, 209,219, 211,0, 212,220,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 213,221, 214,222,
215,223, 216,224, 14,59, 217,225,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 14,59, 14,59,
14,59, 14,59, 18,66, 218,119,
18,67, 220,226, 221,227, 18,68,
18,68, 18,68, 18,68, 18,68,
18,68, 18,68, 18,68, 18,68,
18,68, 43,95, 222,228, 223,226,
224,229, 225,230, 227,231, 228,232,
229,231, 43,95, 43,0, 230,233,
45,45, 45,45, 45,45, 45,45,
45,45, 45,45, 45,45, 45,45,
45,45, 66,98, 66,98, 66,98,
66,98, 66,98, 66,98, 66,98,
66,98, 66,98, 66,98, 232,233,
0,0, 0,0, 43,95, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 43,95,
0,0, 43,95, 45,57, 0,0,
43,96, 43,96, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
43,95, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 43,95, 0,0, 0,0,
43,95, 43,95, 43,95, 43,95,
0,0, 0,0, 0,0, 0,0,
43,95, 0,0, 45,57, 0,0,
0,0, 0,0, 0,0, 43,95,
0,0, 0,0, 0,0, 0,0,
43,95, 47,66, 0,0, 47,66,
43,95, 0,0, 47,98, 47,98,
47,98, 47,98, 47,98, 47,98,
47,98, 47,98, 47,98, 47,98,
50,100, 0,0, 50,100, 0,0,
0,0, 50,101, 50,101, 50,101,
50,101, 50,101, 50,101, 50,101,
50,101, 50,101, 50,101, 52,52,
43,97, 0,0, 0,0, 43,95,
55,66, 0,0, 55,66, 52,52,
52,0, 55,103, 55,103, 55,103,
55,103, 55,103, 55,103, 55,103,
55,103, 55,103, 55,103, 67,68,
67,68, 67,68, 67,68, 67,68,
67,68, 67,68, 67,68, 67,68,
67,68, 0,0, 0,0, 0,0,
52,52, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 52,52, 0,0, 52,52,
0,0, 0,0, 52,52, 52,52,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 52,52, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 52,52,
0,0, 0,0, 52,52, 52,52,
52,52, 52,52, 0,0, 0,0,
0,0, 0,0, 52,52, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 52,52, 0,0, 0,0,
0,0, 0,0, 52,52, 0,0,
0,0, 53,44, 52,52, 53,53,
53,53, 53,53, 53,53, 53,53,
53,53, 53,53, 53,53, 53,53,
53,53, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
53,54, 53,54, 53,54, 53,54,
53,55, 53,54, 0,0, 0,0,
0,0, 0,0, 0,0, 53,102,
0,0, 52,52, 0,0, 0,0,
0,0, 0,0, 53,57, 100,101,
100,101, 100,101, 100,101, 100,101,
100,101, 100,101, 100,101, 100,101,
100,101, 0,0, 0,0, 0,0,
53,54, 53,54, 53,54, 53,54,
53,55, 53,54, 0,0, 0,0,
0,0, 0,0, 0,0, 53,102,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 53,57, 54,54,
54,54, 54,54, 54,54, 54,54,
54,54, 54,54, 54,54, 54,54,
54,54, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
54,54, 54,54, 54,54, 54,54,
54,54, 54,54, 139,171, 0,0,
0,0, 0,0, 0,0, 54,102,
0,0, 0,0, 0,0, 139,172,
139,172, 139,172, 139,172, 139,172,
139,172, 139,172, 139,172, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
54,54, 54,54, 54,54, 54,54,
54,54, 54,54, 0,0, 0,0,
0,0, 0,0, 0,0, 54,102,
58,104, 58,104, 58,104, 58,104,
58,104, 58,104, 58,104, 58,104,
58,104, 58,104, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 58,104, 58,104, 58,104,
58,104, 58,104, 58,104, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 68,68,
68,68, 68,68, 68,68, 68,68,
68,68, 68,68, 68,68, 68,68,
68,68, 0,0, 0,0, 0,0,
0,0, 58,104, 58,104, 58,104,
58,104, 58,104, 58,104, 68,111,
0,0, 68,112, 0,0, 0,0,
0,0, 0,0, 0,0, 68,111,
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, 68,111,
97,137, 68,112, 0,0, 0,0,
0,0, 0,0, 0,0, 68,111,
0,0, 97,140, 97,140, 97,140,
97,140, 97,140, 97,140, 97,140,
97,140, 97,140, 97,140, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 97,140, 97,140,
97,140, 97,140, 97,140, 97,140,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
103,103, 103,103, 103,103, 103,103,
103,103, 103,103, 103,103, 103,103,
103,103, 103,103, 0,0, 0,0,
0,0, 0,0, 97,140, 97,140,
97,140, 97,140, 97,140, 97,140,
103,142, 0,0, 103,143, 0,0,
0,0, 0,0, 0,0, 0,0,
103,144, 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,
103,142, 140,173, 103,143, 0,0,
0,0, 0,0, 0,0, 0,0,
103,144, 0,0, 140,174, 140,174,
140,174, 140,174, 140,174, 140,174,
140,174, 140,174, 140,174, 140,174,
0,0, 0,0, 0,0, 0,0,
0,0, 199,210, 0,0, 140,174,
140,174, 140,174, 140,174, 140,174,
140,174, 199,210, 199,210, 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, 199,210, 140,174,
140,174, 140,174, 140,174, 140,174,
140,174, 0,0, 0,0, 199,210,
0,0, 199,211, 0,0, 0,0,
199,211, 199,211, 0,0, 0,0,
0,0, 0,0, 0,0, 210,210,
199,211, 0,0, 210,210, 210,210,
0,0, 0,0, 0,0, 0,0,
0,0, 199,211, 210,210, 0,0,
199,211, 199,211, 199,211, 199,211,
0,0, 0,0, 0,0, 210,210,
199,211, 0,0, 210,210, 210,210,
210,210, 210,210, 0,0, 199,211,
0,0, 0,0, 210,210, 0,0,
199,211, 0,0, 0,0, 0,0,
199,210, 210,210, 0,0, 0,0,
0,0, 0,0, 210,210, 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, 199,0,
0,0, 0,0, 0,0, 0,0,
0,0, 0,0, 0,0, 0,0,
0,0, 210,0, 0,0, 0,0,
0,0};
struct yysvf yysvec[] = {
0, 0, 0,
yycrank+-1, 0, 0,
yycrank+-66, yysvec+1, 0,
yycrank+0, 0, yyvstop+1,
yycrank+4, 0, yyvstop+3,
yycrank+0, 0, yyvstop+6,
yycrank+-144, 0, yyvstop+8,
yycrank+-185, 0, yyvstop+10,
yycrank+230, 0, yyvstop+12,
yycrank+2, yysvec+8, yyvstop+14,
yycrank+241, 0, yyvstop+16,
yycrank+4, 0, yyvstop+19,
yycrank+270, 0, yyvstop+21,
yycrank+12, yysvec+8, yyvstop+24,
yycrank+343, 0, yyvstop+27,
yycrank+2, yysvec+14, yyvstop+30,
yycrank+3, yysvec+14, yyvstop+33,
yycrank+17, yysvec+14, yyvstop+36,
yycrank+423, yysvec+14, yyvstop+39,
yycrank+2, yysvec+14, yyvstop+42,
yycrank+7, yysvec+14, yyvstop+45,
yycrank+2, yysvec+14, yyvstop+48,
yycrank+7, yysvec+14, yyvstop+51,
yycrank+4, yysvec+14, yyvstop+54,
yycrank+20, yysvec+14, yyvstop+57,
yycrank+16, yysvec+14, yyvstop+60,
yycrank+32, yysvec+14, yyvstop+63,
yycrank+2, yysvec+14, yyvstop+66,
yycrank+3, yysvec+14, yyvstop+69,
yycrank+24, yysvec+14, yyvstop+72,
yycrank+6, yysvec+14, yyvstop+75,
yycrank+12, yysvec+14, yyvstop+78,
yycrank+14, yysvec+14, yyvstop+81,
yycrank+7, yysvec+14, yyvstop+84,
yycrank+25, yysvec+14, yyvstop+87,
yycrank+26, yysvec+14, yyvstop+90,
yycrank+21, yysvec+14, yyvstop+93,
yycrank+5, yysvec+14, yyvstop+96,
yycrank+0, yysvec+4, yyvstop+99,
yycrank+0, yysvec+6, 0,
yycrank+0, 0, yyvstop+101,
yycrank+-3, yysvec+6, 0,
yycrank+2, 0, 0,
yycrank+-480, 0, 0,
yycrank+0, yysvec+10, yyvstop+103,
yycrank+443, yysvec+8, 0,
yycrank+114, yysvec+8, yyvstop+105,
yycrank+526, 0, 0,
yycrank+37, 0, 0,
yycrank+0, 0, yyvstop+107,
yycrank+541, 0, 0,
yycrank+0, 0, yyvstop+109,
yycrank+-598, 0, yyvstop+111,
yycrank+643, 0, yyvstop+113,
yycrank+711, 0, yyvstop+115,
yycrank+561, yysvec+54, yyvstop+117,
yycrank+0, 0, yyvstop+119,
yycrank+0, 0, yyvstop+121,
yycrank+772, 0, 0,
yycrank+0, yysvec+14, yyvstop+123,
yycrank+14, yysvec+14, yyvstop+125,
yycrank+71, yysvec+14, yyvstop+127,
yycrank+53, yysvec+14, yyvstop+129,
yycrank+61, yysvec+14, yyvstop+131,
yycrank+55, yysvec+14, yyvstop+133,
yycrank+24, yysvec+14, yyvstop+135,
yycrank+453, 0, 0,
yycrank+571, yysvec+14, yyvstop+137,
yycrank+807, yysvec+14, yyvstop+139,
yycrank+63, yysvec+14, yyvstop+142,
yycrank+32, yysvec+14, yyvstop+144,
yycrank+62, yysvec+14, yyvstop+146,
yycrank+45, yysvec+14, yyvstop+148,
yycrank+71, yysvec+14, yyvstop+150,
yycrank+66, yysvec+14, yyvstop+152,
yycrank+77, yysvec+14, yyvstop+154,
yycrank+91, yysvec+14, yyvstop+156,
yycrank+78, yysvec+14, yyvstop+158,
yycrank+82, yysvec+14, yyvstop+160,
yycrank+77, yysvec+14, yyvstop+162,
yycrank+44, yysvec+14, yyvstop+164,
yycrank+64, yysvec+14, yyvstop+166,
yycrank+47, yysvec+14, yyvstop+168,
yycrank+58, yysvec+14, yyvstop+170,
yycrank+52, yysvec+14, yyvstop+172,
yycrank+59, yysvec+14, yyvstop+174,
yycrank+56, yysvec+14, yyvstop+176,
yycrank+63, yysvec+14, yyvstop+178,
yycrank+59, yysvec+14, yyvstop+180,
yycrank+80, yysvec+14, yyvstop+182,
yycrank+68, yysvec+14, yyvstop+184,
yycrank+74, yysvec+14, yyvstop+186,
yycrank+71, yysvec+14, yyvstop+188,
yycrank+0, yysvec+6, yyvstop+190,
yycrank+0, 0, yyvstop+192,
yycrank+3, 0, 0,
yycrank+311, 0, 0,
yycrank+869, 0, 0,
yycrank+135, yysvec+66, yyvstop+194,
yycrank+110, 0, 0,
yycrank+679, 0, 0,
yycrank+140, yysvec+100, yyvstop+196,
yycrank+0, 0, yyvstop+198,
yycrank+904, yysvec+54, yyvstop+200,
yycrank+123, yysvec+58, yyvstop+203,
yycrank+122, yysvec+14, yyvstop+205,
yycrank+114, yysvec+14, yyvstop+207,
yycrank+133, yysvec+14, yyvstop+209,
yycrank+132, yysvec+14, yyvstop+211,
yycrank+136, yysvec+14, yyvstop+213,
yycrank+106, yysvec+14, yyvstop+215,
yycrank+0, yysvec+14, yyvstop+217,
yycrank+0, yysvec+14, yyvstop+220,
yycrank+142, yysvec+14, yyvstop+223,
yycrank+120, yysvec+14, yyvstop+225,
yycrank+149, yysvec+14, yyvstop+227,
yycrank+116, yysvec+14, yyvstop+230,
yycrank+152, yysvec+14, yyvstop+233,
yycrank+157, yysvec+14, yyvstop+235,
yycrank+0, yysvec+14, yyvstop+237,
yycrank+149, yysvec+14, yyvstop+240,
yycrank+144, yysvec+14, yyvstop+242,
yycrank+166, yysvec+14, yyvstop+244,
yycrank+171, yysvec+14, yyvstop+246,
yycrank+144, yysvec+14, yyvstop+248,
yycrank+132, yysvec+14, yyvstop+250,
yycrank+150, yysvec+14, yyvstop+252,
yycrank+148, yysvec+14, yyvstop+254,
yycrank+153, yysvec+14, yyvstop+256,
yycrank+155, yysvec+14, yyvstop+258,
yycrank+156, yysvec+14, yyvstop+260,
yycrank+155, yysvec+14, yyvstop+263,
yycrank+202, yysvec+14, yyvstop+265,
yycrank+151, yysvec+14, yyvstop+267,
yycrank+146, yysvec+14, yyvstop+269,
yycrank+157, yysvec+14, yyvstop+271,
yycrank+158, yysvec+14, yyvstop+273,
yycrank+0, 0, yyvstop+275,
yycrank+0, 0, yyvstop+277,
yycrank+743, 0, 0,
yycrank+966, 0, 0,
yycrank+0, 0, yyvstop+280,
yycrank+0, yysvec+54, yyvstop+282,
yycrank+0, yysvec+54, yyvstop+285,
yycrank+0, 0, yyvstop+288,
yycrank+0, yysvec+14, yyvstop+291,
yycrank+0, yysvec+14, yyvstop+294,
yycrank+206, yysvec+14, yyvstop+297,
yycrank+187, yysvec+14, yyvstop+299,
yycrank+190, yysvec+14, yyvstop+301,
yycrank+162, yysvec+14, yyvstop+303,
yycrank+187, yysvec+14, yyvstop+305,
yycrank+156, yysvec+14, yyvstop+307,
yycrank+203, yysvec+14, yyvstop+309,
yycrank+165, yysvec+14, yyvstop+311,
yycrank+0, yysvec+14, yyvstop+313,
yycrank+220, yysvec+14, yyvstop+316,
yycrank+0, yysvec+14, yyvstop+318,
yycrank+216, yysvec+14, yyvstop+321,
yycrank+225, yysvec+14, yyvstop+323,
yycrank+238, yysvec+14, yyvstop+325,
yycrank+246, yysvec+14, yyvstop+327,
yycrank+195, yysvec+14, yyvstop+329,
yycrank+198, yysvec+14, yyvstop+331,
yycrank+191, yysvec+14, yyvstop+333,
yycrank+209, yysvec+14, yyvstop+335,
yycrank+245, yysvec+14, yyvstop+337,
yycrank+214, yysvec+14, yyvstop+339,
yycrank+199, yysvec+14, yyvstop+341,
yycrank+219, yysvec+14, yyvstop+343,
yycrank+232, yysvec+14, yyvstop+345,
yycrank+0, 0, yyvstop+347,
yycrank+291, 0, 0,
yycrank+0, 0, yyvstop+349,
yycrank+293, 0, 0,
yycrank+0, 0, yyvstop+351,
yycrank+250, yysvec+14, yyvstop+353,
yycrank+265, yysvec+14, yyvstop+355,
yycrank+243, yysvec+14, yyvstop+357,
yycrank+272, yysvec+14, yyvstop+359,
yycrank+278, yysvec+14, yyvstop+361,
yycrank+243, yysvec+14, yyvstop+363,
yycrank+281, yysvec+14, yyvstop+365,
yycrank+0, yysvec+14, yyvstop+367,
yycrank+279, yysvec+14, yyvstop+370,
yycrank+288, yysvec+14, yyvstop+372,
yycrank+240, yysvec+14, yyvstop+374,
yycrank+255, yysvec+14, yyvstop+376,
yycrank+256, yysvec+14, yyvstop+378,
yycrank+303, yysvec+14, yyvstop+380,
yycrank+272, yysvec+14, yyvstop+382,
yycrank+270, yysvec+14, yyvstop+384,
yycrank+278, yysvec+14, yyvstop+386,
yycrank+304, yysvec+14, yyvstop+388,
yycrank+0, yysvec+14, yyvstop+390,
yycrank+306, yysvec+14, yyvstop+393,
yycrank+270, yysvec+14, yyvstop+395,
yycrank+299, yysvec+14, yyvstop+397,
yycrank+266, yysvec+14, yyvstop+399,
yycrank+-1028, 0, yyvstop+401,
yycrank+299, yysvec+14, yyvstop+403,
yycrank+308, yysvec+14, yyvstop+405,
yycrank+281, yysvec+14, yyvstop+407,
yycrank+273, yysvec+14, yyvstop+409,
yycrank+273, yysvec+14, yyvstop+411,
yycrank+293, yysvec+14, yyvstop+413,
yycrank+323, yysvec+14, yyvstop+415,
yycrank+293, yysvec+14, yyvstop+417,
yycrank+302, yysvec+14, yyvstop+419,
yycrank+284, yysvec+14, yyvstop+421,
yycrank+-1038, yysvec+199, yyvstop+423,
yycrank+-283, yysvec+199, yyvstop+425,
yycrank+338, yysvec+14, yyvstop+428,
yycrank+365, yysvec+14, yyvstop+430,
yycrank+324, yysvec+14, yyvstop+432,
yycrank+335, yysvec+14, yyvstop+434,
yycrank+336, yysvec+14, yyvstop+436,
yycrank+361, yysvec+14, yyvstop+438,
yycrank+365, yysvec+14, yyvstop+440,
yycrank+0, yysvec+14, yyvstop+442,
yycrank+401, yysvec+14, yyvstop+445,
yycrank+387, yysvec+14, yyvstop+447,
yycrank+372, yysvec+14, yyvstop+449,
yycrank+383, yysvec+14, yyvstop+451,
yycrank+369, yysvec+14, yyvstop+453,
yycrank+402, yysvec+14, yyvstop+455,
yycrank+0, yysvec+14, yyvstop+457,
yycrank+428, yysvec+14, yyvstop+460,
yycrank+372, yysvec+14, yyvstop+462,
yycrank+430, yysvec+14, yyvstop+464,
yycrank+433, yysvec+14, yyvstop+466,
yycrank+0, 0, yyvstop+468,
yycrank+453, yysvec+14, yyvstop+470,
yycrank+0, 0, yyvstop+472,
0, 0, 0};
struct yywork *yytop = yycrank+1161;
struct yysvf *yybgin = yysvec+1;
char yymatch[] = {
00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,011 ,012 ,01 ,011 ,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' ,'1' ,'1' ,'1' ,'1' ,'1' ,'1' ,'1' ,
'8' ,'8' ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,'A' ,'A' ,'A' ,'D' ,'E' ,'F' ,'G' ,
'G' ,'G' ,'G' ,'G' ,'L' ,'G' ,'G' ,'G' ,
'G' ,'G' ,'G' ,'S' ,'G' ,'G' ,'G' ,'G' ,
'X' ,'G' ,'G' ,01 ,0134,01 ,01 ,'G' ,
01 ,'A' ,'A' ,'A' ,'D' ,'E' ,'F' ,'G' ,
'G' ,'G' ,'G' ,'G' ,'L' ,'G' ,'G' ,'G' ,
'G' ,'G' ,'G' ,'S' ,'G' ,'G' ,'G' ,'G' ,
'X' ,'G' ,'G' ,'{' ,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};
/* Copyright (c) 1989 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
#ident "@(#)ncform 6.4 92/06/19 SMI"
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();
if(yylastch > &yytext[YYLMAX]) {
fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
exit(1);
}
yyfirst=0;
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;
if(lsp > &yylstate[YYLMAX]) {
fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
exit(1);
}
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;
if(lsp > &yylstate[YYLMAX]) {
fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
exit(1);
}
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;
if(lsp > &yylstate[YYLMAX]) {
fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
exit(1);
}
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
}
}
#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);
}
syntax highlighted by Code2HTML, v. 0.9.1