Took out parsing of military time, which was causing issues when it
authorShantonu Sen <ssen@mit.edu>
Wed, 6 Sep 2000 22:40:03 +0000 (22:40 +0000)
committerShantonu Sen <ssen@mit.edu>
Wed, 6 Sep 2000 22:40:03 +0000 (22:40 +0000)
encountered something like (MET), which it doesn't recognize as a timezone,
and which was then read as military characters.

sbr/dtimep.c
sbr/dtimep.lex

index 68616b8..69a0c74 100644 (file)
@@ -282,78 +282,82 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
        *yy_cp = '\0'; \
        yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 38
-#define YY_END_OF_BUFFER 39
-static yyconst short int yy_accept[614] =
+#define YY_NUM_RULES 36
+#define YY_END_OF_BUFFER 37
+static yyconst short int yy_accept[661] =
     {   0,
-        0,    0,   39,   37,   37,   37,   37,   34,   34,   34,
-       34,   34,   34,   34,   34,   34,   37,   35,   35,   36,
-       36,   36,   36,   36,   36,   36,   36,   36,   37,   34,
-       34,   34,   34,   34,   34,   37,   35,   36,   36,   36,
-       36,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   37,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,   14,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   14,    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,   28,
-       27,    0,    0,   33,   21,   20,    0,   19,   18,    0,
-        0,   15,   32,   31,   17,   16,    0,    0,    0,   23,
-       22,    0,    0,    0,   26,    0,    0,   25,   24,    0,
-        0,    0,    0,    0,    0,   30,   29,    0,    0,   12,
-       13,    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,   12,   13,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   14,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   34,   28,   27,    0,
+        0,   33,   21,   20,    0,   19,   18,    0,    0,   15,
+       32,   31,   17,   16,    0,    0,    0,   23,   22,    0,
+        0,    0,   26,    0,    0,   25,   24,    0,    0,    0,
+
+        0,    0,    0,   30,   29,    0,    0,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   12,   13,    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,   12,   13,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    9,    9,    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,    9,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    9,
+        9,    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,    9,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    9,    7,    7,    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,   10,   11,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    7,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    9,
+        7,    7,    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,   10,   11,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    7,    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,    8,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    7,    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,    8,
         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,    6,    6,
+        6,    6,    6,    6,    6,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    5,    0,    5,    0,    0,    0,
+        0,    0,    0,    3,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    5,    5,    5,    0,    0,    8,
 
-        0,    6,    6,    6,    6,    6,    6,    6,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    5,    0,    5,
-        0,    0,    0,    0,    0,    0,    3,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    5,    5,    5,
-        0,    0,    8,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    5,    0,    0,
-        6,    6,    0,    6,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    3,    0,    0,    6,    0,    0,
-        0,    0,    0,    0,    6,    6,    0,    2,    4,    1,
-
-        1,    0,    6,    0,    0,    0,    1,    0,    0,    1,
-        2,    4,    0
+        0,    0,    0,    0,    5,    0,    0,    6,    6,    0,
+        6,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    3,    0,    0,    6,    0,    0,    0,    0,    0,
+        0,    6,    6,    0,    2,    4,    1,    1,    0,    6,
+        0,    0,    0,    1,    0,    0,    1,    2,    4,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -365,13 +369,13 @@ static yyconst int yy_ec[256] =
         1,    1,    4,    5,    6,    1,    7,    8,    9,    8,
         8,    8,    8,    8,    8,    8,    8,   10,    1,    1,
         1,    1,    1,    1,   11,   12,   13,   14,   15,   16,
-       17,   18,   19,   20,   21,   21,   22,   23,   24,   25,
-       26,   26,   27,   28,   29,   26,   30,   26,   31,    1,
-       32,    1,   33,    1,    1,    1,   34,   35,   36,   37,
+       17,   18,   19,   20,   19,   19,   21,   22,   23,   24,
+       19,   19,   25,   26,   27,   19,   28,   19,   29,   19,
+       30,    1,   31,    1,    1,    1,   32,   33,   34,   35,
 
-       38,   16,   39,   40,   41,   42,   21,   43,   44,   45,
-       46,   47,   26,   48,   49,   50,   51,   52,   30,   26,
-       53,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+       36,   37,   38,   39,   40,   41,   42,   43,   44,   45,
+       46,   47,   42,   48,   49,   50,   51,   52,   53,   42,
+       54,   42,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -388,396 +392,434 @@ static yyconst int yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst int yy_meta[54] =
+static yyconst int yy_meta[55] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1
+        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
+        2,    2,    2,    2,    2,    2,    2,    2,    2,    1,
+        1,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,    3,    3,    3,    3,    4,    3,    3,    3,
+        4,    3,    3,    3
     } ;
 
-static yyconst short int yy_base[614] =
+static yyconst short int yy_base[665] =
     {   0,
-        0,    0,  988,  989,   46,   48,   96,   62,  960,   48,
-      948,   53,   26,  963,   58,  989,   80,  989,   83,   54,
-      948,   64,  989,   74,   18,  955,  944,   92,  105,   85,
-      932,   74,   78,  936,   84,  101,  105,   91,  104,  929,
-      106,  136,  138,  134,  951,  135,  142,  955,  143,  144,
-      145,  949,  146,  947,  149,  128,  925,  129,  130,  929,
-      131,  137,  138,  923,  144,  921,  145,  193,  175,  183,
-      942,  941,  920,  928,  938,  937,  936,  927,  934,  933,
-      925,  918,  930,  929,  928,  927,  926,  908,   75,  924,
-      923,  143,  905,  921,  896,  897,  918,  917,  894,  896,
-
-      897,  890,  902,  989,  902,  910,  909,  902,  888,  884,
-      883,  882,  881,  880,  879,  878,  877,  876,  875,  874,
-      873,  872,  871,  870,  869,  868,  867,  866,  189,  191,
-       77,  877,  876,  154,  879,  866,  875,  872,  215,  989,
-      989,  162,  190,  989,  989,  989,  206,  989,  989,  199,
-      209,  989,  989,  989,  989,  989,  200,  204,  210,  989,
-      989,  216,  907,  223,  989,  217,  208,  989,  989,  224,
-      229,  231,  238,  248,  254,  989,  989,  875,  874,  253,
-      255,  858,  866,  868,  868,  857,  189,  217,  849,  850,
-      852,  258,  265,  272,  855,  848,  852,  844,  298,  892,
-
-      859,  858,  889,  888,  849,  854,  843,  851,  837,  846,
-      849,  833,  844,  842,  847,  846,  989,  989,  243,  247,
-      256,  267,  275,  271,  281,  274,  875,  285,  283,  280,
-      280,  282,  329,  874,  825,  839,  839,  293,  245,  834,
-      833,  277,  836,  823,  832,  829,  813,  817,  862,  810,
-      827,  823,  823,  815,  805,  820,  822,  806,  832,  831,
-      337,  809,  802,  806,  798,  814,  845,  844,  805,  800,
-      808,  804,  346,  348,  350,  839,  303,  838,  801,  790,
-      358,  835,  788,  796,  798,  798,  787,  306,  288,  779,
-      780,  782,  311,  775,  359,  789,  778,  791,  789,  360,
-
-      789,  769,  784,  776,  775,  295,  358,  816,  767,  781,
-      781,  766,  811,  777,  773,  766,  368,  375,  385,  380,
-      382,  761,  755,  324,  769,  768,  345,  771,  758,  767,
-      764,  276,  361,  371,  351,  366,  384,  395,  291,  799,
-      396,  399,  403,  752,  797,  745,  759,  743,  406,  761,
-      761,  760,  411,  413,  790,  753,  742,  736,  750,  739,
-      751,  415,  783,  427,  438,  782,  781,  734,  742,  744,
-      744,  733,  371,  378,  725,  726,  728,  440,  731,  724,
-      728,  720,  736,  767,  766,  727,  722,  730,  726,  761,
-      425,  714,  436,  708,  989,  989,  442,  446,  450,  712,
-
-      706,  710,  755,  718,  745,  448,  458,  752,  453,  461,
-      426,  462,  437,  463,  466,  469,  471,  470,  751,  474,
-      475,  476,  482,  750,  701,  715,  715,  700,  745,  711,
-      707,  700,  741,  477,  484,  740,  739,  738,  737,  690,
-      487,  689,  690,  447,  449,  697,  499,  516,  691,  684,
-      688,  680,  696,  727,  726,  687,  682,  690,  686,  521,
-      721,  514,  720,  683,  672,  666,  680,  669,  681,  705,
-      506,  712,  703,  671,  666,  660,  664,  657,  669,  669,
-      519,  523,  703,  654,  668,  668,  653,  698,  664,  660,
-      653,  525,  528,  537,  648,  642,  646,  691,  654,  532,
-
-      534,  654,  653,  638,  651,  639,  637,  640,  542,  545,
-      682,  645,  634,  628,  642,  631,  643,  547,  550,  558,
-      553,  556,  675,  674,  673,  626,  663,  561,  638,  637,
-      622,  635,  619,  630,  628,  569,  564,  572,  617,  611,
-      615,  660,  623,  574,  658,  576,  578,  586,  588,  596,
-      657,  591,  989,  605,  604,  619,  602,  617,  619,  603,
-      598,  649,  648,  647,  646,  573,  601,  587,  408,  594,
-      989,  989,  545,  989,  541,  495,  483,  500,  604,  503,
-      493,  606,  614,  609,  989,  446,  444,  989,  449,  611,
-      616,  618,  620,  622,  989,  989,  353,  323,  116,  624,
-
-      626,   94,  989,  628,  630,  632,  634,  636,  638,  989,
-      989,  989,  989
+        0,    0, 1119, 1120,   47,   49,  102,   91,   81,   93,
+       76,   99,  100,  101,  105,  106,  120,  121,  129,  125,
+      133,  119,   82,  130,  113,  143,  150,  137, 1069,  127,
+     1081,  130,  137, 1072,  134,    0,  155,  159,  143, 1081,
+      147,  161,  156, 1064, 1077,  164,   71,  192,  184,  189,
+        0,  196,  197,  202,  201,  203,  204,  205,  206,  210,
+      218,  190, 1063,  198,    0,  199, 1067,  202,  203,  205,
+     1061,  206, 1059,  207,  255,  236,  256,    0, 1082, 1081,
+     1058, 1067, 1078, 1077, 1076, 1067, 1074, 1073, 1065, 1057,
+     1070, 1069, 1068, 1067, 1066, 1046,  135, 1064, 1063,  205,
+
+     1043, 1061, 1034, 1035, 1058, 1057, 1032, 1034, 1035, 1028,
+     1042,    0, 1042, 1050, 1049, 1042, 1026,    0, 1022, 1023,
+     1020, 1031, 1018, 1017, 1016, 1031, 1014, 1013, 1029, 1021,
+     1010, 1009, 1008, 1012, 1006, 1005,  222,  216, 1004, 1008,
+     1002,  999, 1000,  999,  998,  997,  996,  998,  999,  992,
+     1006,    0, 1006,  990,  989,  241,  252,   90, 1002, 1001,
+      240, 1004,  989, 1000,  997,  275, 1120, 1120, 1120,  266,
+      244, 1120, 1120, 1120,  271, 1120, 1120,  115,  283, 1120,
+     1120, 1120, 1120, 1120,  272,  277,  284, 1120, 1120,  287,
+     1030,  292, 1120,  296,  291, 1120, 1120,  300,  306,  307,
+
+      309,  311,  317, 1120, 1120, 1000,  999,  301,  308,  313,
+      315,  323,  322,  324,  328,  327, 1027,  331,  332,  333,
+      338,  336,  342,  343,  348,  350,  361,  363,  980,  989,
+      992,  992,  979,  322,  326,  971,  972,  974,  367,  375,
+      385,  977,  970,  974,  966,  396, 1014,  983,  982, 1011,
+     1010,  972,  978,  965,  975,  959,  970,  973,  955,  968,
+      966,  971,  970, 1120, 1120,  344,  337,  388,  352,  381,
+      390,  394,  400,  997,  399,  383,  397,  400,  405,  418,
+      996,  947,  963,  963,  441,  364,  958,  957,  371,  960,
+      945,  956,  953,  934,  939,  984,  931,  951,  947,  947,
+
+      937,  926,  944,  946,  928,  955,  954,  444,  931,  924,
+      928,  920,  938,  967,  966,  928,  922,  932,  928,  446,
+      449,  454,  961,  434,  960,  925,  912,  462,  957,  910,
+      919,  922,  922,  909,  416,  412,  901,  902,  904,  463,
+      896,  465,  913,  900,  915,  913,  467,  913,  890,  908,
+      898,  897,  466,  471,  938,  889,  905,  905,  888,  933,
+      901,  897,  888,  484,  480,  493,  482,  496,  883,  876,
+      430,  893,  892,  374,  895,  880,  891,  888,  469,  494,
+      496,  498,  508,  510,  511,  514,  921,  513,  512,  515,
+      874,  919,  866,  883,  864,  516,  885,  885,  884,  517,
+
+      520,  912,  877,  864,  857,  874,  861,  875,  525,  905,
+      522,  534,  904,  903,  856,  865,  868,  868,  855,  495,
+      496,  847,  848,  850,  552,  853,  846,  850,  842,  860,
+      889,  888,  850,  844,  854,  850,  883,  518,  836,  550,
+      829, 1120, 1120,  554,  558,  566,  834,  827,  832,  877,
+      842,  867,  561,  574,  874,  563,  575,  539,  535,  549,
+      555,  571,  551,  576,  579,  873,  580,  585,  586,  589,
+      872,  823,  839,  839,  822,  867,  835,  831,  822,  863,
+      587,  598,  862,  861,  860,  859,  812,  601,  811,  812,
+      564,  575,  821,  599,  626,  813,  806,  810,  802,  820,
+
+      849,  848,  810,  804,  814,  810,  630,  843,  615,  842,
+      807,  794,  787,  804,  791,  805,  827,  621,  834,  825,
+      794,  788,  782,  786,  779,  793,  793,  632,  634,  825,
+      776,  792,  792,  775,  820,  788,  784,  775,  636,  639,
+      648,  770,  763,  768,  813,  778,  643,  645,  778,  777,
+      760,  775,  761,  759,  762,  653,  656,  804,  769,  756,
+      749,  766,  753,  767,  658,  661,  669,  664,  667,  797,
+      796,  795,  748,  785,  672,  762,  761,  744,  759,  741,
+      754,  752,  680,  675,  683,  739,  732,  737,  782,  747,
+      685,  780,  687,  689,  697,  699,  707,  779,  702, 1120,
+
+      726,  725,  743,  723,  741,  743,  725,  709,  771,  770,
+      769,  768,  721,  712,  698,  623,  705, 1120, 1120,  736,
+     1120,  735,  712,  725,  722,  715,  688,  676,  717,  725,
+      720, 1120,  605,  583, 1120,  589,  722,  727,  729,  731,
+      733, 1120, 1120,  565,  583,  428,  735,  737,  200, 1120,
+      739,  741,  743,  745,  747,  749, 1120, 1120, 1120, 1120,
+      757,  759,   57,  761
     } ;
 
-static yyconst short int yy_def[614] =
+static yyconst short int yy_def[665] =
     {   0,
-      613,    1,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,    0
+      660,    1,  660,  660,  660,  660,  660,  661,  661,  661,
+      661,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,  661,  661,  661,  661,   10,  660,  662,  662,  662,
+      662,  662,  662,  662,  662,  662,  662,  662,  662,  662,
+      662,  662,  662,  662,  662,  662,  660,  660,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,  662,  662,  662,  662,  662,  662,  662,  662,  662,
+      662,  662,  662,  662,  660,  660,  660,  663,  663,  663,
+      660,  660,  663,  663,  663,  660,  663,  663,  660,  660,
+      663,  663,  663,  663,  663,  660,  660,  663,  663,  660,
+
+      660,  663,  660,  660,  663,  663,  660,  660,  660,  660,
+      660,  663,  660,  663,  663,  660,  660,  664,  664,  664,
+      664,  664,  664,  664,  664,  664,  664,  664,  664,  664,
+      664,  664,  664,  664,  664,  664,  664,  664,  664,  664,
+      664,  664,  664,  664,  664,  664,  664,  664,  664,  664,
+      664,  664,  664,  664,  664,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,    0,
+      660,  660,  660,  660
     } ;
 
-static yyconst short int yy_nxt[1043] =
+static yyconst short int yy_nxt[1175] =
     {   0,
         4,    4,    4,    5,    4,    6,    4,    7,    7,    4,
         8,    9,   10,   11,   12,   13,   14,   15,   16,   17,
        18,   19,   20,   21,   22,   23,   24,   25,   26,   27,
-       28,   29,    4,   30,   31,   32,   11,   33,   34,   35,
-       16,   36,   18,   37,   38,   21,   39,   23,   24,   25,
-       40,   23,   41,   42,   42,   43,   43,  102,   44,   45,
-       46,   76,   47,   81,   48,   49,   79,   50,  103,   51,
-       52,   84,   53,   82,   77,   71,   54,   97,   55,   80,
-       94,   56,   57,   58,   85,   59,   60,   61,   72,   62,
-       98,   63,   64,   86,   65,  583,   90,   68,   66,   95,
-
-       67,   69,   69,   70,   70,  106,   87,   99,   73,   91,
-      113,  100,   74,   88,  115,  108,   92,  158,  107,  159,
-      118,  110,  114,  182,  101,  605,  116,  183,   93,  109,
-       89,   73,  119,  111,   88,   74,   95,  120,   92,  124,
-      125,  122,  127,  129,  129,  130,  130,   71,   76,  121,
-       93,   89,  126,  123,  128,   79,   84,   86,   90,   97,
-       72,   77,  106,  194,  110,  113,  115,  118,   80,   85,
-       87,   91,   98,  120,  122,  107,  111,  114,  116,  119,
-      125,  127,  139,  139,   68,  121,  123,  186,   69,   69,
-      162,  194,  126,  128,   68,  163,  180,  180,  181,  181,
-
-      194,  194,  195,  131,  187,  194,  132,  194,  133,  194,
-      199,  194,  134,  200,  135,  136,  137,  194,  194,  138,
-      192,  192,  193,  193,  199,  199,  131,  200,  200,  132,
-      194,  224,  199,  225,  134,  200,  135,  136,  137,  199,
-      196,  138,  200,  197,  261,  201,  198,  204,  261,  199,
-      202,  205,  200,  208,  207,  199,  203,  261,  200,  206,
-      217,  217,  218,  218,  226,  231,  232,  211,  261,  227,
-      192,  192,  261,  194,  209,  261,  261,  378,  210,  233,
-      233,  261,  261,  262,  261,  212,  261,  273,  273,  274,
-      274,  283,  378,  264,  281,  284,  213,  263,  214,  199,
-
-      282,  282,  353,  353,  275,  238,  238,  276,  239,  269,
-      287,  240,  199,  241,  265,  200,  379,  242,  268,  243,
-      244,  245,  270,  267,  246,  266,  386,  288,  271,  272,
-      275,  239,  604,  276,  240,  339,  277,  277,  261,  242,
-      340,  243,  244,  245,  306,  307,  246,  317,  337,  317,
-      338,  275,  378,  318,  318,  319,  319,  320,  321,  281,
-      199,  199,  378,  200,  200,  354,  354,  378,  324,  317,
-      368,  325,  378,  326,  369,  362,  362,  327,  372,  328,
-      329,  330,  363,  363,  331,  378,  317,  364,  364,  365,
-      365,  324,  363,  363,  325,  373,  378,  378,  382,  327,
-
-      378,  328,  329,  330,  378,  603,  331,  199,  381,  583,
-      200,  380,  397,  416,  397,  417,  383,  584,  398,  398,
-      399,  399,  405,  405,  406,  418,  199,  448,  407,  200,
-      419,  408,  385,  387,  409,  409,  384,  199,  448,  407,
-      200,  378,  408,  397,  388,  410,  410,  423,  423,  435,
-      435,  397,  389,  436,  436,  441,  441,  436,  436,  407,
-      447,  447,  407,  448,  448,  408,  449,  448,  447,  447,
-      448,  448,  448,  442,  451,  448,  448,  448,  199,  443,
-      476,  200,  597,  460,  444,  445,  461,  446,  478,  462,
-      462,  470,  470,  471,  473,  473,  596,  477,  595,  479,
-
-      407,  443,  582,  408,  448,  456,  444,  445,  455,  579,
-      452,  457,  450,  500,  500,  460,  453,  448,  461,  589,
-      458,  454,  460,  481,  482,  459,  509,  509,  492,  493,
-      510,  510,  518,  518,  519,  520,  520,  519,  494,  527,
-      527,  528,  528,  536,  521,  522,  536,  588,  544,  537,
-      537,  545,  538,  538,  546,  546,  519,  547,  547,  544,
-      549,  549,  545,  550,  550,  548,  548,  519,  553,  553,
-      536,  562,  562,  536,  587,  544,  561,  561,  586,  562,
-      562,  567,  567,  568,  568,  569,  569,  544,  544,  544,
-      545,  545,  545,  568,  568,  546,  546,  544,  570,  570,
-
-      545,  585,  585,  548,  548,  578,  578,  579,  581,  581,
-      582,  590,  590,  591,  591,  583,  594,  594,  598,  598,
-      580,  592,  593,  599,  599,  600,  600,  601,  601,  602,
-      602,  606,  606,  607,  607,  608,  608,  609,  609,  610,
-      610,  610,  610,  611,  611,  612,  612,  448,  448,  448,
-      536,  577,  576,  575,  574,  573,  572,  571,  378,  544,
-      566,  448,  565,  564,  563,  560,  559,  558,  557,  556,
-      555,  554,  552,  551,  378,  378,  378,  543,  542,  541,
-      419,  540,  539,  448,  535,  534,  533,  532,  531,  530,
-      529,  526,  378,  525,  524,  523,  517,  516,  515,  448,
-
-      514,  513,  512,  511,  448,  508,  507,  506,  505,  504,
-      503,  502,  501,  261,  471,  499,  498,  497,  340,  496,
-      495,  378,  494,  491,  490,  489,  488,  448,  448,  487,
-      486,  485,  484,  483,  480,  475,  474,  472,  261,  261,
-      261,  397,  194,  469,  468,  467,  378,  466,  465,  464,
-      463,  378,  448,  407,  406,  440,  261,  439,  438,  437,
-      434,  433,  194,  432,  431,  430,  429,  378,  378,  428,
-      427,  426,  425,  424,  422,  421,  420,  415,  414,  413,
-      412,  411,  194,  194,  317,  404,  403,  402,  227,  401,
-      400,  261,  396,  395,  394,  393,  392,  391,  194,  390,
-
-      378,  377,  376,  375,  374,  371,  370,  367,  366,  361,
-      360,  359,  261,  358,  357,  356,  355,  261,  352,  351,
-      350,  349,  348,  347,  346,  345,  344,  163,  343,  342,
-      341,  336,  335,  334,  333,  332,  281,  323,  322,  194,
-      275,  316,  315,  314,  313,  261,  261,  312,  311,  310,
-      309,  308,  305,  304,  303,  302,  301,  300,  299,  298,
-      297,  296,  295,  194,  294,  293,  292,  291,  290,  289,
-      286,  285,  280,  279,  278,  194,  261,  260,  259,  258,
-      257,  256,  255,  254,  253,  252,  251,  250,  249,  194,
-      194,  248,  247,  199,  237,  236,  235,  234,  230,  229,
-
-      228,  223,  222,  221,  220,  219,  216,  215,  194,  191,
-      190,  189,  188,  185,  184,  177,  176,  169,  168,  165,
-      161,  160,  156,  155,  154,  153,  152,  149,  148,  146,
-      145,  144,  141,  140,  179,  178,  177,  176,  175,  174,
-      173,  172,  171,  170,  169,  168,  167,  166,  165,  164,
-      161,  160,  157,  156,  155,  154,  153,  152,  151,  150,
-      149,  148,  147,  146,  145,  144,  143,  142,  141,  140,
-      104,  124,  117,  112,  104,   94,   83,   75,  104,  117,
-      112,  105,  104,   96,   83,   78,   75,  613,    3,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613
+        4,   28,   29,   30,   31,   32,   33,   34,   35,   36,
+       37,   36,   36,   38,   39,   40,   41,   36,   42,   43,
+       44,   36,   45,   46,   47,   47,   48,   48,  167,   49,
+       50,   51,   52,   53,   52,   54,   55,   52,   56,   57,
+       58,   52,   59,   52,   52,   60,   52,   61,  156,  156,
+       62,   63,   64,   65,   66,   65,   67,   68,   65,   69,
+       65,   65,   70,   71,   65,   72,   65,   65,   65,   73,
+
+       65,   65,   74,   75,   79,   83,   84,   76,   76,   77,
+       77,   86,   87,   78,   78,   80,  241,   85,   92,   78,
+      110,   91,  660,   88,   78,   78,  660,  660,  660,   93,
+       78,  660,  111,   94,   98,   89,  229,   81,   78,  660,
+      230,   82,   78,  660,   95,   99,  105,   90,  113,   78,
+      107,   96,  100,  102,  108,  112,  114,  106,  104,  660,
+      116,  124,  245,  660,  127,  660,  101,  115,  132,  109,
+       97,  119,  129,  117,  103,  125,  660,  186,  128,  187,
+      660,  145,  133,  120,  130,  121,  134,  122,  142,  135,
+      138,  143,  147,  139,  150,  146,  148,   79,  154,  157,
+
+      157,  630,   78,  136,  140,  137,  151,  141,   80,   78,
+       87,  149,  155,   83,   92,   78,   94,   98,   78,  105,
+       78,   88,   91,   78,  119,   93,   78,   95,   99,  102,
+      106,  114,  124,  127,   78,  112,  132,  135,  121,  139,
+      145,  154,  115,  166,  166,  241,  125,  128,  227,  227,
+      133,  136,  190,  141,  146,  155,   75,   75,  191,  228,
+      228,   76,   76,  216,  214,  158,  215,  241,  159,  217,
+      160,  233,  241,  241,  161,  162,  163,  164,  241,  165,
+      239,  239,  240,  240,  246,  241,  158,  247,  241,  159,
+      234,  160,  241,  246,  243,  161,  247,  241,  162,  163,
+
+      164,  246,  241,  165,  247,  242,  244,  241,  246,  241,
+      246,  247,  246,  247,  241,  247,  241,  248,  246,  251,
+      252,  247,  249,  241,  246,  241,  253,  247,  241,  241,
+      250,  254,  246,  241,  241,  247,  255,  241,  308,  246,
+      242,  258,  247,  246,  246,  308,  247,  247,  244,  246,
+      256,  246,  247,  308,  247,  257,  259,  248,  243,  260,
+      252,  261,  245,  251,  271,  253,  272,  254,  264,  264,
+      265,  265,  249,  273,  278,  279,  258,  250,  255,  274,
+      239,  239,  308,  309,  308,  257,  241,  310,  256,  308,
+      259,  308,  280,  280,  261,  308,  260,  246,  308,  312,
+
+      308,  308,  334,  285,  285,  419,  286,  320,  320,  287,
+      330,  288,  321,  321,  331,  289,  290,  291,  292,  322,
+      293,  335,  323,  311,  420,  324,  324,  286,  318,  315,
+      287,  313,  288,  316,  317,  322,  289,  652,  323,  290,
+      291,  292,  328,  314,  293,  308,  319,  364,  329,  329,
+      364,  353,  354,  365,  365,  322,  366,  366,  384,  386,
+      385,  367,  368,  328,  246,  387,  246,  247,  246,  247,
+      425,  247,  371,  400,  400,  372,  415,  373,  401,  401,
+      416,  374,  375,  376,  377,  364,  378,  410,  410,  411,
+      411,  409,  409,  371,  364,  425,  372,  425,  373,  425,
+
+      410,  410,  374,  412,  412,  375,  376,  377,  426,  425,
+      378,  425,  425,  425,  425,  425,  425,  246,  444,  246,
+      247,  444,  247,  454,  445,  445,  455,  446,  446,  456,
+      456,  428,  452,  452,  453,  454,  495,  463,  455,  464,
+      495,  457,  457,  465,  427,  429,  432,  433,  434,  466,
+      495,  246,  495,  425,  247,  444,  495,  435,  430,  470,
+      470,  482,  482,  431,  436,  483,  483,  444,  488,  488,
+      494,  494,  495,  483,  483,  454,  454,  495,  496,  455,
+      495,  495,  494,  494,  498,  497,  495,  495,  246,  489,
+      507,  247,  651,  508,  490,  523,  509,  509,  491,  492,
+
+      454,  493,  499,  455,  501,  517,  517,  518,  520,  520,
+      489,  502,  503,  525,  524,  504,  507,  490,  650,  508,
+      644,  500,  491,  492,  630,  526,  493,  495,  547,  547,
+      505,  507,  631,  528,  529,  506,  643,  539,  540,  556,
+      556,  557,  557,  565,  565,  566,  567,  567,  566,  541,
+      574,  574,  575,  575,  583,  568,  569,  583,  642,  591,
+      584,  584,  592,  585,  585,  593,  593,  566,  594,  594,
+      591,  596,  596,  592,  597,  597,  595,  595,  566,  600,
+      600,  583,  609,  609,  583,  629,  591,  608,  608,  495,
+      609,  609,  614,  614,  615,  615,  616,  616,  591,  591,
+
+      591,  592,  592,  592,  615,  615,  593,  593,  591,  617,
+      617,  592,  632,  632,  595,  595,  625,  625,  626,  628,
+      628,  629,  637,  637,  638,  638,  630,  641,  641,  645,
+      645,  626,  639,  640,  646,  646,  647,  647,  648,  648,
+      649,  649,  653,  653,  654,  654,  655,  655,  656,  656,
+      657,  657,  657,  657,  658,  658,  659,  659,   78,  636,
+       78,  118,  118,  167,  167,  635,  634,  633,  627,  495,
+      495,  495,  583,  624,  623,  622,  621,  620,  619,  618,
+      425,  591,  613,  495,  612,  611,  610,  607,  606,  605,
+      604,  603,  602,  601,  599,  598,  425,  425,  425,  590,
+
+      589,  588,  466,  587,  586,  495,  582,  581,  580,  579,
+      578,  577,  576,  573,  425,  572,  571,  570,  564,  563,
+      562,  495,  561,  560,  559,  558,  495,  555,  554,  553,
+      552,  551,  550,  549,  548,  308,  518,  546,  545,  544,
+      387,  543,  542,  425,  541,  538,  537,  536,  535,  495,
+      495,  534,  533,  532,  531,  530,  527,  522,  521,  519,
+      308,  308,  308,  444,  241,  516,  515,  514,  425,  513,
+      512,  511,  510,  425,  495,  454,  453,  487,  308,  486,
+      485,  484,  481,  480,  241,  479,  478,  477,  476,  425,
+      425,  475,  474,  473,  472,  471,  469,  468,  467,  462,
+
+      461,  460,  459,  458,  241,  241,  364,  451,  450,  449,
+      274,  448,  447,  308,  443,  442,  441,  440,  439,  438,
+      241,  437,  425,  424,  423,  422,  421,  418,  417,  414,
+      413,  408,  407,  406,  308,  405,  404,  403,  402,  308,
+      399,  398,  397,  396,  395,  394,  393,  392,  391,  191,
+      390,  389,  388,  383,  382,  381,  380,  379,  328,  370,
+      369,  241,  322,  363,  362,  361,  360,  308,  308,  359,
+      358,  357,  356,  355,  352,  351,  350,  349,  348,  347,
+      346,  345,  344,  343,  342,  241,  341,  340,  339,  338,
+      337,  336,  333,  332,  327,  326,  325,  241,  308,  307,
+
+      306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
+      296,  241,  241,  295,  294,  246,  284,  283,  282,  281,
+      277,  276,  275,  270,  269,  268,  267,  266,  241,  263,
+      262,  241,  238,  237,  236,  235,  232,  231,  205,  204,
+      226,  225,  224,  223,  222,  221,  197,  196,  220,  193,
+      219,  189,  218,  188,  184,  183,  213,  182,  181,  180,
+      212,  211,  177,  176,  210,  174,  173,  172,  209,  169,
+      208,  168,  207,  206,  205,  204,  203,  202,  201,  200,
+      199,  198,  197,  196,  195,  194,  193,  192,  189,  188,
+      185,  184,  183,  182,  181,  180,  179,  178,  177,  176,
+
+      175,  174,  173,  172,  171,  170,  169,  168,  152,  143,
+      131,  123,  153,  152,  144,  131,  126,  123,  660,    3,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660
     } ;
 
-static yyconst short int yy_chk[1043] =
+static yyconst short int yy_chk[1175] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    5,    5,    6,    6,   25,    6,    6,
-        6,   10,    6,   13,    6,    6,   12,    6,   25,    6,
-        6,   15,    6,   13,   10,    8,    6,   22,    6,   12,
-       20,    6,    6,    6,   15,    6,    6,    6,    8,    6,
-       22,    6,    6,   17,    6,  602,   19,    7,    6,   20,
-
-        6,    7,    7,    7,    7,   28,   17,   24,    8,   19,
-       32,   24,    8,   17,   33,   29,   19,   89,   28,   89,
-       35,   30,   32,  131,   24,  599,   33,  131,   19,   29,
-       17,   30,   35,   30,   36,   30,   38,   36,   37,   38,
-       39,   37,   41,   42,   42,   43,   43,   44,   46,   36,
-       37,   36,   39,   37,   41,   47,   49,   50,   51,   53,
-       44,   46,   55,  142,   56,   58,   59,   61,   47,   49,
-       50,   51,   53,   62,   63,   55,   56,   58,   59,   61,
-       65,   67,   69,   69,   70,   62,   63,  134,   70,   70,
-       92,  143,   65,   67,   68,   92,  129,  129,  130,  130,
-
-      150,  157,  142,   68,  134,  158,   68,  147,   68,  167,
-      151,  159,   68,  151,   68,   68,   68,  162,  166,   68,
-      139,  139,  139,  139,  164,  170,   68,  164,  170,   68,
-      171,  187,  172,  187,   68,  172,   68,   68,   68,  173,
-      143,   68,  173,  147,  219,  151,  150,  159,  220,  174,
-      157,  162,  174,  167,  166,  175,  158,  221,  175,  164,
-      180,  180,  181,  181,  188,  192,  192,  172,  222,  188,
-      193,  193,  224,  194,  170,  226,  223,  332,  171,  194,
-      194,  230,  225,  219,  229,  173,  228,  231,  231,  232,
-      232,  239,  339,  221,  238,  239,  174,  220,  175,  199,
-
-      238,  238,  306,  306,  277,  199,  199,  277,  199,  226,
-      242,  199,  293,  199,  222,  293,  332,  199,  225,  199,
-      199,  199,  228,  224,  199,  223,  339,  242,  229,  230,
-      233,  199,  598,  233,  199,  289,  233,  233,  261,  199,
-      289,  199,  199,  199,  261,  261,  199,  273,  288,  274,
-      288,  275,  335,  273,  273,  274,  274,  275,  275,  281,
-      295,  300,  333,  295,  300,  307,  307,  336,  281,  317,
-      324,  281,  334,  281,  324,  317,  317,  281,  327,  281,
-      281,  281,  318,  318,  281,  337,  319,  320,  320,  321,
-      321,  281,  319,  319,  281,  327,  338,  341,  335,  281,
-
-      342,  281,  281,  281,  343,  597,  281,  349,  334,  569,
-      349,  333,  353,  373,  354,  373,  336,  569,  353,  353,
-      354,  354,  362,  362,  362,  374,  391,  411,  364,  391,
-      374,  364,  338,  341,  364,  364,  337,  393,  413,  365,
-      393,  378,  365,  397,  342,  365,  365,  378,  378,  397,
-      397,  399,  343,  398,  398,  406,  406,  399,  399,  407,
-      409,  409,  410,  412,  414,  410,  411,  415,  410,  410,
-      416,  418,  417,  407,  413,  420,  421,  422,  434,  407,
-      444,  434,  589,  423,  407,  407,  423,  407,  445,  423,
-      423,  435,  435,  435,  441,  441,  587,  444,  586,  445,
-
-      447,  407,  581,  447,  580,  418,  407,  407,  417,  578,
-      414,  420,  412,  471,  471,  462,  415,  448,  462,  577,
-      421,  416,  460,  448,  448,  422,  481,  481,  460,  460,
-      482,  482,  492,  492,  492,  493,  493,  493,  494,  500,
-      500,  501,  501,  509,  494,  494,  510,  576,  518,  509,
-      509,  518,  510,  510,  518,  518,  518,  519,  519,  520,
-      521,  521,  520,  522,  522,  520,  520,  520,  528,  528,
-      536,  537,  537,  538,  575,  544,  536,  536,  573,  538,
-      538,  544,  544,  546,  546,  547,  547,  548,  568,  549,
-      548,  568,  549,  548,  548,  549,  549,  550,  552,  552,
-
-      550,  570,  570,  550,  550,  561,  561,  561,  567,  567,
-      567,  579,  579,  582,  582,  583,  584,  584,  590,  590,
-      566,  583,  583,  591,  591,  592,  592,  593,  593,  594,
-      594,  600,  600,  601,  601,  604,  604,  605,  605,  606,
-      606,  607,  607,  608,  608,  609,  609,  565,  564,  563,
-      562,  560,  559,  558,  557,  556,  555,  554,  551,  545,
-      543,  542,  541,  540,  539,  535,  534,  533,  532,  531,
-      530,  529,  527,  526,  525,  524,  523,  517,  516,  515,
-      514,  513,  512,  511,  508,  507,  506,  505,  504,  503,
-      502,  499,  498,  497,  496,  495,  491,  490,  489,  488,
-
-      487,  486,  485,  484,  483,  480,  479,  478,  477,  476,
-      475,  474,  473,  472,  470,  469,  468,  467,  466,  465,
-      464,  463,  461,  459,  458,  457,  456,  455,  454,  453,
-      452,  451,  450,  449,  446,  443,  442,  440,  439,  438,
-      437,  436,  433,  432,  431,  430,  429,  428,  427,  426,
-      425,  424,  419,  408,  405,  404,  403,  402,  401,  400,
-      394,  392,  390,  389,  388,  387,  386,  385,  384,  383,
-      382,  381,  380,  379,  377,  376,  375,  372,  371,  370,
-      369,  368,  367,  366,  363,  361,  360,  359,  358,  357,
-      356,  355,  352,  351,  350,  348,  347,  346,  345,  344,
-
-      340,  331,  330,  329,  328,  326,  325,  323,  322,  316,
-      315,  314,  313,  312,  311,  310,  309,  308,  305,  304,
-      303,  302,  301,  299,  298,  297,  296,  294,  292,  291,
-      290,  287,  286,  285,  284,  283,  282,  280,  279,  278,
-      276,  272,  271,  270,  269,  268,  267,  266,  265,  264,
-      263,  262,  260,  259,  258,  257,  256,  255,  254,  253,
-      252,  251,  250,  249,  248,  247,  246,  245,  244,  243,
-      241,  240,  237,  236,  235,  234,  227,  216,  215,  214,
-      213,  212,  211,  210,  209,  208,  207,  206,  205,  204,
-      203,  202,  201,  200,  198,  197,  196,  195,  191,  190,
-
-      189,  186,  185,  184,  183,  182,  179,  178,  163,  138,
-      137,  136,  135,  133,  132,  128,  127,  126,  125,  124,
-      123,  122,  121,  120,  119,  118,  117,  116,  115,  114,
-      113,  112,  111,  110,  109,  108,  107,  106,  105,  103,
-      102,  101,  100,   99,   98,   97,   96,   95,   94,   93,
-       91,   90,   88,   87,   86,   85,   84,   83,   82,   81,
-       80,   79,   78,   77,   76,   75,   74,   73,   72,   71,
-       66,   64,   60,   57,   54,   52,   48,   45,   40,   34,
-       31,   27,   26,   21,   14,   11,    9,    3,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613,  613,  613,  613,  613,  613,  613,  613,  613,
-      613,  613
+        1,    1,    1,    1,    5,    5,    6,    6,  663,    6,
+        6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
+        6,    6,    6,    6,    6,    6,    6,    6,   47,   47,
+        6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
+        6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
+
+        6,    6,    6,    7,    8,    9,   10,    7,    7,    7,
+        7,   11,   12,   13,   14,    8,  178,   10,   15,   16,
+       23,   14,   11,   12,   13,   14,   11,    9,   23,   15,
+       16,    9,   23,   17,   18,   13,  158,    8,   20,   10,
+      158,    8,   19,   10,   17,   18,   21,   13,   25,   20,
+       22,   17,   18,   19,   22,   24,   26,   21,   20,   25,
+       27,   30,  178,   25,   32,   22,   18,   26,   35,   22,
+       17,   28,   33,   27,   19,   30,   24,   97,   32,   97,
+       24,   41,   35,   28,   33,   28,   37,   28,   39,   37,
+       38,   39,   42,   38,   43,   41,   42,   49,   46,   48,
+
+       48,  649,   50,   37,   38,   37,   43,   38,   49,   52,
+       53,   42,   46,   50,   55,   54,   56,   57,   58,   59,
+       52,   53,   54,   60,   62,   55,   54,   56,   57,   58,
+       59,   61,   64,   66,   60,   60,   68,   69,   62,   70,
+       72,   74,   61,   76,   76,  171,   64,   66,  156,  156,
+       68,   69,  100,   70,   72,   74,   75,   77,  100,  157,
+      157,   77,   77,  138,  137,   75,  137,  170,   75,  138,
+       75,  161,  175,  185,   75,   75,   75,   75,  186,   75,
+      166,  166,  166,  166,  179,  187,   75,  179,  190,   75,
+      161,   75,  195,  192,  171,   75,  192,  194,   75,   75,
+
+       75,  198,  208,   75,  198,  170,  175,  199,  200,  209,
+      201,  200,  202,  201,  210,  202,  211,  179,  203,  187,
+      190,  203,  185,  213,  212,  214,  192,  212,  216,  215,
+      186,  194,  218,  219,  220,  218,  195,  222,  267,  221,
+      208,  200,  221,  223,  224,  266,  223,  224,  210,  225,
+      198,  226,  225,  269,  226,  199,  201,  212,  209,  202,
+      216,  203,  211,  215,  234,  218,  234,  219,  227,  227,
+      228,  228,  213,  235,  239,  239,  223,  214,  220,  235,
+      240,  240,  270,  266,  276,  222,  241,  267,  221,  268,
+      224,  271,  241,  241,  226,  272,  225,  246,  277,  269,
+
+      275,  273,  289,  246,  246,  374,  246,  278,  278,  246,
+      286,  246,  279,  279,  286,  246,  246,  246,  246,  280,
+      246,  289,  280,  268,  374,  280,  280,  246,  276,  272,
+      246,  270,  246,  273,  275,  324,  246,  646,  324,  246,
+      246,  246,  285,  271,  246,  308,  277,  320,  285,  285,
+      321,  308,  308,  320,  320,  322,  321,  321,  335,  336,
+      335,  322,  322,  328,  340,  336,  342,  340,  347,  342,
+      379,  347,  328,  353,  353,  328,  371,  328,  354,  354,
+      371,  328,  328,  328,  328,  364,  328,  365,  365,  367,
+      367,  364,  364,  328,  366,  380,  328,  381,  328,  382,
+
+      366,  366,  328,  368,  368,  328,  328,  328,  379,  383,
+      328,  384,  385,  389,  388,  386,  390,  396,  400,  438,
+      396,  401,  438,  411,  400,  400,  411,  401,  401,  411,
+      411,  381,  409,  409,  409,  412,  459,  420,  412,  420,
+      458,  412,  412,  421,  380,  382,  385,  386,  388,  421,
+      460,  440,  463,  425,  440,  444,  461,  389,  383,  425,
+      425,  444,  444,  384,  390,  445,  445,  446,  453,  453,
+      456,  456,  462,  446,  446,  454,  457,  464,  458,  457,
+      465,  467,  457,  457,  460,  459,  468,  469,  481,  454,
+      470,  481,  645,  470,  454,  491,  470,  470,  454,  454,
+
+      494,  454,  461,  494,  463,  482,  482,  482,  488,  488,
+      454,  464,  465,  492,  491,  467,  509,  454,  644,  509,
+      636,  462,  454,  454,  616,  492,  454,  495,  518,  518,
+      468,  507,  616,  495,  495,  469,  634,  507,  507,  528,
+      528,  529,  529,  539,  539,  539,  540,  540,  540,  541,
+      547,  547,  548,  548,  556,  541,  541,  557,  633,  565,
+      556,  556,  565,  557,  557,  565,  565,  565,  566,  566,
+      567,  568,  568,  567,  569,  569,  567,  567,  567,  575,
+      575,  583,  584,  584,  585,  628,  591,  583,  583,  627,
+      585,  585,  591,  591,  593,  593,  594,  594,  595,  615,
+
+      596,  595,  615,  596,  595,  595,  596,  596,  597,  599,
+      599,  597,  617,  617,  597,  597,  608,  608,  608,  614,
+      614,  614,  626,  626,  629,  629,  630,  631,  631,  637,
+      637,  625,  630,  630,  638,  638,  639,  639,  640,  640,
+      641,  641,  647,  647,  648,  648,  651,  651,  652,  652,
+      653,  653,  654,  654,  655,  655,  656,  656,  661,  624,
+      661,  662,  662,  664,  664,  623,  622,  620,  613,  612,
+      611,  610,  609,  607,  606,  605,  604,  603,  602,  601,
+      598,  592,  590,  589,  588,  587,  586,  582,  581,  580,
+      579,  578,  577,  576,  574,  573,  572,  571,  570,  564,
+
+      563,  562,  561,  560,  559,  558,  555,  554,  553,  552,
+      551,  550,  549,  546,  545,  544,  543,  542,  538,  537,
+      536,  535,  534,  533,  532,  531,  530,  527,  526,  525,
+      524,  523,  522,  521,  520,  519,  517,  516,  515,  514,
+      513,  512,  511,  510,  508,  506,  505,  504,  503,  502,
+      501,  500,  499,  498,  497,  496,  493,  490,  489,  487,
+      486,  485,  484,  483,  480,  479,  478,  477,  476,  475,
+      474,  473,  472,  471,  466,  455,  452,  451,  450,  449,
+      448,  447,  441,  439,  437,  436,  435,  434,  433,  432,
+      431,  430,  429,  428,  427,  426,  424,  423,  422,  419,
+
+      418,  417,  416,  415,  414,  413,  410,  408,  407,  406,
+      405,  404,  403,  402,  399,  398,  397,  395,  394,  393,
+      392,  391,  387,  378,  377,  376,  375,  373,  372,  370,
+      369,  363,  362,  361,  360,  359,  358,  357,  356,  355,
+      352,  351,  350,  349,  348,  346,  345,  344,  343,  341,
+      339,  338,  337,  334,  333,  332,  331,  330,  329,  327,
+      326,  325,  323,  319,  318,  317,  316,  315,  314,  313,
+      312,  311,  310,  309,  307,  306,  305,  304,  303,  302,
+      301,  300,  299,  298,  297,  296,  295,  294,  293,  292,
+      291,  290,  288,  287,  284,  283,  282,  281,  274,  263,
+
+      262,  261,  260,  259,  258,  257,  256,  255,  254,  253,
+      252,  251,  250,  249,  248,  247,  245,  244,  243,  242,
+      238,  237,  236,  233,  232,  231,  230,  229,  217,  207,
+      206,  191,  165,  164,  163,  162,  160,  159,  155,  154,
+      153,  151,  150,  149,  148,  147,  146,  145,  144,  143,
+      142,  141,  140,  139,  136,  135,  134,  133,  132,  131,
+      130,  129,  128,  127,  126,  125,  124,  123,  122,  121,
+      120,  119,  117,  116,  115,  114,  113,  111,  110,  109,
+      108,  107,  106,  105,  104,  103,  102,  101,   99,   98,
+       96,   95,   94,   93,   92,   91,   90,   89,   88,   87,
+
+       86,   85,   84,   83,   82,   81,   80,   79,   73,   71,
+       67,   63,   45,   44,   40,   34,   31,   29,    3,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660,  660,  660,  660,  660,  660,  660,
+      660,  660,  660,  660
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1124,7 +1166,7 @@ YY_MALLOC_DECL
 YY_DECL
        {
        register yy_state_type yy_current_state;
-       register char *yy_cp, *yy_bp;
+       register char *yy_cp = NULL, *yy_bp = NULL;
        register int yy_act;
 
 #line 226 "dtimep.lex"
@@ -1193,13 +1235,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 614 )
+                               if ( yy_current_state >= 661 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 989 );
+               while ( yy_base[yy_current_state] != 1120 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1389,11 +1431,12 @@ YY_RULE_SETUP
 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
                                    zonehack (&tw);
 #endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
+                                   //                              yyterminate();
                                     }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 362 "dtimep.lex"
+#line 363 "dtimep.lex"
 {
                                     INIT();
                                     SKIPTOD();
@@ -1401,140 +1444,123 @@ YY_RULE_SETUP
 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
                                    zonehack (&tw);
 #endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
+                                   //                              yyterminate();
+                                   
                                     }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 370 "dtimep.lex"
+#line 373 "dtimep.lex"
 INIT(); SETZONE(0);
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 371 "dtimep.lex"
+#line 374 "dtimep.lex"
 INIT(); SETZONE(0);
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 372 "dtimep.lex"
+#line 375 "dtimep.lex"
 INIT(); SETZONE(200);
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 373 "dtimep.lex"
+#line 376 "dtimep.lex"
 INIT(); SETDST(); SETZONE(2);
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 374 "dtimep.lex"
+#line 377 "dtimep.lex"
 INIT(); SETZONE(-500);
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 375 "dtimep.lex"
+#line 378 "dtimep.lex"
 INIT(); SETDST(); SETZONE(-500);
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 376 "dtimep.lex"
+#line 379 "dtimep.lex"
 INIT(); SETZONE(-600);
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 377 "dtimep.lex"
+#line 380 "dtimep.lex"
 INIT(); SETDST(); SETZONE(-600);
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 378 "dtimep.lex"
+#line 381 "dtimep.lex"
 INIT(); SETZONE(-700);
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 379 "dtimep.lex"
+#line 382 "dtimep.lex"
 INIT(); SETDST(); SETZONE(-700);
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 380 "dtimep.lex"
+#line 383 "dtimep.lex"
 INIT(); SETZONE(-800);
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 381 "dtimep.lex"
+#line 384 "dtimep.lex"
 INIT(); SETDST(); SETZONE(-800);
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 382 "dtimep.lex"
+#line 385 "dtimep.lex"
 INIT(); SETZONE(-330);
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 383 "dtimep.lex"
+#line 386 "dtimep.lex"
 INIT(); SETZONE(-400);
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 384 "dtimep.lex"
+#line 387 "dtimep.lex"
 INIT(); SETDST(); SETZONE(-400);
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 385 "dtimep.lex"
+#line 388 "dtimep.lex"
 INIT(); SETZONE(-900);
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 386 "dtimep.lex"
+#line 389 "dtimep.lex"
 INIT(); SETDST(); SETZONE(-900);
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 387 "dtimep.lex"
+#line 390 "dtimep.lex"
 INIT(); SETZONE(-1000);
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 388 "dtimep.lex"
+#line 391 "dtimep.lex"
 INIT(); SETDST(); SETZONE(-1000);
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 389 "dtimep.lex"
+#line 392 "dtimep.lex"
 INIT(); SETDST(); SETZONE(-100);
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 390 "dtimep.lex"
-{
-                                       INIT();
-                                       SETZONE(100*(('a'-1) - tolower(*cp)));
-                                   }
+#line 393 "dtimep.lex"
+;
        YY_BREAK
 case 35:
 YY_RULE_SETUP
 #line 394 "dtimep.lex"
-{
-                                       INIT();
-                                       SETZONE(100*('a' - tolower(*cp)));
-                                   }
-       YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 398 "dtimep.lex"
-{
-                                       INIT();
-                                       SETZONE(100*(tolower(*cp) - 'm'));
-                                    }
-       YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 402 "dtimep.lex"
 
        YY_BREAK
-case 38:
+case 36:
 YY_RULE_SETUP
-#line 403 "dtimep.lex"
+#line 395 "dtimep.lex"
 ECHO;
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
@@ -1828,7 +1854,7 @@ static yy_state_type yy_get_previous_state()
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 614 )
+                       if ( yy_current_state >= 661 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1863,11 +1889,11 @@ yy_state_type yy_current_state;
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 614 )
+               if ( yy_current_state >= 661 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 613);
+       yy_is_jam = (yy_current_state == 660);
 
        return yy_is_jam ? 0 : yy_current_state;
        }
@@ -2422,4 +2448,4 @@ int main()
        return 0;
        }
 #endif
-#line 403 "dtimep.lex"
+#line 395 "dtimep.lex"
index c36844d..0a65672 100644 (file)
@@ -358,6 +358,7 @@ d   [0-9]
 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
                                    zonehack (&tw);
 #endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
+                                   //                              yyterminate();
                                     }
 "-"{D}{d}{d}                                  {
                                     INIT();
@@ -366,6 +367,8 @@ d   [0-9]
 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
                                    zonehack (&tw);
 #endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
+                                   //                              yyterminate();
+                                   
                                     }
 "-"?("ut"|"UT")                            INIT(); SETZONE(0);
 "-"?("gmt"|"GMT")                  INIT(); SETZONE(0);
@@ -387,16 +390,5 @@ d  [0-9]
 "-"?("hst"|"HST")                  INIT(); SETZONE(-1000);
 "-"?("hdt"|"HDT")                  INIT(); SETDST(); SETZONE(-1000);
 "-"?("bst"|"BST")                  INIT(); SETDST(); SETZONE(-100);
-[a-iA-I]                           {
-                                       INIT();
-                                       SETZONE(100*(('a'-1) - tolower(*cp)));
-                                   }
-[k-mK-M]                           {
-                                       INIT();
-                                       SETZONE(100*('a' - tolower(*cp)));
-                                   }
-[n-yN-Y]                           {
-                                       INIT();
-                                       SETZONE(100*(tolower(*cp) - 'm'));
-                                    }
+"-"?([a-z]{3}|[A-Z]{3})                    ;
 .|\n