1: # include "stdio.h"
   2: static int start_cond = 0;
   3: #define BEGIN start_cond =
   4: struct yysvf {
   5:     struct yywork *yystoff;
   6:     struct yysvf *yyother;
   7:     int *yystops;};
   8: # define Z 2
   9: #include "tws.h"
  10: #include <ctype.h>
  11: 
  12: /*
  13:  * Table to convert month names to numeric month.  We use the
  14:  * fact that the low order 5 bits of the sum of the 2nd & 3rd
  15:  * characters of the name is a hash with no collisions for the 12
  16:  * valid month names.  (The mask to 5 bits maps any combination of
  17:  * upper and lower case into the same hash value).
  18:  */
  19: static  int month_map[] = {
  20:     0,
  21:     6,  /* 1 - Jul */
  22:     3,  /* 2 - Apr */
  23:     5,  /* 3 - Jun */
  24:     0,
  25:     10, /* 5 - Nov */
  26:     0,
  27:     1,  /* 7 - Feb */
  28:     11, /* 8 - Dec */
  29:     0,
  30:     0,
  31:     0,
  32:     0,
  33:     0,
  34:     0,
  35:     0,  /*15 - Jan */
  36:     0,
  37:     0,
  38:     0,
  39:     2,  /*19 - Mar */
  40:     0,
  41:     8,  /*21 - Sep */
  42:     0,
  43:     9,  /*23 - Oct */
  44:     0,
  45:     0,
  46:     4,  /*26 - May */
  47:     0,
  48:     7   /*28 - Aug */
  49: };
  50: /*
  51:  * Same trick for day-of-week using the hash function
  52:  *  (c1 & 7) + (c2 & 4)
  53:  */
  54: static  int day_map[] = {
  55:     0,
  56:     0,
  57:     0,
  58:     6,  /* 3 - Sat */
  59:     4,  /* 4 - Thu */
  60:     0,
  61:     5,  /* 6 - Fri */
  62:     0,  /* 7 - Sun */
  63:     2,  /* 8 - Tue */
  64:     1   /* 9 - Mon */,
  65:     0,
  66:     3   /*11 - Wed */
  67: };
  68: #define SETDAY  tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\
  69:         tw.tw_flags |= TW_SEXP;\
  70:         cp += 2;
  71: #define SETMONTH tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\
  72:          cp += 2;\
  73:          SKIPD;
  74: #define CVT2    (i=(*cp++ - '0'),isdigit(*cp)? i*10 + (*cp++ - '0') : i)
  75: #define SKIPD   while ( !isdigit(*cp++) ) ;  --cp;
  76: #define ZONE(x) tw.tw_zone=(x);
  77: #define ZONED(x)  tw.tw_zone=(x); tw.tw_flags |= TW_DST;
  78: #define LC(c)   (isupper(c) ? tolower(c) : (c))
  79: struct tws *dparsetime (str)
  80:     char *str;
  81: {
  82:     register int i;
  83:     static struct tws tw;
  84:     register char *cp;
  85:     register int gotdate = 0;
  86: 
  87:     start_cond = 0;
  88:     bzero( (char *) &tw, sizeof tw);
  89:     while (isspace(*str))
  90:         str++;
  91:     while ( 1 )
  92:         switch (cp = str, *cp? lex_string( &str, start_cond) : 0) {
  93: 
  94:         case -1:
  95:             if (!gotdate || tw.tw_year == 0)
  96:                 return 0;
  97:             /* fall through */
  98:         case 0:
  99:             return &tw;
 100: 
 101: case 1:
 102:             SETDAY;
 103: break;
 104: case 2:
 105:         cp++, SETDAY;
 106: break;
 107: case 3:
 108:     {
 109:                     tw.tw_mday = CVT2; cp++;
 110:                     tw.tw_mon  = CVT2 - 1; cp += 3;
 111:                     tw.tw_year = CVT2;
 112:                     gotdate++;
 113:                     }
 114: break;
 115: case 4:
 116:     {
 117:                     tw.tw_mday = CVT2; cp++;
 118:                     tw.tw_mon  = CVT2 - 1; cp++;
 119:                     tw.tw_year = CVT2;
 120:                     gotdate++;
 121:                     }
 122: break;
 123: case 5:
 124: {
 125:                     tw.tw_mday = CVT2;
 126:                     while ( !isalpha(*cp++) )
 127:                         ;
 128:                     SETMONTH;
 129:                     for (i = 0; isdigit(*cp); )
 130:                         i = i*10 + (*cp++ - '0');
 131:                     tw.tw_year = i % 100;
 132:                     }
 133: break;
 134: case 6:
 135:     {
 136:                     cp++;
 137:                     SETMONTH;
 138:                     tw.tw_mday = CVT2;
 139:                     SKIPD;
 140:                     for (i = 0; isdigit(*cp); )
 141:                         i = i*10 + (*cp++ - '0');
 142:                     tw.tw_year = i % 100;
 143:                     }
 144: break;
 145: case 7:
 146:         {
 147:                     cp++;
 148:                     SETMONTH;
 149:                     tw.tw_mday = CVT2;
 150:                     }
 151: break;
 152: case 8:
 153:             {
 154:                     tw.tw_hour = CVT2; cp++;
 155:                     tw.tw_min  = CVT2; cp++;
 156:                     tw.tw_sec  = CVT2;
 157:                     BEGIN Z;
 158:                     }
 159: break;
 160: case 9:
 161:             case 10:
 162:             {
 163:                     tw.tw_hour = CVT2; cp++;
 164:                     tw.tw_min  = CVT2;
 165:                     BEGIN Z;
 166:                     }
 167: break;
 168: case 11:
 169:             {
 170:                     tw.tw_hour = CVT2 + 12; cp++;
 171:                     tw.tw_min  = CVT2;
 172:                     BEGIN Z;
 173:                     }
 174: break;
 175: case 12:
 176:         {
 177:                     tw.tw_hour = CVT2;
 178:                     tw.tw_min  = CVT2;
 179:                     tw.tw_sec  = CVT2;
 180:                     BEGIN Z;
 181:                     }
 182: break;
 183: case 13:
 184:         {
 185:                     tw.tw_hour = CVT2;
 186:                     tw.tw_min  = CVT2;
 187:                     BEGIN Z;
 188:                     }
 189: break;
 190: case 14:
 191:             ZONE(0 * 60);
 192: break;
 193: case 15:
 194:             ZONE(0 * 60);
 195: break;
 196: case 16:
 197:             ZONE(2 * 60);
 198: break;
 199: case 17:
 200:             ZONED(2 * 60);
 201: break;
 202: case 18:
 203:             ZONE(-5 * 60);
 204: break;
 205: case 19:
 206:             ZONED(-5 * 60);
 207: break;
 208: case 20:
 209:             ZONE(-6 * 60);
 210: break;
 211: case 21:
 212:             ZONED(-6 * 60);
 213: break;
 214: case 22:
 215:             ZONE(-7 * 60);
 216: break;
 217: case 23:
 218:             ZONED(-7 * 60);
 219: break;
 220: case 24:
 221:             ZONE(-8 * 60);
 222: break;
 223: case 25:
 224:             ZONED(-8 * 60);
 225: break;
 226: case 26:
 227:             ZONE(-(3 * 60 + 30));
 228: break;
 229: case 27:
 230:             ZONE(-4 * 60);
 231: break;
 232: case 28:
 233:             ZONED(-4 * 60);
 234: break;
 235: case 29:
 236:             ZONE(-9 * 60);
 237: break;
 238: case 30:
 239:             ZONED(-9 * 60);
 240: break;
 241: case 31:
 242:             ZONE(-10 * 60);
 243: break;
 244: case 32:
 245:             ZONED(-10 * 60);
 246: break;
 247: case 33:
 248:             ZONED(-1 * 60);
 249: break;
 250: case 34:
 251:             tw.tw_zone = 60 * (('a'-1) - LC(*cp));
 252: break;
 253: case 35:
 254:             tw.tw_zone = 60 * ('a' - LC(*cp));
 255: break;
 256: case 36:
 257:             tw.tw_zone = 60 * (LC(*cp) - 'm');
 258: break;
 259: case 37:
 260:         {
 261:                     cp++;
 262:                     tw.tw_zone = ((cp[0] * 10 + cp[1])
 263:                              -('0' * 10   + '0'))*60
 264:                             +((cp[2] * 10 + cp[3])
 265:                              -('0' * 10   + '0'));
 266:                     cp += 4;
 267:                     }
 268: break;
 269: case 38:
 270:         {
 271:                     cp++;
 272:                     tw.tw_zone = (('0' * 10   + '0')
 273:                              -(cp[0] * 10 + cp[1]))*60
 274:                             +(('0' * 10   + '0')
 275:                              -(cp[2] * 10 + cp[3]));
 276:                     cp += 4;
 277:                     }
 278: break;
 279: case 39:
 280:         {
 281:                     while( !isdigit(*cp++) )
 282:                         ;
 283:                     cp++;
 284:                     tw.tw_year = CVT2;
 285:                     }
 286: break;
 287: case 40:
 288: case 41:
 289: ;
 290: break;
 291: default: return(0);
 292: } return(0); }
 293: /* end of yylex */
 294: int yyvstop[] ={
 295: 0,
 296: 
 297: 41,
 298: 0,
 299: 
 300: 40,
 301: 0,
 302: 
 303: 41,
 304: 0,
 305: 
 306: 34,
 307: 0,
 308: 
 309: 34,
 310: 0,
 311: 
 312: 34,
 313: 0,
 314: 
 315: 34,
 316: 0,
 317: 
 318: 34,
 319: 0,
 320: 
 321: 34,
 322: 0,
 323: 
 324: 34,
 325: 0,
 326: 
 327: 34,
 328: 0,
 329: 
 330: 34,
 331: 0,
 332: 
 333: 35,
 334: 0,
 335: 
 336: 35,
 337: 0,
 338: 
 339: 36,
 340: 0,
 341: 
 342: 36,
 343: 0,
 344: 
 345: 36,
 346: 0,
 347: 
 348: 36,
 349: 0,
 350: 
 351: 36,
 352: 0,
 353: 
 354: 36,
 355: 0,
 356: 
 357: 36,
 358: 0,
 359: 
 360: 36,
 361: 0,
 362: 
 363: 36,
 364: 0,
 365: 
 366: 14,
 367: 0,
 368: 
 369: 9,
 370: 0,
 371: 
 372: 1,
 373: 0,
 374: 
 375: 1,
 376: 0,
 377: 
 378: 1,
 379: 0,
 380: 
 381: 1,
 382: 0,
 383: 
 384: 1,
 385: 0,
 386: 
 387: 1,
 388: 0,
 389: 
 390: 1,
 391: 0,
 392: 
 393: 28,
 394: 0,
 395: 
 396: 27,
 397: 0,
 398: 
 399: 33,
 400: 0,
 401: 
 402: 21,
 403: 0,
 404: 
 405: 20,
 406: 0,
 407: 
 408: 19,
 409: 0,
 410: 
 411: 18,
 412: 0,
 413: 
 414: 15,
 415: 0,
 416: 
 417: 32,
 418: 0,
 419: 
 420: 31,
 421: 0,
 422: 
 423: 17,
 424: 0,
 425: 
 426: 16,
 427: 0,
 428: 
 429: 23,
 430: 0,
 431: 
 432: 22,
 433: 0,
 434: 
 435: 26,
 436: 0,
 437: 
 438: 25,
 439: 0,
 440: 
 441: 24,
 442: 0,
 443: 
 444: 30,
 445: 0,
 446: 
 447: 29,
 448: 0,
 449: 
 450: 13,
 451: 0,
 452: 
 453: 9,
 454: 0,
 455: 
 456: 9,
 457: 0,
 458: 
 459: 1,
 460: 0,
 461: 
 462: 2,
 463: 0,
 464: 
 465: 13,
 466: 0,
 467: 
 468: 8,
 469: 0,
 470: 
 471: 10,
 472: 0,
 473: 
 474: 11,
 475: 0,
 476: 
 477: 5,
 478: 0,
 479: 
 480: 5,
 481: 0,
 482: 
 483: 7,
 484: 0,
 485: 
 486: 39,
 487: 0,
 488: 
 489: 37,
 490: 0,
 491: 
 492: 38,
 493: 0,
 494: 
 495: 2,
 496: 0,
 497: 
 498: 4,
 499: 0,
 500: 
 501: 4,
 502: 0,
 503: 
 504: 12,
 505: 0,
 506: 
 507: 8,
 508: 0,
 509: 
 510: 5,
 511: 0,
 512: 
 513: 5,
 514: 0,
 515: 
 516: 7,
 517: 0,
 518: 
 519: 7,
 520: 0,
 521: 
 522: 1,
 523: 0,
 524: 
 525: 3,
 526: 0,
 527: 
 528: 5,
 529: 0,
 530: 
 531: 6,
 532: 0,
 533: 
 534: 6,
 535: 0,
 536: 
 537: 6,
 538: 0,
 539: 
 540: 6,
 541: 0,
 542: 0};
 543: # define YYTYPE int
 544: struct yywork { YYTYPE verify, advance; } yycrank[] ={
 545: 0,0,    0,0,    0,0,    0,0,
 546: 0,0,    0,0,    0,0,    0,0,
 547: 0,0,    0,0,    1,5,    1,6,
 548: 0,0,    0,0,    0,0,    0,0,
 549: 0,0,    0,0,    0,0,    0,0,
 550: 0,0,    0,0,    0,0,    0,0,
 551: 0,0,    0,0,    0,0,    0,0,
 552: 0,0,    0,0,    0,0,    0,0,
 553: 0,0,    1,5,    0,0,    0,0,
 554: 3,20,   3,6,    5,5,    0,0,
 555: 0,0,    1,7,    0,0,    0,0,
 556: 0,0,    0,0,    0,0,    0,0,
 557: 0,0,    1,8,    1,8,    1,8,
 558: 1,9,    1,9,    1,9,    1,9,
 559: 1,9,    1,9,    1,9,    3,20,
 560: 0,0,    5,5,    0,0,    0,0,
 561: 0,0,    0,0,    0,0,    3,7,
 562: 0,0,    0,0,    3,21,   0,0,
 563: 3,22,   20,20,  0,0,    3,8,
 564: 3,8,    3,8,    3,9,    3,9,
 565: 3,9,    3,9,    3,9,    3,9,
 566: 3,9,    9,61,   9,61,   9,61,
 567: 9,61,   9,61,   9,61,   9,61,
 568: 9,61,   9,61,   9,61,   0,0,
 569: 20,20,  0,0,    1,10,   21,80,
 570: 21,80,  1,11,   0,0,    1,12,
 571: 0,0,    0,0,    0,0,    1,13,
 572: 0,0,    0,0,    1,14,   1,15,
 573: 1,16,   20,79,  0,0,    0,0,
 574: 1,17,   1,18,   0,0,    0,0,
 575: 1,19,   0,0,    0,0,    0,0,
 576: 3,23,   3,24,   3,25,   3,26,
 577: 3,27,   3,28,   3,29,   3,30,
 578: 3,31,   3,32,   3,33,   3,33,
 579: 3,34,   3,35,   3,36,   3,37,
 580: 3,38,   3,38,   3,39,   3,40,
 581: 3,41,   3,38,   3,42,   3,38,
 582: 3,43,   7,44,   10,62,  11,64,
 583: 8,49,   15,71,  16,72,  10,63,
 584: 7,45,   19,78,  24,96,  29,101,
 585: 13,67,  41,111, 7,46,   7,47,
 586: 44,114, 8,49,   7,48,   8,50,
 587: 8,51,   8,51,   8,51,   8,51,
 588: 8,51,   8,51,   8,51,   8,51,
 589: 8,51,   8,51,   8,52,   12,65,
 590: 13,68,  14,69,  17,73,  18,76,
 591: 25,97,  27,99,  17,74,  22,81,
 592: 22,81,  23,94,  30,102, 32,67,
 593: 12,66,  35,71,  32,104, 14,70,
 594: 18,77,  35,108, 37,109, 25,98,
 595: 27,100, 23,62,  17,75,  43,112,
 596: 23,95,  30,103, 23,63,  34,69,
 597: 45,115, 32,105, 34,106, 32,68,
 598: 46,116, 37,110, 47,118, 48,120,
 599: 54,126, 8,53,   43,113, 53,124,
 600: 8,54,   34,70,  8,55,   55,127,
 601: 53,125, 34,107, 8,56,   47,119,
 602: 57,130, 8,57,   8,58,   8,59,
 603: 46,117, 58,131, 59,132, 8,60,
 604: 22,82,  22,83,  22,84,  60,133,
 605: 22,85,  49,53,  22,86,  22,87,
 606: 49,54,  22,88,  49,55,  62,134,
 607: 22,89,  22,90,  49,56,  22,91,
 608: 63,135, 49,57,  49,58,  49,59,
 609: 22,92,  64,136, 65,137, 49,60,
 610: 22,93,  50,121, 50,121, 50,121,
 611: 50,121, 50,121, 50,121, 50,121,
 612: 50,121, 50,121, 50,121, 51,122,
 613: 51,122, 51,122, 51,122, 51,122,
 614: 51,122, 51,122, 51,122, 51,122,
 615: 51,122, 52,123, 52,123, 52,123,
 616: 52,123, 52,123, 52,123, 52,123,
 617: 52,123, 52,123, 52,123, 56,128,
 618: 61,49,  66,138, 67,139, 68,140,
 619: 69,142, 68,141, 70,144, 71,145,
 620: 72,146, 73,147, 74,148, 69,143,
 621: 75,149, 61,49,  76,150, 61,50,
 622: 77,151, 78,152, 79,153, 56,129,
 623: 90,108, 94,156, 95,157, 96,158,
 624: 97,159, 98,160, 61,52,  80,154,
 625: 80,154, 80,154, 80,154, 80,154,
 626: 80,154, 80,154, 80,154, 80,154,
 627: 80,154, 81,155, 81,155, 81,155,
 628: 81,155, 81,155, 81,155, 81,155,
 629: 81,155, 81,155, 81,155, 82,94,
 630: 88,104, 89,106, 99,161, 100,162,
 631: 101,163,    102,164,    103,165,    104,166,
 632: 105,167,    106,168,    107,169,    108,170,
 633: 109,171,    110,172,    82,95,  88,105,
 634: 89,107, 112,173,    113,174,    114,175,
 635: 115,176,    116,177,    117,178,    118,179,
 636: 119,180,    120,181,    121,182,    121,183,
 637: 121,183,    121,183,    121,183,    121,183,
 638: 121,183,    121,183,    121,183,    121,183,
 639: 121,183,    122,184,    122,184,    122,184,
 640: 122,184,    122,184,    122,184,    122,184,
 641: 122,184,    122,184,    122,184,    123,185,
 642: 124,190,    125,191,    126,192,    127,193,
 643: 128,194,    129,195,    130,197,    129,196,
 644: 131,199,    132,200,    133,201,    134,202,
 645: 135,202,    130,198,    136,205,    141,143,
 646: 144,211,    145,212,    146,213,    148,215,
 647: 149,216,    176,225,    123,185,    175,223,
 648: 177,223,    178,227,    137,202,    138,207,
 649: 139,202,    140,202,    142,202,    143,202,
 650: 147,207,    150,207,    134,202,    135,202,
 651: 151,207,    181,223,    123,186,    123,186,
 652: 123,186,    123,186,    123,186,    123,186,
 653: 123,186,    123,186,    123,186,    123,186,
 654: 123,187,    137,202,    138,207,    139,202,
 655: 140,202,    142,202,    143,202,    147,207,
 656: 150,207,    152,207,    180,223,    151,207,
 657: 179,223,    183,182,    138,207,    153,220,
 658: 153,220,    153,220,    153,220,    147,207,
 659: 150,207,    186,187,    188,236,    151,207,
 660: 189,237,    192,243,    196,198,    199,247,
 661: 200,248,    201,249,    203,143,    204,251,
 662: 152,207,    205,252,    175,224,    206,253,
 663: 208,254,    209,255,    210,143,    123,188,
 664: 211,256,    212,257,    213,258,    214,259,
 665: 152,207,    215,260,    216,261,    217,262,
 666: 185,185,    218,263,    219,264,    223,268,
 667: 177,226,    224,269,    123,189,    225,270,
 668: 135,204,    226,271,    181,230,    134,203,
 669: 154,221,    154,221,    154,221,    154,221,
 670: 154,221,    154,221,    154,221,    154,221,
 671: 154,221,    154,221,    138,208,    185,185,
 672: 142,210,    155,222,    155,222,    155,222,
 673: 155,222,    155,222,    155,222,    155,222,
 674: 155,222,    155,222,    155,222,    137,206,
 675: 180,229,    179,228,    184,233,    227,272,
 676: 139,209,    228,273,    150,217,    229,274,
 677: 147,214,    140,143,    151,218,    182,231,
 678: 182,232,    182,231,    182,231,    182,231,
 679: 182,231,    182,231,    182,231,    182,231,
 680: 182,231,    230,275,    232,277,    240,282,
 681: 241,198,    184,233,    152,219,    187,235,
 682: 187,235,    187,235,    187,235,    187,235,
 683: 187,235,    187,235,    187,235,    187,235,
 684: 187,235,    242,283,    190,238,    243,284,
 685: 244,285,    184,234,    184,234,    184,234,
 686: 184,234,    184,234,    184,234,    184,234,
 687: 184,234,    184,234,    184,234,    190,238,
 688: 185,188,    191,238,    190,239,    190,240,
 689: 190,239,    190,239,    190,239,    190,239,
 690: 190,239,    190,239,    190,239,    190,239,
 691: 245,286,    246,198,    191,238,    185,189,
 692: 193,238,    191,239,    191,240,    191,239,
 693: 191,239,    191,239,    191,239,    191,239,
 694: 191,239,    191,239,    191,239,    247,287,
 695: 248,288,    193,238,    194,238,    249,289,
 696: 193,239,    193,240,    193,239,    193,239,
 697: 193,239,    193,239,    193,239,    193,239,
 698: 193,239,    193,239,    251,143,    194,238,
 699: 195,238,    252,293,    194,239,    194,240,
 700: 194,239,    194,239,    194,239,    194,239,
 701: 194,239,    194,239,    194,239,    194,239,
 702: 253,294,    195,238,    197,238,    190,241,
 703: 195,239,    195,240,    195,239,    195,239,
 704: 195,239,    195,239,    195,239,    195,239,
 705: 195,239,    195,239,    191,242,    197,238,
 706: 198,238,    254,295,    197,239,    197,240,
 707: 197,239,    197,239,    197,239,    197,239,
 708: 197,239,    197,239,    197,239,    197,239,
 709: 207,207,    198,238,    233,233,    236,236,
 710: 198,239,    198,240,    198,239,    198,239,
 711: 198,239,    198,239,    198,239,    198,239,
 712: 198,239,    198,239,    193,244,    202,202,
 713: 237,237,    255,296,    257,297,    258,298,
 714: 259,299,    260,300,    262,301,    207,207,
 715: 263,302,    233,233,    236,236,    264,303,
 716: 269,304,    271,305,    273,306,    194,245,
 717: 274,307,    275,308,    281,310,    283,198,
 718: 284,311,    285,312,    202,202,    237,237,
 719: 286,313,    197,246,    287,314,    288,315,
 720: 289,316,    292,291,    293,318,    294,319,
 721: 295,207,    195,198,    296,143,    297,320,
 722: 298,143,    299,321,    202,250,    202,250,
 723: 202,250,    202,250,    202,250,    202,250,
 724: 202,250,    202,250,    202,250,    202,250,
 725: 220,265,    220,265,    220,265,    220,265,
 726: 220,265,    220,265,    220,265,    220,265,
 727: 220,265,    220,265,    221,266,    221,266,
 728: 221,266,    221,266,    221,266,    221,266,
 729: 221,266,    221,266,    221,266,    221,266,
 730: 222,267,    222,267,    222,267,    222,267,
 731: 222,267,    222,267,    222,267,    222,267,
 732: 222,267,    222,267,    231,276,    231,276,
 733: 231,276,    231,276,    231,276,    231,276,
 734: 231,276,    231,276,    231,276,    231,276,
 735: 234,278,    234,278,    234,278,    234,278,
 736: 234,278,    234,278,    234,278,    234,278,
 737: 234,278,    234,278,    235,279,    238,239,
 738: 238,240,    238,239,    238,239,    238,239,
 739: 238,239,    238,239,    238,239,    238,239,
 740: 238,239,    239,280,    276,276,    278,278,
 741: 300,322,    279,279,    301,323,    303,324,
 742: 304,223,    305,325,    306,326,    308,327,
 743: 311,330,    235,279,    312,331,    313,198,
 744: 250,290,    314,332,    315,198,    316,333,
 745: 322,336,    324,337,    327,338,    333,339,
 746: 239,280,    276,276,    278,278,    277,276,
 747: 279,279,    235,279,    235,279,    235,279,
 748: 235,279,    235,279,    235,279,    235,279,
 749: 235,279,    235,279,    235,279,    250,290,
 750: 239,280,    239,280,    239,280,    239,280,
 751: 239,280,    239,280,    239,280,    239,280,
 752: 239,280,    239,280,    277,276,    250,291,
 753: 335,341,    280,280,    282,280,    250,292,
 754: 250,292,    250,292,    250,292,    250,292,
 755: 250,292,    250,292,    250,292,    250,292,
 756: 250,292,    290,290,    277,309,    277,309,
 757: 277,309,    277,309,    277,309,    277,309,
 758: 277,309,    277,309,    277,309,    277,309,
 759: 280,280,    282,280,    291,317,    0,0,
 760: 0,0,    0,0,    0,0,    0,0,
 761: 0,0,    0,0,    0,0,    0,0,
 762: 290,290,    239,281,    310,329,    317,317,
 763: 328,328,    340,340,    282,239,    0,0,
 764: 0,0,    0,0,    0,0,    0,0,
 765: 0,0,    291,317,    309,328,    309,328,
 766: 309,328,    309,328,    309,328,    309,328,
 767: 309,328,    309,328,    309,328,    309,328,
 768: 0,0,    310,329,    317,317,    328,328,
 769: 340,340,    334,340,    0,0,    0,0,
 770: 0,0,    0,0,    0,0,    0,0,
 771: 0,0,    0,0,    341,340,    0,0,
 772: 0,0,    0,0,    317,334,    317,335,
 773: 317,334,    317,334,    317,334,    317,334,
 774: 317,334,    317,334,    317,334,    317,334,
 775: 334,340,    280,281,    282,281,    0,0,
 776: 0,0,    0,0,    0,0,    0,0,
 777: 0,0,    341,340,    0,0,    0,0,
 778: 0,0,    0,0,    0,0,    0,0,
 779: 334,340,    334,340,    334,340,    334,340,
 780: 334,340,    334,340,    334,340,    334,340,
 781: 334,340,    334,340,    341,334,    0,0,
 782: 0,0};
 783: struct yysvf yysvec[] ={
 784: 0,  0,  0,
 785: yycrank+1,  0,      0,
 786: yycrank+0,  yysvec+1,   0,
 787: yycrank+27, 0,      0,
 788: yycrank+0,  yysvec+3,   0,
 789: yycrank+29, 0,      yyvstop+1,
 790: yycrank+0,  0,      yyvstop+3,
 791: yycrank+47, 0,      0,
 792: yycrank+120,    0,      0,
 793: yycrank+37, yysvec+8,   0,
 794: yycrank+38, 0,      0,
 795: yycrank+50, 0,      0,
 796: yycrank+78, 0,      0,
 797: yycrank+63, 0,      0,
 798: yycrank+84, 0,      0,
 799: yycrank+42, 0,      0,
 800: yycrank+55, 0,      0,
 801: yycrank+85, 0,      0,
 802: yycrank+79, 0,      0,
 803: yycrank+56, 0,      0,
 804: yycrank+64, 0,      yyvstop+5,
 805: yycrank+51, 0,      0,
 806: yycrank+139,    0,      0,
 807: yycrank+89, 0,      yyvstop+7,
 808: yycrank+43, 0,      yyvstop+9,
 809: yycrank+84, 0,      yyvstop+11,
 810: yycrank+0,  yysvec+11,  yyvstop+13,
 811: yycrank+85, 0,      yyvstop+15,
 812: yycrank+0,  yysvec+12,  yyvstop+17,
 813: yycrank+50, 0,      yyvstop+19,
 814: yycrank+90, 0,      yyvstop+21,
 815: yycrank+0,  0,      yyvstop+23,
 816: yycrank+94, 0,      0,
 817: yycrank+0,  0,      yyvstop+25,
 818: yycrank+110,    0,      yyvstop+27,
 819: yycrank+82, 0,      yyvstop+29,
 820: yycrank+0,  yysvec+16,  yyvstop+31,
 821: yycrank+98, 0,      yyvstop+33,
 822: yycrank+0,  0,      yyvstop+35,
 823: yycrank+0,  yysvec+17,  yyvstop+37,
 824: yycrank+0,  yysvec+18,  yyvstop+39,
 825: yycrank+45, 0,      yyvstop+41,
 826: yycrank+0,  yysvec+19,  yyvstop+43,
 827: yycrank+103,    0,      yyvstop+45,
 828: yycrank+50, 0,      0,
 829: yycrank+97, 0,      0,
 830: yycrank+115,    0,      0,
 831: yycrank+110,    0,      0,
 832: yycrank+114,    0,      0,
 833: yycrank+144,    0,      0,
 834: yycrank+213,    0,      0,
 835: yycrank+223,    yysvec+8,   0,
 836: yycrank+233,    0,      0,
 837: yycrank+107,    0,      0,
 838: yycrank+115,    0,      0,
 839: yycrank+122,    0,      0,
 840: yycrank+194,    0,      0,
 841: yycrank+131,    0,      0,
 842: yycrank+122,    0,      0,
 843: yycrank+135,    0,      0,
 844: yycrank+138,    0,      0,
 845: yycrank+260,    yysvec+49,  0,
 846: yycrank+133,    0,      0,
 847: yycrank+149,    0,      0,
 848: yycrank+158,    0,      0,
 849: yycrank+160,    0,      0,
 850: yycrank+188,    0,      0,
 851: yycrank+184,    0,      0,
 852: yycrank+187,    0,      0,
 853: yycrank+182,    0,      0,
 854: yycrank+188,    0,      0,
 855: yycrank+181,    0,      0,
 856: yycrank+184,    0,      0,
 857: yycrank+185,    0,      0,
 858: yycrank+190,    0,      0,
 859: yycrank+194,    0,      0,
 860: yycrank+189,    0,      0,
 861: yycrank+207,    0,      0,
 862: yycrank+209,    0,      0,
 863: yycrank+253,    0,      0,
 864: yycrank+271,    0,      0,
 865: yycrank+281,    0,      0,
 866: yycrank+239,    0,      0,
 867: yycrank+0,  yysvec+24,  0,
 868: yycrank+0,  yysvec+25,  0,
 869: yycrank+0,  yysvec+27,  0,
 870: yycrank+0,  yysvec+29,  0,
 871: yycrank+0,  yysvec+30,  0,
 872: yycrank+240,    0,      0,
 873: yycrank+241,    0,      0,
 874: yycrank+197,    0,      0,
 875: yycrank+0,  yysvec+37,  0,
 876: yycrank+0,  yysvec+41,  0,
 877: yycrank+0,  yysvec+43,  0,
 878: yycrank+197,    0,      0,
 879: yycrank+198,    0,      0,
 880: yycrank+199,    0,      0,
 881: yycrank+200,    0,      0,
 882: yycrank+201,    0,      0,
 883: yycrank+226,    0,      0,
 884: yycrank+227,    0,      0,
 885: yycrank+228,    0,      0,
 886: yycrank+229,    0,      0,
 887: yycrank+230,    0,      0,
 888: yycrank+231,    0,      0,
 889: yycrank+232,    0,      0,
 890: yycrank+233,    0,      0,
 891: yycrank+234,    0,      0,
 892: yycrank+235,    0,      0,
 893: yycrank+236,    0,      0,
 894: yycrank+237,    0,      0,
 895: yycrank+0,  0,      yyvstop+47,
 896: yycrank+241,    0,      0,
 897: yycrank+242,    0,      0,
 898: yycrank+254,    0,      0,
 899: yycrank+250,    0,      0,
 900: yycrank+245,    0,      0,
 901: yycrank+252,    0,      0,
 902: yycrank+246,    0,      0,
 903: yycrank+263,    0,      0,
 904: yycrank+265,    0,      0,
 905: yycrank+319,    0,      0,
 906: yycrank+329,    0,      0,
 907: yycrank+378,    0,      yyvstop+49,
 908: yycrank+274,    0,      0,
 909: yycrank+286,    0,      0,
 910: yycrank+291,    0,      0,
 911: yycrank+293,    0,      0,
 912: yycrank+282,    0,      0,
 913: yycrank+285,    0,      0,
 914: yycrank+280,    0,      0,
 915: yycrank+278,    0,      0,
 916: yycrank+281,    0,      0,
 917: yycrank+286,    0,      0,
 918: yycrank+390,    0,      0,
 919: yycrank+391,    0,      0,
 920: yycrank+301,    yysvec+135, 0,
 921: yycrank+405,    0,      0,
 922: yycrank+406,    0,      yyvstop+51,
 923: yycrank+407,    0,      0,
 924: yycrank+408,    0,      0,
 925: yycrank+302,    yysvec+135, 0,
 926: yycrank+409,    0,      0,
 927: yycrank+410,    0,      0,
 928: yycrank+304,    yysvec+138, yyvstop+53,
 929: yycrank+304,    yysvec+135, 0,
 930: yycrank+295,    yysvec+143, 0,
 931: yycrank+411,    0,      yyvstop+55,
 932: yycrank+291,    yysvec+143, 0,
 933: yycrank+308,    yysvec+138, yyvstop+57,
 934: yycrank+412,    0,      yyvstop+59,
 935: yycrank+415,    0,      yyvstop+61,
 936: yycrank+436,    0,      yyvstop+63,
 937: yycrank+397,    0,      0,
 938: yycrank+448,    0,      0,
 939: yycrank+461,    0,      0,
 940: yycrank+0,  0,      yyvstop+65,
 941: yycrank+0,  0,      yyvstop+67,
 942: yycrank+0,  0,      yyvstop+69,
 943: yycrank+0,  0,      yyvstop+71,
 944: yycrank+0,  0,      yyvstop+73,
 945: yycrank+0,  0,      yyvstop+75,
 946: yycrank+0,  0,      yyvstop+77,
 947: yycrank+0,  0,      yyvstop+79,
 948: yycrank+0,  0,      yyvstop+81,
 949: yycrank+0,  0,      yyvstop+83,
 950: yycrank+0,  0,      yyvstop+85,
 951: yycrank+0,  0,      yyvstop+87,
 952: yycrank+0,  0,      yyvstop+89,
 953: yycrank+0,  0,      yyvstop+91,
 954: yycrank+0,  0,      yyvstop+93,
 955: yycrank+0,  0,      yyvstop+95,
 956: yycrank+0,  0,      yyvstop+97,
 957: yycrank+0,  0,      yyvstop+99,
 958: yycrank+0,  0,      yyvstop+101,
 959: yycrank+370,    0,      0,
 960: yycrank+309,    yysvec+175, 0,
 961: yycrank+371,    0,      0,
 962: yycrank+313,    yysvec+175, 0,
 963: yycrank+407,    0,      0,
 964: yycrank+405,    0,      0,
 965: yycrank+384,    0,      0,
 966: yycrank+483,    0,      0,
 967: yycrank+402,    0,      0,
 968: yycrank+513,    0,      yyvstop+103,
 969: yycrank+475,    0,      yyvstop+105,
 970: yycrank+399,    yysvec+185, yyvstop+107,
 971: yycrank+499,    0,      0,
 972: yycrank+349,    0,      0,
 973: yycrank+351,    0,      0,
 974: yycrank+526,    0,      0,
 975: yycrank+541,    0,      0,
 976: yycrank+360,    yysvec+191, 0,
 977: yycrank+556,    0,      0,
 978: yycrank+570,    0,      0,
 979: yycrank+584,    0,      0,
 980: yycrank+361,    yysvec+191, 0,
 981: yycrank+598,    0,      0,
 982: yycrank+612,    0,      0,
 983: yycrank+362,    yysvec+191, 0,
 984: yycrank+353,    yysvec+198, 0,
 985: yycrank+349,    yysvec+198, 0,
 986: yycrank+662,    0,      0,
 987: yycrank+358,    0,      0,
 988: yycrank+352,    0,      0,
 989: yycrank+360,    0,      0,
 990: yycrank+354,    0,      0,
 991: yycrank+647,    0,      yyvstop+109,
 992: yycrank+375,    0,      0,
 993: yycrank+376,    0,      0,
 994: yycrank+370,    0,      0,
 995: yycrank+379,    0,      0,
 996: yycrank+368,    0,      0,
 997: yycrank+380,    0,      0,
 998: yycrank+365,    0,      0,
 999: yycrank+380,    0,      0,
1000: yycrank+385,    0,      0,
1001: yycrank+368,    0,      0,
1002: yycrank+385,    0,      0,
1003: yycrank+385,    0,      0,
1004: yycrank+672,    0,      0,
1005: yycrank+682,    0,      0,
1006: yycrank+692,    0,      0,
1007: yycrank+443,    0,      yyvstop+111,
1008: yycrank+392,    0,      0,
1009: yycrank+394,    0,      0,
1010: yycrank+379,    0,      0,
1011: yycrank+426,    0,      0,
1012: yycrank+410,    0,      0,
1013: yycrank+427,    0,      0,
1014: yycrank+440,    0,      0,
1015: yycrank+702,    0,      0,
1016: yycrank+485,    yysvec+231, 0,
1017: yycrank+649,    0,      yyvstop+113,
1018: yycrank+712,    0,      0,
1019: yycrank+761,    0,      yyvstop+115,
1020: yycrank+650,    0,      yyvstop+117,
1021: yycrank+663,    0,      yyvstop+119,
1022: yycrank+723,    0,      0,
1023: yycrank+772,    0,      yyvstop+121,
1024: yycrank+486,    yysvec+239, yyvstop+123,
1025: yycrank+436,    0,      0,
1026: yycrank+442,    0,      0,
1027: yycrank+450,    0,      0,
1028: yycrank+443,    0,      0,
1029: yycrank+487,    0,      0,
1030: yycrank+481,    0,      0,
1031: yycrank+490,    0,      0,
1032: yycrank+502,    0,      0,
1033: yycrank+502,    0,      0,
1034: yycrank+787,    0,      yyvstop+125,
1035: yycrank+498,    0,      0,
1036: yycrank+519,    0,      0,
1037: yycrank+531,    0,      0,
1038: yycrank+524,    0,      0,
1039: yycrank+559,    0,      0,
1040: yycrank+0,  yysvec+254, 0,
1041: yycrank+576,    0,      0,
1042: yycrank+574,    0,      0,
1043: yycrank+576,    0,      0,
1044: yycrank+568,    0,      0,
1045: yycrank+0,  yysvec+254, 0,
1046: yycrank+578,    0,      0,
1047: yycrank+583,    0,      0,
1048: yycrank+568,    0,      0,
1049: yycrank+0,  0,      yyvstop+127,
1050: yycrank+0,  0,      yyvstop+129,
1051: yycrank+0,  0,      yyvstop+131,
1052: yycrank+0,  0,      yyvstop+133,
1053: yycrank+563,    0,      0,
1054: yycrank+0,  yysvec+269, 0,
1055: yycrank+585,    0,      0,
1056: yycrank+0,  yysvec+269, 0,
1057: yycrank+586,    0,      0,
1058: yycrank+591,    0,      0,
1059: yycrank+574,    0,      0,
1060: yycrank+773,    0,      yyvstop+135,
1061: yycrank+798,    0,      yyvstop+137,
1062: yycrank+774,    0,      yyvstop+139,
1063: yycrank+776,    0,      yyvstop+141,
1064: yycrank+824,    0,      yyvstop+143,
1065: yycrank+574,    0,      0,
1066: yycrank+825,    yysvec+238, yyvstop+145,
1067: yycrank+575,    0,      0,
1068: yycrank+594,    0,      0,
1069: yycrank+596,    0,      0,
1070: yycrank+582,    0,      0,
1071: yycrank+600,    0,      0,
1072: yycrank+598,    0,      0,
1073: yycrank+591,    0,      0,
1074: yycrank+836,    0,      yyvstop+147,
1075: yycrank+849,    0,      0,
1076: yycrank+657,    yysvec+290, yyvstop+149,
1077: yycrank+601,    0,      0,
1078: yycrank+589,    0,      0,
1079: yycrank+660,    yysvec+207, yyvstop+151,
1080: yycrank+585,    0,      0,
1081: yycrank+606,    0,      0,
1082: yycrank+594,    0,      0,
1083: yycrank+612,    0,      0,
1084: yycrank+686,    0,      0,
1085: yycrank+689,    0,      0,
1086: yycrank+0,  yysvec+254, 0,
1087: yycrank+687,    0,      0,
1088: yycrank+747,    0,      0,
1089: yycrank+692,    0,      0,
1090: yycrank+693,    0,      0,
1091: yycrank+0,  yysvec+269, 0,
1092: yycrank+691,    0,      0,
1093: yycrank+834,    0,      0,
1094: yycrank+861,    0,      0,
1095: yycrank+691,    0,      0,
1096: yycrank+680,    0,      0,
1097: yycrank+674,    0,      0,
1098: yycrank+696,    0,      0,
1099: yycrank+684,    0,      0,
1100: yycrank+701,    0,      0,
1101: yycrank+862,    0,      0,
1102: yycrank+0,  yysvec+298, 0,
1103: yycrank+0,  yysvec+296, 0,
1104: yycrank+0,  yysvec+298, 0,
1105: yycrank+0,  yysvec+254, 0,
1106: yycrank+699,    0,      0,
1107: yycrank+0,  yysvec+254, 0,
1108: yycrank+704,    0,      0,
1109: yycrank+0,  yysvec+269, 0,
1110: yycrank+0,  yysvec+269, 0,
1111: yycrank+705,    0,      0,
1112: yycrank+863,    0,      yyvstop+153,
1113: yycrank+0,  yysvec+310, yyvstop+155,
1114: yycrank+0,  yysvec+315, 0,
1115: yycrank+0,  yysvec+313, 0,
1116: yycrank+0,  yysvec+315, 0,
1117: yycrank+702,    0,      0,
1118: yycrank+888,    0,      yyvstop+157,
1119: yycrank+775,    yysvec+334, yyvstop+159,
1120: yycrank+0,  yysvec+298, 0,
1121: yycrank+0,  yysvec+254, 0,
1122: yycrank+0,  yysvec+269, 0,
1123: yycrank+0,  yysvec+315, 0,
1124: yycrank+864,    0,      yyvstop+161,
1125: yycrank+897,    yysvec+317, yyvstop+163,
1126: 0,  0,  0};
1127: struct yywork *yytop = yycrank+946;
1128: struct yysvf *yybgin = yysvec+1;
1129: char yymatch[] ={
1130: 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
1131: 01  ,011 ,01  ,01  ,01  ,01  ,01  ,01  ,
1132: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
1133: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
1134: 040 ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
1135: 01  ,01  ,01  ,01  ,01  ,'-' ,01  ,01  ,
1136: '0' ,'0' ,'2' ,'3' ,'3' ,'3' ,'6' ,'6' ,
1137: '6' ,'6' ,01  ,01  ,01  ,01  ,01  ,01  ,
1138: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
1139: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
1140: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
1141: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
1142: 01  ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,
1143: 'a' ,'a' ,01  ,'k' ,'k' ,'k' ,'n' ,'n' ,
1144: 'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,
1145: 'n' ,'n' ,01  ,01  ,01  ,01  ,01  ,01  ,
1146: 0};
1147: char yyextra[] ={
1148: 0,0,0,0,0,0,0,0,
1149: 0,0,0,0,0,0,0,0,
1150: 0,0,0,0,0,0,0,0,
1151: 0,0,0,0,0,0,0,0,
1152: 0,0,0,0,0,0,0,0,
1153: 0,0,0,0,0,0,0,0,
1154: 0};
1155: /*	ncform	4.1	83/08/11	*/

Defined functions

Defined variables

day_map defined in line 54; used 1 times
  • in line 68
month_map defined in line 19; used 1 times
  • in line 71
start_cond defined in line 2; used 3 times
yybgin defined in line 1128; never used
yycrank defined in line 544; used 349 times
yyextra defined in line 1147; used 1 times
yymatch defined in line 1129; used 2 times
yysvec defined in line 783; used 70 times
yytop defined in line 1127; never used
yyvstop defined in line 294; used 82 times

Defined struct's

yysvf defined in line 4; used 6 times
yywork defined in line 544; used 3 times

Defined macros

BEGIN defined in line 3; used 5 times
CVT2 defined in line 74; used 22 times
LC defined in line 78; used 3 times
SETDAY defined in line 68; used 2 times
SETMONTH defined in line 71; used 3 times
SKIPD defined in line 75; used 2 times
YYTYPE defined in line 543; used 1 times
Z defined in line 8; used 5 times
ZONE defined in line 76; used 11 times
ZONED defined in line 77; used 9 times
Last modified: 1986-04-21
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1815
Valid CSS Valid XHTML 1.0 Strict