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 * Patchable flag that says how to interpret NN/NN/NN dates. When
28 * true, we do it European style: DD/MM/YY. When false, we do it
29 * American style: MM/DD/YY. Of course, these are all non-RFC822
35 * Table to convert month names to numeric month. We use the
36 * fact that the low order 5 bits of the sum of the 2nd & 3rd
37 * characters of the name is a hash with no collisions for the 12
38 * valid month names. (The mask to 5 bits maps any combination of
39 * upper and lower case into the same hash value).
41 static int month_map[] = {
73 * Same trick for day-of-week using the hash function
76 static int day_map[] = {
90 #define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\
91 tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\
93 #define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\
96 #define CVT1OR2 (i=(*cp++ - '0'), isdigit(*cp)? i*10 + (*cp++ - '0') : i)
97 #define CVT2 ((cp[0] - '0')*10 + (cp[1] - '0'))
98 #define CVT4 ((((cp[0] - '0')*10 + (cp[1] - '0'))*10 + \
99 (cp[2] - '0'))*10 + (cp[3] - '0'))
100 #define SKIPD { while ( !isdigit(*cp++) ) ; --cp; }
101 #define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; }
102 #define ZONE(x) { tw.tw_zone=(x); EXPZONE; }
103 #define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; }
104 #define LC(c) (isupper (c) ? tolower (c) : (c))
108 #include <sys/time.h>
114 #include <sys/time.h>
119 register struct tws *tw;
121 register struct tm *tm;
123 if (twclock (tw) == -1L)
126 tm = localtime (&tw -> tw_clock);
127 if (tm -> tm_isdst) {
128 tw -> tw_flags |= TW_DST;
133 struct tws *dparsetime (str)
137 static struct tws tw;
139 register int gotdate = 0;
146 #endif /* ZONEINFO */
147 #endif /* not SYS5 */
152 /* Zero out the struct. */
153 bzero( (char *) &tw, sizeof tw);
155 /* Set default time zone. */
158 tw.tw_zone = -(timezone / 60);
162 tm = localtime(&clock);
163 tw.tw_zone = tm->tm_gmtoff / 60;
164 if (tm -> tm_isdst) /* if DST is in effect */
165 tw.tw_zone -= 60; /* reset to normal offset */
168 tw.tw_zone = -tb.timezone;
169 #endif /* ZONEINFO */
172 while (isspace(*str))
175 switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) {
178 if (!gotdate || tw.tw_year == 0)
179 return (struct tws *)0;
182 if ( tw.tw_year == 0 ) {
183 /* Set default year. */
185 tw.tw_year = localtime(&tclock)->tm_year + 1900;
187 else if (tw.tw_year < 100) {
188 /* assume no 2-digit years > 1999 */
205 /* European: DD/MM/YY */
206 tw.tw_mday = CVT1OR2;
208 tw.tw_mon = CVT1OR2 - 1;
210 /* American: MM/DD/YY */
211 tw.tw_mon = CVT1OR2 - 1;
213 tw.tw_mday = CVT1OR2;
216 for (i = 0; isdigit(*cp); )
217 i = i*10 + (*cp++ - '0');
225 tw.tw_mday = CVT1OR2; cp++;
226 tw.tw_mon = CVT1OR2 - 1;
228 tw.tw_mon = CVT1OR2 - 1; cp++;
229 tw.tw_mday = CVT1OR2;
236 tw.tw_mday = CVT1OR2;
237 while ( !isalpha(*cp++) )
240 for (i = 0; isdigit(*cp); )
241 i = i*10 + (*cp++ - '0');
247 tw.tw_mday = CVT1OR2;
248 while ( ! isalpha( *cp++ ) )
257 tw.tw_mday = CVT1OR2;
259 for (i = 0; isdigit(*cp); )
260 i = i*10 + (*cp++ - '0');
268 tw.tw_mday = CVT1OR2;
272 { /* hack: ctime w/o TZ */
273 tw.tw_hour = CVT1OR2; cp++;
274 tw.tw_min = CVT1OR2; cp++;
277 tw.tw_year = CVT4; cp+=4;
282 tw.tw_hour = CVT1OR2; cp++;
283 tw.tw_min = CVT1OR2; cp++;
290 tw.tw_hour = CVT1OR2; cp++;
297 tw.tw_hour = CVT1OR2; cp++;
298 if (tw.tw_hour == 12)
306 tw.tw_hour = CVT1OR2; cp++;
307 if (tw.tw_hour == 12)
309 tw.tw_min = CVT1OR2; cp++;
316 tw.tw_hour = CVT1OR2; cp++;
317 if (tw.tw_hour != 12)
325 tw.tw_hour = CVT1OR2; cp++;
326 if (tw.tw_hour != 12)
328 tw.tw_min = CVT1OR2; cp++;
335 tw.tw_hour = CVT2; cp+=2;
336 tw.tw_min = CVT2; cp+=2;
337 tw.tw_sec = CVT2; cp+=2;
344 * Luckly, 4 digit times in the range
345 * 1960-1999 aren't legal as hour
348 tw.tw_year = CVT4; cp+=4;
353 if (tw.tw_hour || tw.tw_min
355 tw.tw_year = CVT4; cp+=4;
358 tw.tw_hour = CVT2; cp+=2;
359 tw.tw_min = CVT2; cp+=2;
401 ZONE(-(3 * 60 + 30));
426 tw.tw_zone = 60 * (('a'-1) - LC(*cp));
432 tw.tw_zone = 60 * ('a' - LC(*cp));
438 tw.tw_zone = 60 * (LC(*cp) - 'm');
445 tw.tw_zone = ((cp[0] * 10 + cp[1])
446 -('0' * 10 + '0'))*60
447 +((cp[2] * 10 + cp[3])
459 tw.tw_zone = (('0' * 10 + '0')
460 -(cp[0] * 10 + cp[1]))*60
462 -(cp[2] * 10 + cp[3]));
473 tw.tw_year = CVT4; cp+=4;
807 struct yywork { YYTYPE verify, advance; } yycrank[] = {
821 1,10, 1,10, 1,10, 1,10,
822 1,10, 1,10, 1,10, 3,21,
827 3,9, 3,8, 3,10, 3,10,
828 3,10, 3,10, 3,10, 3,10,
829 3,10, 9,63, 10,64, 10,64,
830 10,64, 10,64, 10,64, 10,64,
831 10,64, 10,64, 10,64, 10,64,
832 22,83, 22,83, 1,11, 0,0,
833 0,0, 1,12, 0,0, 1,13,
835 0,0, 0,0, 1,15, 1,16,
837 1,18, 1,19, 0,0, 0,0,
839 3,24, 3,25, 3,26, 3,27,
840 3,28, 3,29, 3,30, 3,31,
841 3,32, 3,33, 3,34, 3,34,
842 3,35, 3,36, 3,37, 3,38,
843 3,39, 3,39, 3,40, 3,41,
844 3,42, 3,39, 3,43, 3,39,
845 3,44, 7,45, 8,50, 12,67,
846 11,65, 16,74, 13,68, 14,70,
847 7,46, 11,66, 15,72, 17,75,
848 18,76, 19,79, 7,47, 7,48,
849 18,77, 20,81, 7,49, 13,69,
850 25,99, 30,104, 42,114, 45,117,
851 15,73, 8,50, 19,80, 14,71,
852 46,118, 21,21, 36,74, 49,123,
853 18,78, 47,119, 36,111, 56,139,
854 23,84, 23,84, 8,51, 26,100,
855 8,52, 8,53, 8,53, 8,53,
856 8,53, 8,53, 8,53, 8,53,
857 8,53, 8,53, 8,53, 8,54,
858 21,21, 47,120, 26,101, 55,137,
859 57,140, 59,143, 60,144, 61,145,
860 55,138, 62,146, 65,148, 66,149,
861 28,102, 31,105, 24,97, 38,112,
862 21,82, 21,82, 21,82, 21,82,
863 21,82, 21,82, 21,82, 21,82,
864 21,82, 21,82, 24,65, 28,103,
865 31,106, 24,98, 38,113, 24,66,
866 67,150, 23,85, 23,86, 23,87,
867 48,121, 23,88, 8,55, 23,89,
868 23,90, 8,56, 23,91, 8,57,
869 44,115, 23,92, 23,93, 8,58,
870 23,94, 48,122, 8,59, 8,60,
871 8,61, 23,95, 50,50, 33,70,
872 8,62, 23,96, 33,107, 44,116,
873 35,72, 68,151, 69,152, 35,109,
874 70,153, 71,154, 73,158, 71,155,
875 74,159, 58,141, 51,124, 75,160,
876 76,161, 33,108, 35,73, 33,71,
877 77,162, 50,50, 35,110, 52,134,
878 52,134, 52,134, 52,134, 52,134,
879 52,134, 52,134, 52,134, 52,134,
880 52,134, 58,142, 50,124, 78,163,
881 79,164, 51,124, 53,135, 53,135,
882 53,135, 53,135, 53,135, 53,135,
883 53,135, 53,135, 53,135, 53,135,
884 80,165, 81,166, 93,111, 97,170,
885 98,171, 51,133, 51,133, 51,133,
886 51,133, 51,133, 51,133, 51,133,
887 51,133, 51,133, 51,133, 54,136,
888 54,136, 54,136, 54,136, 54,136,
889 54,136, 54,136, 54,136, 54,136,
890 54,136, 63,135, 63,135, 63,135,
891 63,135, 63,135, 63,135, 63,147,
892 63,147, 63,147, 63,147, 64,50,
893 99,172, 72,156, 50,125, 100,173,
894 85,97, 50,126, 101,174, 50,127,
895 72,157, 91,107, 92,109, 50,128,
896 102,175, 103,176, 50,129, 50,130,
897 50,131, 104,177, 51,55, 85,98,
898 50,132, 51,56, 64,50, 51,57,
899 91,108, 92,110, 105,178, 51,58,
900 106,179, 107,180, 51,59, 51,60,
901 51,61, 108,181, 109,182, 64,51,
902 51,62, 64,52, 82,167, 82,167,
903 82,167, 82,167, 82,167, 82,167,
904 82,167, 82,167, 82,167, 82,167,
905 64,54, 83,168, 83,168, 83,168,
906 83,168, 83,168, 83,168, 83,168,
907 83,168, 83,168, 83,168, 84,169,
908 84,169, 84,169, 84,169, 84,169,
909 84,169, 84,169, 84,169, 84,169,
910 84,169, 110,183, 111,184, 112,185,
911 113,186, 115,187, 116,188, 117,189,
912 118,190, 119,191, 120,192, 121,193,
913 122,194, 123,195, 126,198, 124,124,
914 125,196, 127,199, 129,202, 64,55,
915 128,200, 125,197, 64,56, 130,203,
916 64,57, 131,204, 132,205, 133,206,
917 64,58, 137,216, 138,217, 64,59,
918 64,60, 64,61, 139,218, 140,219,
919 141,220, 64,62, 124,124, 134,206,
920 128,201, 142,221, 143,223, 142,222,
921 144,225, 145,226, 146,227, 153,236,
922 155,157, 143,224, 133,206, 135,210,
923 135,210, 135,210, 135,210, 135,210,
924 135,210, 135,210, 135,210, 135,210,
925 135,210, 158,238, 134,206, 133,207,
926 159,239, 160,240, 133,208, 133,208,
927 133,208, 133,208, 133,208, 133,208,
928 133,208, 133,208, 133,208, 133,208,
929 148,229, 134,207, 134,209, 134,209,
930 134,209, 134,209, 134,209, 134,209,
931 134,209, 134,209, 134,209, 134,209,
932 136,211, 147,228, 147,228, 147,228,
933 147,228, 147,228, 147,228, 147,228,
934 147,228, 147,228, 147,228, 148,229,
935 149,229, 150,229, 151,229, 124,125,
936 162,242, 163,243, 124,126, 189,250,
937 124,127, 190,252, 192,254, 136,211,
938 124,128, 196,258, 191,250, 124,129,
939 124,130, 124,131, 152,234, 154,229,
940 156,229, 124,132, 157,229, 149,229,
941 150,229, 151,229, 161,234, 136,212,
942 136,212, 136,212, 136,212, 136,212,
943 136,212, 136,212, 136,212, 136,212,
944 136,212, 136,213, 197,259, 164,234,
945 165,234, 152,234, 154,229, 156,229,
946 166,234, 157,229, 198,260, 199,261,
947 193,250, 161,234, 194,250, 200,262,
948 202,265, 152,234, 195,250, 201,263,
949 203,267, 201,264, 204,268, 202,266,
950 205,269, 161,234, 164,234, 165,234,
951 208,207, 209,207, 189,251, 166,234,
952 212,213, 206,206, 214,274, 215,275,
953 148,230, 220,283, 164,234, 165,234,
954 136,214, 222,224, 225,285, 166,234,
955 167,247, 167,247, 167,247, 167,247,
956 167,247, 167,247, 167,247, 167,247,
957 167,247, 167,247, 191,253, 136,215,
958 206,206, 150,232, 168,248, 168,248,
959 168,248, 168,248, 168,248, 168,248,
960 168,248, 168,248, 168,248, 168,248,
961 211,211, 226,286, 227,287, 151,233,
962 149,231, 152,235, 156,237, 169,249,
963 169,249, 169,249, 169,249, 169,249,
964 169,249, 169,249, 169,249, 169,249,
965 169,249, 193,255, 230,157, 195,257,
966 194,256, 231,290, 232,291, 211,211,
967 233,292, 235,293, 236,294, 154,157,
968 237,157, 238,295, 161,241, 210,271,
969 239,296, 240,297, 241,298, 242,299,
970 243,300, 244,301, 245,302, 246,303,
971 164,244, 166,246, 165,245, 207,270,
972 207,270, 207,270, 207,270, 207,270,
973 207,270, 207,270, 207,270, 207,270,
974 207,270, 250,307, 210,271, 213,273,
975 213,273, 213,273, 213,273, 213,273,
976 213,273, 213,273, 213,273, 213,273,
977 213,273, 251,308, 216,276, 228,288,
978 234,234, 252,309, 210,272, 210,272,
979 210,272, 210,272, 210,272, 210,272,
980 210,272, 210,272, 210,272, 210,272,
981 253,310, 217,276, 254,311, 255,312,
982 256,313, 257,314, 276,330, 279,224,
983 211,214, 216,276, 228,288, 234,234,
984 258,266, 260,266, 280,332, 218,276,
985 265,266, 281,333, 282,334, 283,335,
986 284,224, 285,336, 216,277, 211,215,
987 217,276, 216,278, 216,278, 216,278,
988 216,278, 216,278, 216,278, 216,278,
989 216,278, 216,278, 216,278, 258,266,
990 260,266, 217,277, 218,276, 265,266,
991 217,278, 217,278, 217,278, 217,278,
992 217,278, 217,278, 217,278, 217,278,
993 217,278, 217,278, 219,276, 218,277,
994 259,266, 286,337, 218,278, 218,278,
995 218,278, 218,278, 218,278, 218,278,
996 218,278, 218,278, 218,278, 218,278,
997 264,266, 263,266, 287,338, 290,157,
998 291,342, 292,343, 293,344, 294,345,
999 296,346, 219,276, 297,347, 259,266,
1000 221,276, 266,266, 271,271, 298,348,
1001 274,274, 262,266, 216,279, 299,349,
1002 301,350, 302,351, 219,277, 264,266,
1003 263,266, 219,278, 219,278, 219,278,
1004 219,278, 219,278, 219,278, 219,278,
1005 219,278, 219,278, 219,278, 221,276,
1006 266,266, 271,271, 223,276, 274,274,
1007 262,266, 260,317, 265,320, 218,281,
1008 258,315, 217,280, 275,275, 303,352,
1009 221,277, 288,288, 308,353, 221,278,
1010 221,278, 221,278, 221,278, 221,278,
1011 221,278, 221,278, 221,278, 221,278,
1012 221,278, 223,276, 310,354, 312,355,
1013 224,276, 261,266, 268,266, 267,266,
1014 313,356, 275,275, 269,266, 314,357,
1015 288,288, 315,266, 223,277, 229,229,
1016 316,358, 223,278, 223,278, 223,278,
1017 223,278, 223,278, 223,278, 223,278,
1018 223,278, 223,278, 223,278, 224,276,
1019 261,266, 268,266, 267,266, 219,282,
1020 264,266, 269,266, 317,359, 318,360,
1021 259,316, 319,361, 229,229, 320,266,
1022 224,277, 321,362, 322,363, 224,278,
1023 224,278, 224,278, 224,278, 224,278,
1024 224,278, 224,278, 224,278, 224,278,
1025 224,278, 263,266, 229,289, 229,289,
1026 229,289, 229,289, 229,289, 229,289,
1027 229,289, 229,289, 229,289, 229,289,
1028 221,224, 262,319, 323,364, 328,368,
1029 223,284, 247,304, 247,304, 247,304,
1030 247,304, 247,304, 247,304, 247,304,
1031 247,304, 247,304, 247,304, 248,305,
1032 248,305, 248,305, 248,305, 248,305,
1033 248,305, 248,305, 248,305, 248,305,
1034 248,305, 249,306, 249,306, 249,306,
1035 249,306, 249,306, 249,306, 249,306,
1036 249,306, 249,306, 249,306, 267,321,
1037 329,369, 330,370, 332,224, 333,373,
1038 334,374, 335,375, 336,376, 337,377,
1039 268,322, 338,378, 261,318, 341,340,
1040 342,380, 343,381, 344,234, 273,326,
1041 325,325, 269,323, 270,324, 270,324,
1042 270,324, 270,324, 270,324, 270,324,
1043 270,324, 270,324, 270,324, 270,324,
1044 272,325, 272,325, 272,325, 272,325,
1045 272,325, 272,325, 272,325, 272,325,
1046 272,325, 272,325, 273,326, 325,325,
1047 345,157, 277,277, 278,331, 278,331,
1048 278,331, 278,331, 278,331, 278,331,
1049 278,331, 278,331, 278,331, 278,331,
1050 324,365, 339,339, 273,327, 273,327,
1051 273,327, 273,327, 273,327, 273,327,
1052 273,327, 273,327, 273,327, 273,327,
1053 277,277, 346,382, 347,157, 289,339,
1054 348,383, 349,384, 350,385, 352,386,
1055 353,250, 354,387, 355,388, 324,365,
1056 339,339, 357,389, 358,266, 359,390,
1057 277,278, 277,278, 277,278, 277,278,
1058 277,278, 277,278, 277,278, 277,278,
1059 277,278, 277,278, 289,339, 324,366,
1060 324,366, 324,366, 324,366, 324,366,
1061 324,366, 324,366, 324,366, 324,366,
1062 324,366, 326,326, 289,340, 273,328,
1063 327,326, 331,371, 289,341, 289,341,
1064 289,341, 289,341, 289,341, 289,341,
1065 289,341, 289,341, 289,341, 289,341,
1066 340,379, 360,391, 273,329, 361,392,
1067 362,393, 363,394, 364,395, 367,396,
1068 326,326, 373,399, 374,400, 327,326,
1069 331,371, 375,224, 376,401, 365,365,
1070 377,224, 378,402, 384,404, 386,405,
1071 389,406, 390,407, 391,408, 340,379,
1072 392,266, 326,367, 368,368, 369,369,
1073 331,372, 331,372, 331,372, 331,372,
1074 331,372, 331,372, 331,372, 331,372,
1075 331,372, 331,372, 365,365, 366,365,
1076 366,365, 366,365, 366,365, 366,365,
1077 366,365, 366,365, 366,365, 366,365,
1078 366,365, 368,368, 369,369, 370,370,
1079 371,371, 372,398, 372,398, 372,398,
1080 372,398, 372,398, 372,398, 372,398,
1081 372,398, 372,398, 372,398, 379,379,
1082 393,409, 394,266, 395,410, 396,411,
1083 396,411, 396,411, 396,411, 397,412,
1084 398,371, 326,328, 370,370, 371,371,
1085 327,328, 402,413, 410,415, 0,0,
1087 0,0, 0,0, 379,379, 0,0,
1088 326,329, 0,0, 0,0, 327,329,
1089 0,0, 0,0, 0,0, 398,371,
1091 0,0, 0,0, 379,403, 379,403,
1092 379,403, 379,403, 379,403, 379,403,
1093 379,403, 379,403, 379,403, 379,403,
1094 403,414, 403,414, 403,414, 403,414,
1095 403,414, 403,414, 403,414, 403,414,
1096 403,414, 403,414, 411,416, 411,416,
1097 411,416, 411,416, 411,416, 411,416,
1098 411,416, 411,416, 411,416, 411,416,
1099 412,412, 414,417, 417,417, 0,0,
1101 371,397, 418,417, 418,417, 418,417,
1102 418,417, 418,417, 418,417, 418,417,
1103 418,417, 418,417, 418,417, 0,0,
1104 0,0, 0,0, 0,0, 412,412,
1105 414,417, 417,417, 0,0, 0,0,
1109 414,418, 414,418, 414,418, 414,418,
1110 414,418, 414,418, 414,418, 414,418,
1111 414,418, 414,418, 0,0, 0,0,
1113 struct yysvf yysvec[] = {
1116 yycrank+0, yysvec+1, 0,
1118 yycrank+0, yysvec+3, 0,
1119 yycrank+29, 0, yyvstop+1,
1120 yycrank+0, 0, yyvstop+3,
1123 yycrank+28, yysvec+8, 0,
1124 yycrank+38, yysvec+8, 0,
1135 yycrank+168, 0, yyvstop+5,
1138 yycrank+114, 0, yyvstop+7,
1139 yycrank+53, 0, yyvstop+9,
1140 yycrank+87, 0, yyvstop+11,
1141 yycrank+0, yysvec+12, yyvstop+13,
1142 yycrank+112, 0, yyvstop+15,
1143 yycrank+0, yysvec+13, yyvstop+17,
1144 yycrank+60, 0, yyvstop+19,
1145 yycrank+113, 0, yyvstop+21,
1146 yycrank+0, 0, yyvstop+23,
1148 yycrank+0, 0, yyvstop+25,
1149 yycrank+163, 0, yyvstop+27,
1150 yycrank+67, 0, yyvstop+29,
1151 yycrank+0, yysvec+17, yyvstop+31,
1152 yycrank+115, 0, yyvstop+33,
1153 yycrank+0, 0, yyvstop+35,
1154 yycrank+0, yysvec+18, yyvstop+37,
1155 yycrank+0, yysvec+19, yyvstop+39,
1156 yycrank+54, 0, yyvstop+41,
1157 yycrank+0, yysvec+20, yyvstop+43,
1158 yycrank+144, 0, yyvstop+45,
1167 yycrank+246, yysvec+8, 0,
1177 yycrank+281, yysvec+8, 0,
1200 yycrank+0, yysvec+25, 0,
1201 yycrank+0, yysvec+26, 0,
1202 yycrank+0, yysvec+28, 0,
1203 yycrank+0, yysvec+30, 0,
1204 yycrank+0, yysvec+31, 0,
1208 yycrank+0, yysvec+38, 0,
1209 yycrank+0, yysvec+42, 0,
1210 yycrank+0, yysvec+44, 0,
1228 yycrank+0, 0, yyvstop+47,
1247 yycrank+426, 0, yyvstop+49,
1248 yycrank+438, 0, yyvstop+51,
1250 yycrank+487, 0, yyvstop+53,
1266 yycrank+517, 0, yyvstop+55,
1267 yycrank+338, yysvec+149, 0,
1269 yycrank+355, yysvec+150, 0,
1272 yycrank+369, yysvec+152, yyvstop+57,
1273 yycrank+371, yysvec+150, 0,
1274 yycrank+362, yysvec+157, 0,
1275 yycrank+525, 0, yyvstop+59,
1276 yycrank+396, yysvec+157, 0,
1277 yycrank+413, yysvec+152, yyvstop+61,
1278 yycrank+538, 0, yyvstop+63,
1279 yycrank+539, 0, yyvstop+65,
1280 yycrank+543, 0, yyvstop+67,
1284 yycrank+0, 0, yyvstop+69,
1285 yycrank+0, 0, yyvstop+71,
1286 yycrank+0, 0, yyvstop+73,
1287 yycrank+0, 0, yyvstop+75,
1288 yycrank+0, 0, yyvstop+77,
1289 yycrank+0, 0, yyvstop+79,
1290 yycrank+0, 0, yyvstop+81,
1291 yycrank+0, 0, yyvstop+83,
1292 yycrank+0, 0, yyvstop+85,
1293 yycrank+0, 0, yyvstop+87,
1294 yycrank+0, 0, yyvstop+89,
1295 yycrank+0, 0, yyvstop+91,
1296 yycrank+0, 0, yyvstop+93,
1297 yycrank+0, 0, yyvstop+95,
1298 yycrank+0, 0, yyvstop+97,
1299 yycrank+0, 0, yyvstop+99,
1300 yycrank+0, 0, yyvstop+101,
1301 yycrank+0, 0, yyvstop+103,
1302 yycrank+0, 0, yyvstop+105,
1304 yycrank+417, yysvec+189, 0,
1306 yycrank+418, yysvec+189, 0,
1320 yycrank+568, 0, yyvstop+107,
1322 yycrank+527, yysvec+206, yyvstop+109,
1323 yycrank+526, yysvec+206, yyvstop+111,
1324 yycrank+634, 0, yyvstop+113,
1325 yycrank+603, 0, yyvstop+115,
1326 yycrank+518, yysvec+211, yyvstop+117,
1330 yycrank+669, 0, yyvstop+119,
1331 yycrank+684, 0, yyvstop+121,
1332 yycrank+698, 0, yyvstop+123,
1333 yycrank+733, 0, yyvstop+125,
1334 yycrank+464, yysvec+217, yyvstop+127,
1335 yycrank+759, 0, yyvstop+129,
1336 yycrank+484, yysvec+218, yyvstop+131,
1337 yycrank+785, 0, yyvstop+133,
1338 yycrank+811, 0, yyvstop+135,
1339 yycrank+485, yysvec+218, yyvstop+137,
1340 yycrank+502, yysvec+224, yyvstop+139,
1341 yycrank+498, yysvec+224, yyvstop+141,
1342 yycrank+670, yysvec+210, yyvstop+143,
1348 yycrank+671, 0, yyvstop+146,
1364 yycrank+621, 0, yyvstop+148,
1372 yycrank+695, yysvec+216, 0,
1373 yycrank+735, yysvec+217, 0,
1374 yycrank+696, yysvec+218, 0,
1375 yycrank+812, yysvec+219, 0,
1376 yycrank+764, yysvec+217, 0,
1377 yycrank+748, yysvec+221, 0,
1378 yycrank+747, yysvec+218, 0,
1379 yycrank+699, yysvec+223, 0,
1380 yycrank+760, yysvec+224, 0,
1381 yycrank+814, yysvec+218, 0,
1382 yycrank+813, yysvec+224, 0,
1383 yycrank+817, yysvec+224, 0,
1385 yycrank+761, 0, yyvstop+150,
1387 yycrank+922, 0, yyvstop+152,
1388 yycrank+763, 0, yyvstop+154,
1389 yycrank+793, 0, yyvstop+156,
1390 yycrank+601, yysvec+224, yyvstop+158,
1402 yycrank+796, 0, yyvstop+160,
1403 yycrank+974, 0, yyvstop+163,
1409 yycrank+0, yysvec+293, 0,
1414 yycrank+0, yysvec+293, 0,
1418 yycrank+0, 0, yyvstop+165,
1419 yycrank+0, 0, yyvstop+167,
1420 yycrank+0, 0, yyvstop+169,
1421 yycrank+0, 0, yyvstop+171,
1423 yycrank+0, yysvec+308, 0,
1425 yycrank+0, yysvec+308, 0,
1438 yycrank+959, 0, yyvstop+173,
1439 yycrank+923, 0, yyvstop+175,
1440 yycrank+1008, 0, yyvstop+177,
1441 yycrank+1011, 0, yyvstop+179,
1445 yycrank+1012, 0, yyvstop+181,
1453 yycrank+960, 0, yyvstop+183,
1455 yycrank+883, yysvec+339, yyvstop+185,
1458 yycrank+886, yysvec+234, yyvstop+187,
1465 yycrank+0, yysvec+293, 0,
1470 yycrank+0, yysvec+308, 0,
1479 yycrank+1038, 0, yyvstop+189,
1480 yycrank+1023, yysvec+324, yyvstop+191,
1482 yycrank+1049, 0, yyvstop+193,
1483 yycrank+1050, 0, yyvstop+195,
1484 yycrank+1074, 0, yyvstop+197,
1485 yycrank+1075, 0, yyvstop+199,
1486 yycrank+1037, yysvec+331, yyvstop+201,
1494 yycrank+0, yysvec+347, 0,
1495 yycrank+0, yysvec+345, 0,
1496 yycrank+0, yysvec+347, 0,
1497 yycrank+0, yysvec+293, 0,
1499 yycrank+0, yysvec+293, 0,
1501 yycrank+0, yysvec+308, 0,
1502 yycrank+0, yysvec+308, 0,
1512 yycrank+1095, 0, yyvstop+203,
1513 yycrank+0, yysvec+377, 0,
1514 yycrank+0, yysvec+375, 0,
1515 yycrank+0, yysvec+377, 0,
1518 yycrank+0, yysvec+347, 0,
1519 yycrank+0, yysvec+293, 0,
1520 yycrank+0, yysvec+308, 0,
1521 yycrank+0, yysvec+394, 0,
1522 yycrank+0, yysvec+392, 0,
1523 yycrank+0, yysvec+394, 0,
1526 yycrank+1155, 0, yyvstop+205,
1527 yycrank+0, yysvec+377, 0,
1528 yycrank+1156, 0, yyvstop+207,
1529 yycrank+0, yysvec+394, 0,
1530 yycrank+0, 0, yyvstop+209,
1531 yycrank+1157, 0, yyvstop+211,
1532 yycrank+1125, yysvec+414, yyvstop+213,
1534 struct yywork *yytop = yycrank+1213;
1535 struct yysvf *yybgin = yysvec+1;
1537 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1538 01 ,011 ,01 ,01 ,01 ,01 ,01 ,01 ,
1539 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1540 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1541 011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1542 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1543 '0' ,'0' ,'2' ,'3' ,'3' ,'3' ,'6' ,'6' ,
1544 '6' ,'6' ,01 ,01 ,01 ,01 ,01 ,01 ,
1545 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1546 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1547 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1548 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1549 01 ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,
1550 'a' ,'a' ,01 ,'k' ,'k' ,'k' ,'n' ,'n' ,
1551 'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,
1552 'n' ,'n' ,01 ,01 ,01 ,01 ,01 ,01 ,
1563 static char ncform_sccsid[] = "@(#)ncform 1.6 88/02/08 SMI"; /* from S5R2 1.2 */