2 static int start_cond = 0;
3 #define BEGIN start_cond =
5 struct yywork *yystoff;
10 static char ident[] = "@(#)$Id: dtimep.lex,v 2.15 1993/02/26 22:07:40 jromine Exp $";
13 #include "../h/strings.h"
15 #include <sys/types.h>
16 #if !defined(SYS5) && !defined(ZONEINFO)
17 #include <sys/timeb.h>
18 #endif /* !defined(SYS5) && !defined(ZONEINFO) */
23 extern char *tzname[];
27 # line 54 "dtimep.lex"
29 * Patchable flag that says how to interpret NN/NN/NN dates. When
30 * true, we do it European style: DD/MM/YY. When false, we do it
31 * American style: MM/DD/YY. Of course, these are all non-RFC822
37 # line 62 "dtimep.lex"
39 * Table to convert month names to numeric month. We use the
40 * fact that the low order 5 bits of the sum of the 2nd & 3rd
41 * characters of the name is a hash with no collisions for the 12
42 * valid month names. (The mask to 5 bits maps any combination of
43 * upper and lower case into the same hash value).
45 static int month_map[] = {
77 # line 100 "dtimep.lex"
79 * Same trick for day-of-week using the hash function
82 static int day_map[] = {
96 #define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\
97 tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\
99 #define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\
102 #define CVT1OR2 (i=(*cp++ - '0'), isdigit(*cp)? i*10 + (*cp++ - '0') : i)
103 #define CVT2 ((cp[0] - '0')*10 + (cp[1] - '0'))
104 #define CVT4 ((((cp[0] - '0')*10 + (cp[1] - '0'))*10 + \
105 (cp[2] - '0'))*10 + (cp[3] - '0'))
106 #define SKIPD { while ( !isdigit(*cp++) ) ; --cp; }
107 #define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; }
108 #define ZONE(x) { tw.tw_zone=(x); EXPZONE; }
109 #define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; }
110 #define LC(c) (isupper (c) ? tolower (c) : (c))
114 #include <sys/time.h>
120 #include <sys/time.h>
125 register struct tws *tw;
127 register struct tm *tm;
129 if (twclock (tw) == -1L)
132 tm = localtime (&tw -> tw_clock);
133 if (tm -> tm_isdst) {
134 tw -> tw_flags |= TW_DST;
139 struct tws *dparsetime (str)
143 static struct tws tw;
145 register int gotdate = 0;
152 #endif /* ZONEINFO */
153 #endif /* not SYS5 */
158 /* Zero out the struct. */
159 bzero( (char *) &tw, sizeof tw);
161 /* Set default time zone. */
164 tw.tw_zone = -(timezone / 60);
168 tm = localtime(&clock);
169 tw.tw_zone = tm->tm_gmtoff / 60;
170 if (tm -> tm_isdst) /* if DST is in effect */
171 tw.tw_zone -= 60; /* reset to normal offset */
174 tw.tw_zone = -tb.timezone;
175 #endif /* ZONEINFO */
178 while (isspace(*str))
181 switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) {
184 if (!gotdate || tw.tw_year == 0)
185 return (struct tws *)0;
188 if ( tw.tw_year == 0 ) {
189 /* Set default year. */
191 tw.tw_year = localtime(&tclock)->tm_year + 1900;
193 else if (tw.tw_year < 100) {
194 /* assume no 2-digit years > 1999 */
201 # line 224 "dtimep.lex"
206 # line 225 "dtimep.lex"
214 # line 229 "dtimep.lex"
217 /* European: DD/MM/YY */
218 tw.tw_mday = CVT1OR2;
220 tw.tw_mon = CVT1OR2 - 1;
222 /* American: MM/DD/YY */
223 tw.tw_mon = CVT1OR2 - 1;
225 tw.tw_mday = CVT1OR2;
228 for (i = 0; isdigit(*cp); )
229 i = i*10 + (*cp++ - '0');
236 # line 247 "dtimep.lex"
239 tw.tw_mday = CVT1OR2; cp++;
240 tw.tw_mon = CVT1OR2 - 1;
242 tw.tw_mon = CVT1OR2 - 1; cp++;
243 tw.tw_mday = CVT1OR2;
250 # line 257 "dtimep.lex"
252 tw.tw_mday = CVT1OR2;
253 while ( !isalpha(*cp++) )
256 for (i = 0; isdigit(*cp); )
257 i = i*10 + (*cp++ - '0');
263 # line 266 "dtimep.lex"
265 tw.tw_mday = CVT1OR2;
266 while ( ! isalpha( *cp++ ) )
273 # line 272 "dtimep.lex"
277 tw.tw_mday = CVT1OR2;
279 for (i = 0; isdigit(*cp); )
280 i = i*10 + (*cp++ - '0');
286 # line 281 "dtimep.lex"
290 tw.tw_mday = CVT1OR2;
295 # line 287 "dtimep.lex"
296 { /* hack: ctime w/o TZ */
297 tw.tw_hour = CVT1OR2; cp++;
298 tw.tw_min = CVT1OR2; cp++;
301 tw.tw_year = CVT4; cp+=4;
306 # line 294 "dtimep.lex"
308 tw.tw_hour = CVT1OR2; cp++;
309 tw.tw_min = CVT1OR2; cp++;
316 # line 300 "dtimep.lex"
318 tw.tw_hour = CVT1OR2; cp++;
325 # line 305 "dtimep.lex"
327 tw.tw_hour = CVT1OR2; cp++;
328 if (tw.tw_hour == 12)
336 # line 312 "dtimep.lex"
338 tw.tw_hour = CVT1OR2; cp++;
339 if (tw.tw_hour == 12)
341 tw.tw_min = CVT1OR2; cp++;
348 # line 320 "dtimep.lex"
350 tw.tw_hour = CVT1OR2; cp++;
351 if (tw.tw_hour != 12)
359 # line 327 "dtimep.lex"
361 tw.tw_hour = CVT1OR2; cp++;
362 if (tw.tw_hour != 12)
364 tw.tw_min = CVT1OR2; cp++;
371 # line 335 "dtimep.lex"
373 tw.tw_hour = CVT2; cp+=2;
374 tw.tw_min = CVT2; cp+=2;
375 tw.tw_sec = CVT2; cp+=2;
381 # line 341 "dtimep.lex"
384 * Luckly, 4 digit times in the range
385 * 1960-1999 aren't legal as hour
388 tw.tw_year = CVT4; cp+=4;
393 # line 349 "dtimep.lex"
395 if (tw.tw_hour || tw.tw_min
397 tw.tw_year = CVT4; cp+=4;
400 tw.tw_hour = CVT2; cp+=2;
401 tw.tw_min = CVT2; cp+=2;
408 # line 360 "dtimep.lex"
413 # line 361 "dtimep.lex"
418 # line 362 "dtimep.lex"
423 # line 363 "dtimep.lex"
428 # line 364 "dtimep.lex"
433 # line 365 "dtimep.lex"
438 # line 366 "dtimep.lex"
443 # line 367 "dtimep.lex"
448 # line 368 "dtimep.lex"
453 # line 369 "dtimep.lex"
458 # line 370 "dtimep.lex"
463 # line 371 "dtimep.lex"
468 # line 372 "dtimep.lex"
469 ZONE(-(3 * 60 + 30));
473 # line 373 "dtimep.lex"
478 # line 374 "dtimep.lex"
483 # line 375 "dtimep.lex"
488 # line 376 "dtimep.lex"
493 # line 377 "dtimep.lex"
498 # line 378 "dtimep.lex"
503 # line 379 "dtimep.lex"
508 # line 380 "dtimep.lex"
510 tw.tw_zone = 60 * (('a'-1) - LC(*cp));
516 # line 384 "dtimep.lex"
518 tw.tw_zone = 60 * ('a' - LC(*cp));
524 # line 388 "dtimep.lex"
526 tw.tw_zone = 60 * (LC(*cp) - 'm');
532 # line 392 "dtimep.lex"
535 tw.tw_zone = ((cp[0] * 10 + cp[1])
536 -('0' * 10 + '0'))*60
537 +((cp[2] * 10 + cp[3])
548 # line 404 "dtimep.lex"
551 tw.tw_zone = (('0' * 10 + '0')
552 -(cp[0] * 10 + cp[1]))*60
554 -(cp[2] * 10 + cp[3]));
564 # line 416 "dtimep.lex"
567 tw.tw_year = CVT4; cp+=4;
572 # line 420 "dtimep.lex"
575 # line 421 "dtimep.lex"
905 struct yywork { YYTYPE verify, advance; } yycrank[] = {
919 1,10, 1,10, 1,10, 1,10,
920 1,10, 1,10, 1,10, 3,21,
921 9,63, 22,83, 22,83, 0,0,
925 3,9, 3,8, 3,10, 3,10,
926 3,10, 3,10, 3,10, 3,10,
927 3,10, 10,64, 10,64, 10,64,
928 10,64, 10,64, 10,64, 10,64,
929 10,64, 10,64, 10,64, 0,0,
930 0,0, 0,0, 1,11, 15,72,
931 59,143, 1,12, 14,70, 1,13,
932 12,67, 13,68, 17,75, 1,14,
933 19,79, 20,81, 1,15, 1,16,
934 1,17, 15,73, 11,65, 16,74,
935 1,18, 1,19, 13,69, 11,66,
936 1,20, 19,80, 14,71, 25,99,
937 3,24, 3,25, 3,26, 3,27,
938 3,28, 3,29, 3,30, 3,31,
939 3,32, 3,33, 3,34, 3,34,
940 3,35, 3,36, 3,37, 3,38,
941 3,39, 3,39, 3,40, 3,41,
942 3,42, 3,39, 3,43, 3,39,
943 3,44, 7,45, 8,50, 18,76,
944 26,100, 28,102, 30,104, 18,77,
945 7,46, 24,97, 42,114, 45,117,
946 31,105, 21,21, 7,47, 7,48,
947 23,84, 23,84, 7,49, 26,101,
948 28,103, 24,65, 38,112, 18,78,
949 24,98, 8,50, 24,66, 31,106,
950 36,74, 46,118, 49,123, 56,139,
951 36,111, 57,140, 55,137, 60,144,
952 21,21, 38,113, 8,51, 55,138,
953 8,52, 8,53, 8,53, 8,53,
954 8,53, 8,53, 8,53, 8,53,
955 8,53, 8,53, 8,53, 8,54,
956 21,82, 21,82, 21,82, 21,82,
957 21,82, 21,82, 21,82, 21,82,
958 21,82, 21,82, 47,119, 61,145,
959 62,146, 23,85, 23,86, 23,87,
960 44,115, 23,88, 35,72, 23,89,
961 23,90, 35,109, 23,91, 50,50,
962 33,70, 23,92, 23,93, 33,107,
963 23,94, 58,141, 47,120, 44,116,
964 35,73, 23,95, 65,148, 48,121,
965 35,110, 23,96, 8,55, 51,124,
966 66,149, 8,56, 33,108, 8,57,
967 33,71, 67,150, 50,50, 8,58,
968 48,122, 58,142, 8,59, 8,60,
969 8,61, 68,151, 69,152, 70,153,
970 8,62, 73,158, 71,154, 50,124,
971 71,155, 74,159, 51,124, 52,134,
972 52,134, 52,134, 52,134, 52,134,
973 52,134, 52,134, 52,134, 52,134,
974 52,134, 75,160, 76,161, 77,162,
975 78,163, 79,164, 51,133, 51,133,
976 51,133, 51,133, 51,133, 51,133,
977 51,133, 51,133, 51,133, 51,133,
978 53,135, 53,135, 53,135, 53,135,
979 53,135, 53,135, 53,135, 53,135,
980 53,135, 53,135, 54,136, 54,136,
981 54,136, 54,136, 54,136, 54,136,
982 54,136, 54,136, 54,136, 54,136,
983 72,156, 80,165, 81,166, 50,125,
984 93,111, 85,97, 50,126, 72,157,
985 50,127, 97,170, 91,107, 92,109,
986 50,128, 64,50, 98,171, 50,129,
987 50,130, 50,131, 99,172, 51,55,
988 85,98, 50,132, 51,56, 100,173,
989 51,57, 91,108, 92,110, 101,174,
990 51,58, 102,175, 103,176, 51,59,
991 51,60, 51,61, 104,177, 105,178,
992 64,50, 51,62, 63,135, 63,135,
993 63,135, 63,135, 63,135, 63,135,
994 63,147, 63,147, 63,147, 63,147,
995 106,179, 64,51, 107,180, 64,52,
996 82,167, 82,167, 82,167, 82,167,
997 82,167, 82,167, 82,167, 82,167,
998 82,167, 82,167, 64,54, 83,168,
999 83,168, 83,168, 83,168, 83,168,
1000 83,168, 83,168, 83,168, 83,168,
1001 83,168, 84,169, 84,169, 84,169,
1002 84,169, 84,169, 84,169, 84,169,
1003 84,169, 84,169, 84,169, 108,181,
1004 109,182, 110,183, 111,184, 112,185,
1005 113,186, 115,187, 116,188, 117,189,
1006 118,190, 119,191, 120,192, 121,193,
1007 122,194, 123,195, 124,124, 126,198,
1008 125,196, 64,55, 127,199, 128,200,
1009 64,56, 125,197, 64,57, 129,202,
1010 130,203, 131,204, 64,58, 132,205,
1011 133,206, 64,59, 64,60, 64,61,
1012 137,216, 138,217, 139,218, 64,62,
1013 140,219, 124,124, 141,220, 128,201,
1014 134,206, 135,210, 135,210, 135,210,
1015 135,210, 135,210, 135,210, 135,210,
1016 135,210, 135,210, 135,210, 133,206,
1017 142,221, 143,223, 142,222, 144,225,
1018 145,226, 146,227, 153,236, 155,157,
1019 143,224, 158,238, 159,239, 134,206,
1020 133,207, 160,240, 162,242, 133,208,
1021 133,208, 133,208, 133,208, 133,208,
1022 133,208, 133,208, 133,208, 133,208,
1023 133,208, 148,229, 134,207, 134,209,
1024 134,209, 134,209, 134,209, 134,209,
1025 134,209, 134,209, 134,209, 134,209,
1026 134,209, 136,211, 147,228, 147,228,
1027 147,228, 147,228, 147,228, 147,228,
1028 147,228, 147,228, 147,228, 147,228,
1029 148,229, 149,229, 124,125, 150,229,
1030 154,229, 124,126, 163,243, 124,127,
1031 190,252, 192,254, 196,258, 124,128,
1032 136,211, 191,250, 124,129, 124,130,
1033 124,131, 151,229, 156,229, 152,234,
1034 124,132, 157,229, 161,234, 164,234,
1035 149,229, 165,234, 150,229, 154,229,
1036 136,212, 136,212, 136,212, 136,212,
1037 136,212, 136,212, 136,212, 136,212,
1038 136,212, 136,212, 136,213, 166,234,
1039 151,229, 156,229, 152,234, 194,250,
1040 157,229, 161,234, 164,234, 189,250,
1041 165,234, 195,250, 193,250, 197,259,
1042 198,260, 199,261, 152,234, 200,262,
1043 203,267, 161,234, 164,234, 201,263,
1044 165,234, 201,264, 166,234, 167,247,
1045 167,247, 167,247, 167,247, 167,247,
1046 167,247, 167,247, 167,247, 167,247,
1047 167,247, 148,230, 166,234, 204,268,
1048 205,269, 136,214, 168,248, 168,248,
1049 168,248, 168,248, 168,248, 168,248,
1050 168,248, 168,248, 168,248, 168,248,
1051 206,206, 191,253, 208,207, 209,207,
1052 136,215, 212,213, 214,274, 150,232,
1053 169,249, 169,249, 169,249, 169,249,
1054 169,249, 169,249, 169,249, 169,249,
1055 169,249, 169,249, 189,251, 202,265,
1056 156,237, 149,231, 152,235, 206,206,
1057 210,271, 211,211, 202,266, 215,275,
1058 154,157, 194,256, 195,257, 220,283,
1059 222,224, 225,285, 151,233, 193,255,
1060 226,286, 227,287, 230,157, 231,290,
1061 164,244, 232,291, 161,241, 165,245,
1062 233,292, 235,293, 236,294, 210,271,
1063 211,211, 237,157, 238,295, 239,296,
1064 166,246, 207,270, 207,270, 207,270,
1065 207,270, 207,270, 207,270, 207,270,
1066 207,270, 207,270, 207,270, 210,272,
1067 210,272, 210,272, 210,272, 210,272,
1068 210,272, 210,272, 210,272, 210,272,
1069 210,272, 213,273, 213,273, 213,273,
1070 213,273, 213,273, 213,273, 213,273,
1071 213,273, 213,273, 213,273, 240,297,
1072 228,288, 234,234, 241,298, 242,299,
1073 243,300, 244,301, 245,302, 216,276,
1074 246,303, 247,304, 247,304, 247,304,
1075 247,304, 247,304, 247,304, 247,304,
1076 247,304, 247,304, 247,304, 250,307,
1077 251,308, 252,309, 217,276, 228,288,
1078 234,234, 253,310, 254,311, 255,312,
1079 256,313, 211,214, 216,276, 257,314,
1080 276,330, 258,266, 260,266, 279,224,
1081 218,276, 265,266, 280,332, 281,333,
1082 282,334, 283,335, 284,224, 216,277,
1083 211,215, 217,276, 216,278, 216,278,
1084 216,278, 216,278, 216,278, 216,278,
1085 216,278, 216,278, 216,278, 216,278,
1086 258,266, 260,266, 217,277, 218,276,
1087 265,266, 217,278, 217,278, 217,278,
1088 217,278, 217,278, 217,278, 217,278,
1089 217,278, 217,278, 217,278, 219,276,
1090 218,277, 259,266, 285,336, 218,278,
1091 218,278, 218,278, 218,278, 218,278,
1092 218,278, 218,278, 218,278, 218,278,
1093 218,278, 264,266, 263,266, 286,337,
1094 287,338, 290,157, 291,342, 292,343,
1095 293,344, 294,345, 219,276, 296,346,
1096 259,266, 221,276, 266,266, 271,271,
1097 297,347, 274,274, 262,266, 216,279,
1098 298,348, 299,349, 301,350, 219,277,
1099 264,266, 263,266, 219,278, 219,278,
1100 219,278, 219,278, 219,278, 219,278,
1101 219,278, 219,278, 219,278, 219,278,
1102 221,276, 266,266, 271,271, 223,276,
1103 274,274, 262,266, 260,317, 265,320,
1104 218,281, 258,315, 217,280, 261,266,
1105 268,266, 221,277, 269,266, 275,275,
1106 221,278, 221,278, 221,278, 221,278,
1107 221,278, 221,278, 221,278, 221,278,
1108 221,278, 221,278, 223,276, 302,351,
1109 303,352, 224,276, 267,266, 288,288,
1110 308,353, 310,354, 261,266, 268,266,
1111 312,355, 269,266, 275,275, 223,277,
1112 229,229, 313,356, 223,278, 223,278,
1113 223,278, 223,278, 223,278, 223,278,
1114 223,278, 223,278, 223,278, 223,278,
1115 224,276, 267,266, 288,288, 314,357,
1116 219,282, 264,266, 315,266, 316,358,
1117 317,359, 259,316, 318,360, 229,229,
1118 319,361, 224,277, 320,266, 321,362,
1119 224,278, 224,278, 224,278, 224,278,
1120 224,278, 224,278, 224,278, 224,278,
1121 224,278, 224,278, 263,266, 229,289,
1122 229,289, 229,289, 229,289, 229,289,
1123 229,289, 229,289, 229,289, 229,289,
1124 229,289, 221,224, 262,319, 322,363,
1125 323,364, 223,284, 248,305, 248,305,
1126 248,305, 248,305, 248,305, 248,305,
1127 248,305, 248,305, 248,305, 248,305,
1128 249,306, 249,306, 249,306, 249,306,
1129 249,306, 249,306, 249,306, 249,306,
1130 249,306, 249,306, 268,322, 328,368,
1131 261,318, 329,369, 330,370, 332,224,
1132 273,326, 269,323, 267,321, 270,324,
1133 270,324, 270,324, 270,324, 270,324,
1134 270,324, 270,324, 270,324, 270,324,
1135 270,324, 272,325, 272,325, 272,325,
1136 272,325, 272,325, 272,325, 272,325,
1137 272,325, 272,325, 272,325, 273,326,
1138 333,373, 334,374, 277,277, 278,331,
1139 278,331, 278,331, 278,331, 278,331,
1140 278,331, 278,331, 278,331, 278,331,
1141 278,331, 324,365, 325,325, 273,327,
1142 273,327, 273,327, 273,327, 273,327,
1143 273,327, 273,327, 273,327, 273,327,
1144 273,327, 277,277, 335,375, 336,376,
1145 289,339, 337,377, 338,378, 341,340,
1146 342,380, 343,381, 344,234, 345,157,
1147 324,365, 325,325, 346,382, 347,157,
1148 348,383, 277,278, 277,278, 277,278,
1149 277,278, 277,278, 277,278, 277,278,
1150 277,278, 277,278, 277,278, 289,339,
1151 324,366, 324,366, 324,366, 324,366,
1152 324,366, 324,366, 324,366, 324,366,
1153 324,366, 324,366, 326,326, 289,340,
1154 273,328, 327,326, 331,371, 289,341,
1155 289,341, 289,341, 289,341, 289,341,
1156 289,341, 289,341, 289,341, 289,341,
1157 289,341, 339,339, 340,379, 273,329,
1158 349,384, 350,385, 352,386, 353,250,
1159 354,387, 326,326, 355,388, 357,389,
1160 327,326, 331,371, 358,266, 359,390,
1161 360,391, 361,392, 362,393, 363,394,
1162 364,395, 365,365, 367,396, 373,399,
1163 339,339, 340,379, 326,367, 374,400,
1164 375,224, 331,372, 331,372, 331,372,
1165 331,372, 331,372, 331,372, 331,372,
1166 331,372, 331,372, 331,372, 368,368,
1167 369,369, 370,370, 371,371, 376,401,
1168 365,365, 366,365, 366,365, 366,365,
1169 366,365, 366,365, 366,365, 366,365,
1170 366,365, 366,365, 366,365, 377,224,
1171 378,402, 384,404, 386,405, 389,406,
1172 390,407, 391,408, 368,368, 369,369,
1173 370,370, 371,371, 392,266, 379,379,
1174 393,409, 394,266, 395,410, 397,412,
1175 402,413, 410,415, 326,328, 398,371,
1176 412,412, 327,328, 372,398, 372,398,
1177 372,398, 372,398, 372,398, 372,398,
1178 372,398, 372,398, 372,398, 372,398,
1179 0,0, 326,329, 379,379, 0,0,
1180 327,329, 396,411, 396,411, 396,411,
1181 396,411, 0,0, 398,371, 412,412,
1182 0,0, 0,0, 0,0, 414,417,
1183 417,417, 0,0, 379,403, 379,403,
1184 379,403, 379,403, 379,403, 379,403,
1185 379,403, 379,403, 379,403, 379,403,
1186 403,414, 403,414, 403,414, 403,414,
1187 403,414, 403,414, 403,414, 403,414,
1188 403,414, 403,414, 414,417, 417,417,
1189 0,0, 0,0, 371,397, 411,416,
1190 411,416, 411,416, 411,416, 411,416,
1191 411,416, 411,416, 411,416, 411,416,
1192 411,416, 0,0, 414,418, 414,418,
1193 414,418, 414,418, 414,418, 414,418,
1194 414,418, 414,418, 414,418, 414,418,
1195 418,417, 418,417, 418,417, 418,417,
1196 418,417, 418,417, 418,417, 418,417,
1197 418,417, 418,417, 0,0, 0,0,
1199 struct yysvf yysvec[] = {
1202 yycrank+0, yysvec+1, 0,
1204 yycrank+0, yysvec+3, 0,
1205 yycrank+3, 0, yyvstop+1,
1206 yycrank+0, 0, yyvstop+3,
1209 yycrank+3, yysvec+8, 0,
1210 yycrank+37, yysvec+8, 0,
1221 yycrank+152, 0, yyvstop+5,
1224 yycrank+57, 0, yyvstop+7,
1225 yycrank+8, 0, yyvstop+9,
1226 yycrank+52, 0, yyvstop+11,
1227 yycrank+0, yysvec+12, yyvstop+13,
1228 yycrank+53, 0, yyvstop+15,
1229 yycrank+0, yysvec+13, yyvstop+17,
1230 yycrank+45, 0, yyvstop+19,
1231 yycrank+60, 0, yyvstop+21,
1232 yycrank+0, 0, yyvstop+23,
1234 yycrank+0, 0, yyvstop+25,
1235 yycrank+121, 0, yyvstop+27,
1236 yycrank+65, 0, yyvstop+29,
1237 yycrank+0, yysvec+17, yyvstop+31,
1238 yycrank+70, 0, yyvstop+33,
1239 yycrank+0, 0, yyvstop+35,
1240 yycrank+0, yysvec+18, yyvstop+37,
1241 yycrank+0, yysvec+19, yyvstop+39,
1242 yycrank+42, 0, yyvstop+41,
1243 yycrank+0, yysvec+20, yyvstop+43,
1244 yycrank+116, 0, yyvstop+45,
1253 yycrank+240, yysvec+8, 0,
1263 yycrank+298, yysvec+8, 0,
1286 yycrank+0, yysvec+25, 0,
1287 yycrank+0, yysvec+26, 0,
1288 yycrank+0, yysvec+28, 0,
1289 yycrank+0, yysvec+30, 0,
1290 yycrank+0, yysvec+31, 0,
1294 yycrank+0, yysvec+38, 0,
1295 yycrank+0, yysvec+42, 0,
1296 yycrank+0, yysvec+44, 0,
1314 yycrank+0, 0, yyvstop+47,
1333 yycrank+411, 0, yyvstop+49,
1334 yycrank+423, 0, yyvstop+51,
1336 yycrank+472, 0, yyvstop+53,
1352 yycrank+502, 0, yyvstop+55,
1353 yycrank+333, yysvec+149, 0,
1355 yycrank+350, yysvec+150, 0,
1358 yycrank+353, yysvec+152, yyvstop+57,
1359 yycrank+353, yysvec+150, 0,
1360 yycrank+346, yysvec+157, 0,
1361 yycrank+505, 0, yyvstop+59,
1362 yycrank+342, yysvec+157, 0,
1363 yycrank+398, yysvec+152, yyvstop+61,
1364 yycrank+506, 0, yyvstop+63,
1365 yycrank+508, 0, yyvstop+65,
1366 yycrank+522, 0, yyvstop+67,
1370 yycrank+0, 0, yyvstop+69,
1371 yycrank+0, 0, yyvstop+71,
1372 yycrank+0, 0, yyvstop+73,
1373 yycrank+0, 0, yyvstop+75,
1374 yycrank+0, 0, yyvstop+77,
1375 yycrank+0, 0, yyvstop+79,
1376 yycrank+0, 0, yyvstop+81,
1377 yycrank+0, 0, yyvstop+83,
1378 yycrank+0, 0, yyvstop+85,
1379 yycrank+0, 0, yyvstop+87,
1380 yycrank+0, 0, yyvstop+89,
1381 yycrank+0, 0, yyvstop+91,
1382 yycrank+0, 0, yyvstop+93,
1383 yycrank+0, 0, yyvstop+95,
1384 yycrank+0, 0, yyvstop+97,
1385 yycrank+0, 0, yyvstop+99,
1386 yycrank+0, 0, yyvstop+101,
1387 yycrank+0, 0, yyvstop+103,
1388 yycrank+0, 0, yyvstop+105,
1390 yycrank+400, yysvec+189, 0,
1392 yycrank+401, yysvec+189, 0,
1406 yycrank+571, 0, yyvstop+107,
1408 yycrank+537, yysvec+206, yyvstop+109,
1409 yycrank+536, yysvec+206, yyvstop+111,
1410 yycrank+595, 0, yyvstop+113,
1411 yycrank+596, 0, yyvstop+115,
1412 yycrank+527, yysvec+211, yyvstop+117,
1416 yycrank+662, 0, yyvstop+119,
1417 yycrank+677, 0, yyvstop+121,
1418 yycrank+691, 0, yyvstop+123,
1419 yycrank+726, 0, yyvstop+125,
1420 yycrank+494, yysvec+217, yyvstop+127,
1421 yycrank+752, 0, yyvstop+129,
1422 yycrank+511, yysvec+218, yyvstop+131,
1423 yycrank+778, 0, yyvstop+133,
1424 yycrank+804, 0, yyvstop+135,
1425 yycrank+512, yysvec+218, yyvstop+137,
1426 yycrank+505, yysvec+224, yyvstop+139,
1427 yycrank+501, yysvec+224, yyvstop+141,
1428 yycrank+655, yysvec+210, yyvstop+143,
1434 yycrank+656, 0, yyvstop+146,
1450 yycrank+639, 0, yyvstop+148,
1458 yycrank+688, yysvec+216, 0,
1459 yycrank+728, yysvec+217, 0,
1460 yycrank+689, yysvec+218, 0,
1461 yycrank+786, yysvec+219, 0,
1462 yycrank+757, yysvec+217, 0,
1463 yycrank+741, yysvec+221, 0,
1464 yycrank+740, yysvec+218, 0,
1465 yycrank+692, yysvec+223, 0,
1466 yycrank+753, yysvec+224, 0,
1467 yycrank+805, yysvec+218, 0,
1468 yycrank+787, yysvec+224, 0,
1469 yycrank+789, yysvec+224, 0,
1471 yycrank+754, 0, yyvstop+150,
1473 yycrank+895, 0, yyvstop+152,
1474 yycrank+756, 0, yyvstop+154,
1475 yycrank+790, 0, yyvstop+156,
1476 yycrank+599, yysvec+224, yyvstop+158,
1488 yycrank+806, 0, yyvstop+160,
1489 yycrank+947, 0, yyvstop+163,
1495 yycrank+0, yysvec+293, 0,
1500 yycrank+0, yysvec+293, 0,
1504 yycrank+0, 0, yyvstop+165,
1505 yycrank+0, 0, yyvstop+167,
1506 yycrank+0, 0, yyvstop+169,
1507 yycrank+0, 0, yyvstop+171,
1509 yycrank+0, yysvec+308, 0,
1511 yycrank+0, yysvec+308, 0,
1524 yycrank+932, 0, yyvstop+173,
1525 yycrank+933, 0, yyvstop+175,
1526 yycrank+981, 0, yyvstop+177,
1527 yycrank+984, 0, yyvstop+179,
1531 yycrank+985, 0, yyvstop+181,
1539 yycrank+996, 0, yyvstop+183,
1541 yycrank+915, yysvec+339, yyvstop+185,
1544 yycrank+918, yysvec+234, yyvstop+187,
1551 yycrank+0, yysvec+293, 0,
1556 yycrank+0, yysvec+308, 0,
1565 yycrank+1016, 0, yyvstop+189,
1566 yycrank+1001, yysvec+324, yyvstop+191,
1568 yycrank+1034, 0, yyvstop+193,
1569 yycrank+1035, 0, yyvstop+195,
1570 yycrank+1036, 0, yyvstop+197,
1571 yycrank+1037, 0, yyvstop+199,
1572 yycrank+1034, yysvec+331, yyvstop+201,
1580 yycrank+0, yysvec+347, 0,
1581 yycrank+0, yysvec+345, 0,
1582 yycrank+0, yysvec+347, 0,
1583 yycrank+0, yysvec+293, 0,
1585 yycrank+0, yysvec+293, 0,
1587 yycrank+0, yysvec+308, 0,
1588 yycrank+0, yysvec+308, 0,
1598 yycrank+1070, 0, yyvstop+203,
1599 yycrank+0, yysvec+377, 0,
1600 yycrank+0, yysvec+375, 0,
1601 yycrank+0, yysvec+377, 0,
1604 yycrank+0, yysvec+347, 0,
1605 yycrank+0, yysvec+293, 0,
1606 yycrank+0, yysvec+308, 0,
1607 yycrank+0, yysvec+394, 0,
1608 yycrank+0, yysvec+392, 0,
1609 yycrank+0, yysvec+394, 0,
1612 yycrank+1071, 0, yyvstop+205,
1613 yycrank+0, yysvec+377, 0,
1614 yycrank+1098, 0, yyvstop+207,
1615 yycrank+0, yysvec+394, 0,
1616 yycrank+0, 0, yyvstop+209,
1617 yycrank+1099, 0, yyvstop+211,
1618 yycrank+1108, yysvec+414, yyvstop+213,
1620 struct yywork *yytop = yycrank+1165;
1621 struct yysvf *yybgin = yysvec+1;
1623 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1624 01 ,011 ,01 ,01 ,01 ,01 ,01 ,01 ,
1625 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1626 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1627 011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1628 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1629 '0' ,'0' ,'2' ,'3' ,'3' ,'3' ,'6' ,'6' ,
1630 '6' ,'6' ,01 ,01 ,01 ,01 ,01 ,01 ,
1631 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1632 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1633 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1634 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1635 01 ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,
1636 'a' ,'a' ,01 ,'k' ,'k' ,'k' ,'n' ,'n' ,
1637 'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,
1638 'n' ,'n' ,01 ,01 ,01 ,01 ,01 ,01 ,
1639 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1640 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1641 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1642 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1643 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1644 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1645 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1646 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1647 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1648 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1649 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1650 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1651 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1652 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1653 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1654 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1664 /* Copyright (c) 1989 AT&T */
1665 /* All Rights Reserved */
1667 /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
1668 /* The copyright notice above does not evidence any */
1669 /* actual or intended publication of such source code. */
1671 #ident "@(#)ncform 6.4 92/06/19 SMI"