added #ident parsing to the translator.
authorMilind Bhandarkar <milind@cs.uiuc.edu>
Tue, 28 Jan 1997 16:23:13 +0000 (16:23 +0000)
committerMilind Bhandarkar <milind@cs.uiuc.edu>
Tue, 28 Jan 1997 16:23:13 +0000 (16:23 +0000)
src/xlat++/xp-lexer.c
src/xlat++/xp-lexer.flex

index 2bc2e2a34783251760ba5a85eeabd87fbaf1607e..f8daf06fd9a1eee72596941093dcef1c4337037c 100644 (file)
@@ -126,7 +126,6 @@ extern FILE *yyin, *yyout;
                { \
                /* Undo effects of setting up yytext. */ \
                *yy_cp = yy_hold_char; \
-               YY_RESTORE_YY_MORE_OFFSET \
                yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
                } \
@@ -282,70 +281,71 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
        *yy_cp = '\0'; \
        yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 146
-#define YY_END_OF_BUFFER 147
-static yyconst short int yy_accept[551] =
+#define YY_NUM_RULES 147
+#define YY_END_OF_BUFFER 148
+static yyconst short int yy_accept[557] =
     {   0,
-        0,    0,  147,  146,    2,    4,    3,  105,  146,   93,
-      107,  100,  146,   90,   91,  101,  102,   92,  103,   99,
+        0,    0,  148,  147,    2,    4,    3,  105,  147,   93,
+      107,  100,  147,   90,   91,  101,  102,   92,  103,   99,
       106,   85,   84,  113,  114,  108,  115,  109,  112,   83,
        83,   83,   83,   83,   97,   98,  110,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   95,  111,
        96,  104,    2,    4,    0,    3,  127,    0,   89,    0,
-        0,   94,  142,    0,    0,    0,  132,  128,  137,    0,
-        0,  130,  120,  133,  121,  134,  118,  116,    0,   87,
-        1,  131,   87,   85,    0,    0,   85,   85,    0,   84,
-
-       84,   84,  117,  122,  124,    0,  126,   14,  125,  123,
-       83,   83,   83,    0,    0,   83,   83,  138,   83,   83,
-       83,   83,   83,   83,   83,   83,   83,   32,   83,   83,
-       83,   83,   83,   83,   83,   83,   83,   83,   43,   83,
+        0,   94,  142,    0,    0,    0,    0,  132,  128,  137,
+        0,    0,  130,  120,  133,  121,  134,  118,  116,    0,
+       87,    1,  131,   87,   85,    0,    0,   85,   85,    0,
+
+       84,   84,   84,  117,  122,  124,    0,  126,   14,  125,
+      123,   83,   83,   83,    0,    0,   83,   83,  138,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   32,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   43,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,  139,  129,    0,    0,    0,    0,    0,
-        0,    0,   88,    0,    0,  119,  140,    0,   87,    1,
-        0,   87,   85,   86,   84,  135,   15,  136,   16,   83,
-       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,  139,  129,    0,    0,    0,    0,
+        0,    0,    0,    0,   88,    0,    0,  119,  140,    0,
+       87,    1,    0,   87,   85,   86,   84,  135,   15,  136,
+       16,   83,   83,   83,   83,   83,   83,   83,   83,   83,
 
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-       83,   83,   41,   83,   83,   83,   83,   83,   83,   83,
-       83,   47,   83,   83,   83,   83,   74,   83,   83,   83,
+       83,   83,   83,   83,   41,   83,   83,   83,   83,   83,
+       83,   83,   83,   47,   83,   83,   83,   83,   74,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,   83,    0,    0,    0,  141,    0,    0,
-        0,    0,    0,    0,    0,   87,   86,   86,   83,   83,
-       83,   83,   83,   83,   23,   83,   25,   26,   83,   83,
-       83,   83,   83,   83,   83,   34,   35,   83,   83,   37,
-       83,   83,   83,   83,   42,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,    0,    0,    0,  141,
+        0,    0,    0,    0,    0,    0,    0,    0,   87,   86,
+       86,   83,   83,   83,   83,   83,   83,   23,   83,   25,
+       26,   83,   83,   83,   83,   83,   83,   83,   34,   35,
+       83,   83,   37,   83,   83,   83,   83,   42,   83,   83,
 
-       83,   48,   49,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   48,   49,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-       83,   83,   83,   83,   83,   80,   83,   83,   83,   83,
-       83,   64,   83,   83,   83,   83,    0,    0,    0,  141,
-        0,    0,  145,    0,    0,    0,    0,   86,   83,   17,
-       83,   83,   83,   83,   24,    5,   69,   27,   83,   83,
-       83,   83,   83,   36,   13,   38,   83,   40,   83,   12,
-       83,   44,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   80,   83,
+       83,   83,   83,   83,   64,   83,   83,   83,   83,    0,
+        0,    0,  141,    0,    0,  146,    0,    0,    0,    0,
+        0,   86,   83,   17,   83,   83,   83,   83,   24,    5,
+       69,   27,   83,   83,   83,   83,   83,   36,   13,   38,
+       83,   40,   83,   12,   83,   44,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
-       83,   54,   83,   83,   83,   83,   83,   83,   61,   62,
-
-       83,   83,   83,   83,   66,   83,    0,    0,  145,    0,
-        0,   83,   83,   83,   83,   83,   83,   83,   30,   70,
-       33,   39,   71,   11,   45,   83,   72,   83,   83,   83,
-       83,   83,   83,   83,   83,   50,   83,   83,   83,   79,
-       83,   83,   53,   55,   56,   57,   58,   59,   83,   83,
-       83,   83,   83,   83,    0,    0,  144,   83,   18,   83,
-       83,   83,   83,   29,   31,   46,   10,   83,   83,   83,
-       83,   83,   83,   83,   78,   83,   83,   83,   83,   60,
-       83,   81,   83,   67,   83,    0,  144,  144,  144,   83,
-       83,   83,   83,   28,   83,   83,   19,   20,   83,   75,
-
-       76,   83,   83,    8,   52,   63,   65,   83,  144,   83,
-       83,   68,   83,    7,   83,   83,   77,   51,    9,  144,
-       83,   73,   83,   83,   83,  143,   83,    6,   83,   83,
-      143,   83,   83,   22,   83,   83,   83,   21,   83,   83,
-       83,   83,    0,    0,    0,    0,    0,   82,    0,    0
+       83,   83,   83,   83,   83,   54,   83,   83,   83,   83,
+
+       83,   83,   61,   62,   83,   83,   83,   83,   66,   83,
+        0,    0,  146,  145,    0,    0,   83,   83,   83,   83,
+       83,   83,   83,   30,   70,   33,   39,   71,   11,   45,
+       83,   72,   83,   83,   83,   83,   83,   83,   83,   83,
+       50,   83,   83,   83,   79,   83,   83,   53,   55,   56,
+       57,   58,   59,   83,   83,   83,   83,   83,   83,    0,
+        0,  145,  144,   83,   18,   83,   83,   83,   83,   29,
+       31,   46,   10,   83,   83,   83,   83,   83,   83,   83,
+       78,   83,   83,   83,   83,   60,   83,   81,   83,   67,
+       83,    0,  144,  144,  144,   83,   83,   83,   83,   28,
+
+       83,   83,   19,   20,   83,   75,   76,   83,   83,    8,
+       52,   63,   65,   83,  144,   83,   83,   68,   83,    7,
+       83,   83,   77,   51,    9,  144,   83,   73,   83,   83,
+       83,  143,   83,    6,   83,   83,  143,   83,   83,   22,
+       83,   83,   83,   21,   83,   83,   83,   83,    0,    0,
+        0,    0,    0,   82,    0,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -392,139 +392,141 @@ static yyconst int yy_meta[81] =
        10,   13,   10,   13,   10,   10,    1,    1,    1,    1
     } ;
 
-static yyconst short int yy_base[568] =
+static yyconst short int yy_base[575] =
     {   0,
-        0,    0,  968,  969,   79,  969,   85,  939,   84,   92,
-      938,   83,  916,  969,  969,  936,   79,  969,   81,   81,
-       85,   97,  104,  938,  969,   95,  123,  108,  969,  924,
-        0,  926,   99,  929,  969,  969,  931,  906,   63,  889,
-      103,   83,  109,  110,   78,  903,   99,   92,  113,  898,
-      113,  116,  897,  121,   72,  888,  127,  135,  969,  134,
-      969,  969,  194,  969,  202,  211,  969,  180,  969,  188,
-      217,  969,  221,  891,  890,  882,  969,  969,  969,  116,
-      198,  969,  969,  969,  969,  969,  933,  969,  928,  213,
-        0,  969,  230,  235,  277,  272,  178,  164,    0,  285,
-
-      189,  187,  969,  919,  969,  254,  969,  969,  969,  918,
-        0,  907,  873,  183,  894,  909,  900,  969,  165,  885,
-      869,  881,  868,  883,  882,  869,  219,  862,  173,  246,
-      864,  861,  864,  861,  867,  857,  860,  860,  225,  255,
-      859,  858,  853,  856,  847,  862,  861,  260,  849,  862,
-      261,  849,  187,  259,  853,  852,  845,  272,  843,  261,
-      850,  848,  847,  969,  969,  321,    0,  330,  306,  844,
-      841,  852,  969,  323,    0,  969,  969,  330,  969,    0,
-      335,  338,  969,  327,  969,  969,  969,  969,    0,  839,
-      872,  860,  836,  845,  828,  832,  844,  839,  827,  825,
-
-      197,  225,  836,  838,  833,  833,  828,  820,  823,  820,
-      828,  831,    0,  826,  816,  810,  824,  822,  822,  814,
-      815,    0,  818,  815,  804,  806,  322,  803,  802,  810,
-      796,  797,  810,  802,  808,  802,  791,  793,  795,  802,
-      788,  786,  786,  786,  797,  796,  786,  790,  780,  793,
-      795,  794,  783,  775,  357,  398,  329,  361,  328,  787,
-      786,  783,  369,  444,  365,  381,  296,  331,  786,  802,
-      802,  775,  777,  772,    0,  773,    0,  777,  764,  762,
-      770,  759,  764,  758,  764,    0,    0,  768,  750,    0,
-      756,  755,  752,  756,    0,  753,  756,  760,  760,  745,
-
-      750,    0,    0,  761,  743,  757,  751,  742,  743,  755,
-      744,  742,  752,  747,  742,  741,  735,  731,  731,  728,
-      740,  730,  734,  739,  738,    0,  736,  733,  725,  730,
-      717,    0,  717,  718,  728,  727,  386,    0,  436,  439,
-      388,    0,    0,  462,  719,  351,    0,  969,  712,    0,
-      734,  719,  726,  699,    0,    0,    0,    0,  704,  705,
-      704,  703,  702,    0,    0,    0,  693,    0,  701,    0,
-      699,    0,  686,  675,  661,  655,  647,  651,  652,  638,
-      637,  627,  630,  629,  608,  622,  614,  616,  592,  582,
-      586,    0,  594,  591,  592,  572,  581,  583,    0,    0,
-
-      574,  584,  558,  565,    0,  538,  465,  506,    0,  487,
-      542,  533,  559,  527,  523,  527,  518,  518,  531,    0,
-        0,    0,    0,    0,    0,  529,    0,  528,  519,  512,
-      514,  510,  514,  513,  520,    0,  515,  501,  512,    0,
-      506,  511,    0,    0,    0,    0,    0,    0,  500,  500,
-      493,  491,  483,  487,  399,  543,  407,  485,    0,  493,
-      497,  495,  490,    0,    0,    0,    0,  485,  481,  487,
-      476,  472,  468,  479,    0,  477,  480,  452,  458,    0,
-      468,    0,  465,    0,  462,  416,    0,  410,  456,  441,
-      453,  434,  425,    0,  437,  419,    0,    0,  416,    0,
-
-        0,  425,  403,    0,    0,    0,    0,  415,  414,  431,
-      398,    0,  383,    0,  379,  371,    0,    0,    0,  369,
-      374,    0,  358,  371,  354,    0,  349,    0,  329,  338,
-        0,  278,  238,    0,  260,  217,  208,    0,  190,   88,
-       40,  489,  505,  421,  438,  506,  516,  969,  518,  969,
-      601,  614,  621,  631,  641,  654,  661,  667,  679,  686,
-      696,  703,  715,  728,  741,  753,  765
+        0,    0,  986,  987,   79,  987,   85,  957,   84,   92,
+      956,   83,  934,  987,  987,  954,   79,  987,   81,   81,
+       85,   97,  104,  956,  987,   95,  123,  108,  987,  942,
+        0,  944,   99,  947,  987,  987,  949,  924,   63,  907,
+      103,   83,  109,  110,   78,  921,   99,  104,  122,  916,
+      113,  116,  915,  121,   72,  906,  129,  137,  987,  130,
+      987,  987,  196,  987,  207,  213,  987,  180,  987,  184,
+      219,  987,  223,  909,  913,  907,  899,  987,  987,  987,
+      191,  200,  987,  987,  987,  987,  987,  950,  987,  945,
+      215,    0,  987,  232,  237,  279,  274,  180,  189,    0,
+
+      287,  191,  206,  987,  936,  987,  277,  987,  987,  987,
+      935,    0,  924,  890,  184,  911,  926,  917,  987,  175,
+      902,  886,  898,  885,  900,  899,  886,  205,  879,  243,
+      249,  881,  878,  881,  878,  884,  874,  877,  877,  220,
+      259,  876,  875,  870,  873,  864,  879,  878,  262,  866,
+      879,  265,  866,   86,  264,  870,  869,  862,  277,  860,
+      276,  867,  865,  864,  987,  987,  318,    0,  340,  307,
+      861,  866,  857,  868,  987,  330,    0,  987,  987,  338,
+      987,    0,  341,  346,  987,  328,  987,  987,  987,  987,
+        0,  855,  888,  876,  852,  861,  844,  848,  860,  855,
+
+      843,  841,  195,  273,  852,  854,  849,  849,  844,  836,
+      839,  836,  844,  847,    0,  842,  832,  826,  840,  838,
+      838,  830,  831,    0,  834,  831,  820,  822,  318,  819,
+      818,  826,  812,  813,  826,  818,  824,  818,  807,  809,
+      811,  818,  804,  802,  802,  802,  813,  812,  802,  806,
+      796,  809,  811,  810,  799,  791,  365,  406,  336,  373,
+      370,  803,  794,  801,  798,  385,  452,  378,  388,  307,
+      356,  801,  817,  817,  790,  792,  787,    0,  788,    0,
+      792,  779,  777,  785,  774,  779,  773,  779,    0,    0,
+      783,  765,    0,  771,  770,  767,  771,    0,  768,  771,
+
+      775,  775,  760,  765,    0,    0,  776,  758,  772,  766,
+      757,  758,  770,  759,  757,  767,  762,  757,  756,  750,
+      746,  746,  743,  755,  745,  749,  754,  753,    0,  751,
+      748,  740,  745,  732,    0,  732,  733,  743,  742,  394,
+        0,  425,  466,  444,    0,    0,  728,  475,  733,  341,
+        0,  987,  726,    0,  748,  733,  740,  721,    0,    0,
+        0,    0,  726,  727,  732,  731,  722,    0,    0,    0,
+      713,    0,  721,    0,  713,    0,  711,  712,  710,  707,
+      699,  698,  687,  661,  649,  640,  643,  649,  631,  645,
+      640,  638,  627,  608,  609,    0,  617,  610,  612,  583,
+
+      588,  590,    0,    0,  581,  592,  582,  586,    0,  571,
+      447,  502,    0,    0,  493,  583,  574,  599,  550,  545,
+      537,  520,  520,  533,    0,    0,    0,    0,    0,    0,
+      531,    0,  530,  521,  514,  516,  512,  516,  515,  527,
+        0,  522,  508,  518,    0,  512,  511,    0,    0,    0,
+        0,    0,    0,  509,  509,  502,  489,  480,  484,  396,
+      539,    0,  418,  482,    0,  490,  492,  490,  485,    0,
+        0,    0,    0,  477,  467,  472,  461,  452,  453,  464,
+        0,  462,  462,  438,  444,    0,  448,    0,  446,    0,
+      439,  408,    0,  429,  432,  416,  428,  409,  408,    0,
+
+      417,  400,    0,    0,  392,    0,    0,  398,  382,    0,
+        0,    0,    0,  393,  385,  396,  381,    0,  358,    0,
+      359,  356,    0,    0,    0,  353,  360,    0,  338,  336,
+      325,    0,  319,    0,  306,  304,    0,  291,  264,    0,
+      191,  163,  162,    0,  155,   72,   40,  516,  525,  281,
+      285,  538,  539,  987,  562,  987,  597,  610,  617,  627,
+      637,  650,  657,  663,  675,  682,  692,  699,  711,  724,
+      737,  750,  762,  774
     } ;
 
-static yyconst short int yy_def[568] =
+static yyconst short int yy_def[575] =
     {   0,
-      550,    1,  550,  550,  550,  550,  550,  550,  551,  550,
-      550,  550,  552,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  553,
-      553,  553,  553,  553,  550,  550,  550,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  551,  550,  554,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  552,
-      555,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      556,  550,  550,  550,  550,  550,  550,  550,  557,  550,
-
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      553,  553,  553,  551,  552,  553,  553,  550,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  550,  550,  551,  558,  550,  559,  550,
-      550,  550,  550,  552,  560,  550,  550,  550,  550,  556,
-      550,  550,  550,  557,  550,  550,  550,  550,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  551,  551,  559,  550,  561,  550,
-      550,  550,  552,  552,  550,  550,  550,  550,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  551,  256,  550,  550,
-      559,  562,  563,  550,  550,  552,  264,  550,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-
-      553,  553,  553,  553,  553,  553,  559,  559,  563,  550,
-      550,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  559,  408,  564,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  553,  553,  553,  559,  564,  564,  564,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-
-      553,  553,  553,  553,  553,  553,  553,  553,  564,  553,
-      553,  553,  553,  553,  553,  553,  553,  553,  553,  564,
-      553,  553,  553,  553,  553,  565,  553,  553,  553,  553,
-      565,  553,  553,  553,  553,  553,  553,  553,  553,  553,
-      553,  553,  550,  566,  566,  567,  550,  550,  567,    0,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550
+      556,    1,  556,  556,  556,  556,  556,  556,  557,  556,
+      556,  556,  558,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  559,
+      559,  559,  559,  559,  556,  556,  556,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  557,  556,  560,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      558,  561,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  562,  556,  556,  556,  556,  556,  556,  556,  563,
+
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  559,  559,  559,  557,  558,  559,  559,  556,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  556,  556,  557,  564,  556,  565,
+      556,  556,  556,  556,  556,  558,  566,  556,  556,  556,
+      556,  562,  556,  556,  556,  563,  556,  556,  556,  556,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  557,  557,  565,  556,
+      567,  556,  556,  556,  556,  558,  558,  556,  556,  556,
+      556,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  557,
+      258,  556,  556,  565,  568,  569,  556,  556,  556,  558,
+      267,  556,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      565,  565,  569,  570,  556,  556,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  565,
+      412,  570,  571,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  565,  571,  571,  571,  559,  559,  559,  559,  559,
+
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  571,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  571,  559,  559,  559,  559,
+      559,  572,  559,  559,  559,  559,  572,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  556,  573,
+      573,  574,  556,  556,  574,    0,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556
     } ;
 
-static yyconst short int yy_nxt[1050] =
+static yyconst short int yy_nxt[1068] =
     {   0,
         4,    5,    6,    7,    7,    7,    5,    8,    9,   10,
        11,   12,   13,   14,   15,   16,   17,   18,   19,   20,
@@ -535,115 +537,117 @@ static yyconst short int yy_nxt[1050] =
        47,   31,   48,   49,   50,   51,   52,   53,   54,   55,
        56,   57,   58,   31,   31,   31,   59,   60,   61,   62,
        63,   64,   65,   65,   65,   63,   65,   64,   66,   66,
-       66,   65,   69,   71,   78,   83,   88,  542,   71,   85,
-
-       89,   72,   90,   90,   90,   91,   84,  114,   86,   87,
-       79,  115,   92,   73,   73,   73,   93,  120,   94,   94,
-       95,  104,  105,   93,  106,  100,  100,  100,  173,  106,
-       96,  156,   70,  121,   97,  109,  110,   96,  116,  127,
-       98,  101,   99,  136,  541,  137,  157,  102,  128,   74,
-      107,  108,  141,   96,   75,  123,  139,  142,   76,   97,
-       96,  164,  124,  140,   81,  125,  101,   98,  126,  143,
-       99,  129,  133,  130,  102,  134,  131,  135,  144,  146,
-      152,  153,  132,  148,  147,  149,  150,  159,   69,  161,
-      154,   69,  160,  155,  162,   63,   64,   65,   65,   65,
-
-       63,  183,  163,   65,   64,   65,   65,   65,   65,  166,
-      166,  165,   65,   64,   66,   66,   66,   65,   71,  174,
-      174,  183,  168,   71,  185,  193,  183,  168,   70,  169,
-      540,   70,  185,  205,   90,   90,   90,  194,   73,   73,
-       73,  206,   73,   73,   73,  239,  178,  179,  183,  185,
-      179,   90,   90,   90,   93,  106,   94,   94,   95,  185,
-      106,  167,  240,  178,  179,  280,  281,  179,   96,  178,
-      179,  175,   97,  539,   74,  179,  202,  282,   98,   75,
-      218,  203,  187,   76,  538,  283,  178,  179,  181,  219,
-      181,   96,  179,  182,  182,  182,   93,   97,   95,   95,
-
-       95,  207,  537,  536,   93,   98,  100,  100,  100,  220,
-       96,  241,  230,  235,  258,  208,  209,  221,   96,  236,
-      231,  250,  101,  251,  222,  232,  242,  246,  102,   69,
-      237,  168,  247,   96,  535,  173,  168,  258,  169,  348,
-      248,   96,  255,  255,  263,  263,  265,  101,  265,  341,
-      341,  266,  266,  266,  259,  102,  182,  182,  182,  182,
-      182,  182,  339,  173,  267,   69,  348,  339,  348,   70,
-      268,   81,  179,  342,  306,  179,  307,  259,  337,  337,
-      308,  173,  340,  340,  340,  309,  266,  266,  266,  267,
-      346,  346,  534,  348,   69,  179,  258,  268,  533,   81,
-
-      179,  342,  266,  266,  266,   70,   69,  258,  488,  407,
-      407,  488,  532,  488,  530,  179,  488,   81,  179,  338,
-      338,  338,  545,  529,  258,  528,  527,  545,  338,  338,
-      338,  338,  338,  526,   70,  525,  259,  339,  179,  545,
-      339,  524,  339,  179,  545,  339,   70,  259,  523,  522,
-      338,  338,  338,  338,  338,  338,  173,  340,  340,  340,
-      340,  340,  340,  410,  259,  347,  347,  347,  410,  521,
-      520,  519,  518,  258,  347,  347,  347,  347,  347,  489,
-      517,  516,  489,   73,   73,   73,  455,  455,  410,  515,
-      543,  514,   81,  410,  513,  543,  347,  347,  347,  347,
-
-      347,  347,  544,  512,  511,  510,  543,  547,   73,   73,
-       73,  543,  547,  259,  258,  509,  508,  547,  544,  547,
-      548,  507,  547,  506,  547,  505,  504,  456,  456,  456,
-      548,  503,  548,  502,  501,  500,  456,  456,  456,  456,
-      456,  499,  498,  497,  496,  495,  494,  493,  492,  491,
-      490,  485,  484,  483,  259,  482,  481,  480,  456,  456,
-      456,  456,  456,  456,  486,  486,  486,  479,  478,  477,
-      476,  475,  474,  486,  486,  486,  486,  486,  473,  472,
-      471,  470,  469,  468,  467,  466,  465,  464,  463,  462,
-      461,  460,  459,  458,  457,  486,  486,  486,  486,  486,
-
-      486,   68,   68,  454,   68,   68,   68,   68,   68,   68,
-       68,   68,   68,   68,   80,   80,  453,   80,  452,   80,
-       80,   80,   80,   80,   80,   80,   80,  111,  111,  111,
-      111,  111,  111,  111,   68,   68,  451,   68,  450,  449,
-      448,  447,   68,   68,   80,   80,  446,   80,  445,  444,
-      443,  442,   80,   80,  180,  180,  441,  180,  180,  180,
-      180,  180,  180,  180,  180,  180,  180,  184,  184,  184,
-      440,  439,  184,  256,  256,  256,  438,  437,  256,  257,
-      257,  436,  257,  257,  257,  257,  257,  257,  257,  257,
-      257,  257,  264,  264,  264,  435,  434,  264,  257,  257,
-
-      257,  433,  257,  432,  431,  430,  257,  257,  257,  408,
-      408,  408,  429,  428,  408,  409,  409,  427,  409,  409,
-      409,  409,  409,  409,  409,  409,  409,  409,  487,  487,
-      426,  487,  487,  487,  487,  487,  487,  487,  487,  487,
-      487,  531,  531,  425,  531,  531,  531,  531,  531,  531,
-      531,  531,  531,  531,  546,  424,  423,  422,  421,  420,
-      419,  546,  546,  546,  546,  546,  549,  418,  417,  416,
-      549,  549,  549,  549,  549,  549,  549,  549,  415,  414,
-      413,  412,  411,  406,  405,  404,  403,  402,  401,  400,
-      399,  398,  397,  396,  395,  394,  393,  392,  391,  390,
-
-      389,  388,  387,  386,  385,  384,  383,  382,  381,  380,
-      379,  378,  377,  376,  375,  374,  373,  372,  371,  370,
-      369,  368,  367,  366,  365,  364,  363,  362,  361,  360,
-      359,  358,  357,  356,  355,  354,  353,  352,  351,  350,
-      349,  345,  344,  343,  336,  335,  334,  333,  332,  331,
-      330,  329,  328,  327,  326,  325,  324,  323,  322,  321,
-      320,  319,  318,  317,  316,  315,  314,  313,  312,  311,
-      310,  305,  304,  303,  302,  301,  300,  299,  298,  297,
-      296,  295,  294,  293,  292,  291,  290,  289,  288,  287,
-      286,  285,  284,  279,  278,  277,  276,  275,  274,  273,
-
-      272,  271,  270,  269,  262,  261,  260,  254,  253,  252,
-      249,  245,  244,  243,  238,  234,  233,  229,  228,  227,
-      226,  225,  224,  223,  217,  216,  215,  214,  213,  212,
-      211,  210,  204,  201,  200,  199,  198,  197,  196,  195,
-      192,  191,   81,  190,  189,  188,  186,  177,  176,  172,
-      171,  170,  158,  151,  145,  138,  122,  119,  118,  117,
-      113,  112,  103,   82,   81,   77,   67,  550,    3,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550
+       66,   65,   69,   71,   79,   84,   89,  548,   71,   86,
+
+       90,   72,   91,   91,   91,   92,   85,  115,   87,   88,
+       80,  116,   93,   73,   73,   73,   94,  121,   95,   95,
+       96,  105,  106,   94,  107,  101,  101,  101,  547,  107,
+       97,  157,   70,  122,   98,  110,  111,   97,  117,  128,
+       99,  102,  100,  137,  241,  138,  158,  103,  129,   74,
+      108,  109,   75,   97,   76,  124,  140,  165,   77,   98,
+       97,  242,  125,  141,  142,  126,  102,   99,  127,  143,
+      100,  130,  134,  131,  103,  135,  132,  136,  144,  147,
+      153,  154,  133,  149,  148,  150,  151,  145,   69,  160,
+      155,  162,   69,  156,  161,  546,  163,   63,   64,   65,
+
+       65,   65,   63,  175,  164,  167,  167,  166,   65,   64,
+       65,   65,   65,   65,   65,   64,   66,   66,   66,   65,
+       71,  176,  176,  185,  169,   71,  185,  545,   70,  169,
+      544,  170,   70,  543,  187,  195,   91,   91,   91,   82,
+       73,   73,   73,  187,   73,   73,   73,  196,  180,  181,
+      185,  185,  181,   91,   91,   91,   94,  168,   95,   95,
+       96,  187,  204,  283,  284,  180,  181,  205,  187,  181,
+       97,  180,  181,  177,   98,  220,   74,  181,  107,   75,
+       99,   76,  551,  107,  221,   77,  551,  551,  180,  181,
+      183,  551,  183,   97,  181,  184,  184,  184,   94,   98,
+
+       96,   96,   96,  207,  209,  189,   94,   99,  101,  101,
+      101,  208,   97,  222,  232,  260,  243,  237,  210,  211,
+       97,  223,  233,  238,  102,  285,   69,  234,  224,  542,
+      103,  244,  248,  286,  239,   97,  252,  249,  253,  257,
+      257,  169,  175,   97,  260,  250,  169,  541,  170,  102,
+      352,  266,  266,  175,  268,  261,  268,  103,  540,  269,
+      269,  269,  184,  184,  184,  270,   70,  184,  184,  184,
+      309,  271,  310,   69,  342,  539,  311,  352,   82,  342,
+      181,  312,  538,  181,  261,  536,  340,  340,  535,   82,
+      270,  344,  344,  352,  343,  343,  343,  175,  271,  269,
+
+      269,  269,   69,  181,  260,  534,  350,  350,  181,  269,
+      269,  269,  533,   70,   69,  345,  260,  532,  352,  494,
+      531,  530,  181,  529,  494,  181,  342,  341,  341,  341,
+      494,  342,  528,   82,  527,  494,  341,  341,  341,  341,
+      341,  526,   70,  345,  261,  181,  343,  343,  343,  525,
+      181,  524,  260,  523,   70,  260,  261,  522,  341,  341,
+      341,  341,  341,  341,  175,  411,  411,  342,  460,  460,
+      521,  520,  342,  351,  351,  351,  415,  519,  518,  517,
+      516,  415,  351,  351,  351,  351,  351,  343,  343,  343,
+      495,  515,  261,  514,  415,  261,   73,   73,   73,  415,
+
+       82,  495,  513,  512,  351,  351,  351,  351,  351,  351,
+      260,  511,  510,  509,   73,   73,   73,  549,  508,  507,
+      506,  505,  549,  461,  461,  461,  549,  504,  503,  550,
+      502,  549,  461,  461,  461,  461,  461,  501,  550,  553,
+      553,  500,  499,  498,  553,  553,  497,  496,  491,  490,
+      261,  489,  554,  554,  461,  461,  461,  461,  461,  461,
+      492,  492,  492,  553,  488,  487,  486,  485,  553,  492,
+      492,  492,  492,  492,  484,  483,  554,  482,  481,  480,
+      479,  478,  477,  476,  475,  474,  473,  472,  471,  470,
+      469,  492,  492,  492,  492,  492,  492,   68,   68,  468,
+
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       81,   81,  467,   81,  466,   81,   81,   81,   81,   81,
+       81,   81,   81,  112,  112,  112,  112,  112,  112,  112,
+       68,   68,  465,   68,  464,  463,  459,  458,   68,   68,
+       81,   81,  457,   81,  456,  455,  454,  453,   81,   81,
+      182,  182,  452,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  186,  186,  186,  451,  450,  186,  258,
+      258,  258,  449,  448,  258,  259,  259,  447,  259,  259,
+      259,  259,  259,  259,  259,  259,  259,  259,  267,  267,
+      267,  446,  445,  267,  259,  259,  259,  444,  259,  443,
+
+      442,  441,  259,  259,  259,  412,  412,  412,  440,  439,
+      412,  413,  413,  438,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  462,  462,  437,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  493,  493,  436,
+      493,  493,  493,  493,  493,  493,  493,  493,  493,  493,
+      537,  537,  435,  537,  537,  537,  537,  537,  537,  537,
+      537,  537,  537,  552,  434,  433,  432,  431,  430,  429,
+      552,  552,  552,  552,  552,  555,  428,  427,  426,  555,
+      555,  555,  555,  555,  555,  555,  555,  425,  424,  423,
+      422,  421,  420,  419,  418,  417,  416,  414,  410,  409,
+
+      408,  407,  406,  405,  404,  403,  402,  401,  400,  399,
+      398,  397,  396,  395,  394,  393,  392,  391,  390,  389,
+      388,  387,  386,  385,  384,  383,  382,  381,  380,  379,
+      378,  377,  376,  375,  374,  373,  372,  371,  370,  369,
+      368,  367,  366,  365,  364,  363,  362,  361,  360,  359,
+      358,  357,  356,  355,  354,  353,  349,  348,  347,  346,
+      339,  338,  337,  336,  335,  334,  333,  332,  331,  330,
+      329,  328,  327,  326,  325,  324,  323,  322,  321,  320,
+      319,  318,  317,  316,  315,  314,  313,  308,  307,  306,
+      305,  304,  303,  302,  301,  300,  299,  298,  297,  296,
+
+      295,  294,  293,  292,  291,  290,  289,  288,  287,  282,
+      281,  280,  279,  278,  277,  276,  275,  274,  273,  272,
+      265,  264,  263,  262,  256,  255,  254,  251,  247,  246,
+      245,  240,  236,  235,  231,  230,  229,  228,  227,  226,
+      225,  219,  218,  217,  216,  215,  214,  213,  212,  206,
+      203,  202,  201,  200,  199,  198,  197,  194,  193,   82,
+      192,  191,  190,  188,  179,  178,  174,  173,  172,  171,
+      159,  152,  146,  139,  123,  120,  119,  118,  114,  113,
+      104,   83,   82,   78,   67,  556,    3,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556
     } ;
 
-static yyconst short int yy_chk[1050] =
+static yyconst short int yy_chk[1068] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -654,112 +658,114 @@ static yyconst short int yy_chk[1050] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         5,    5,    5,    5,    5,    5,    7,    7,    7,    7,
-        7,    7,    9,   10,   12,   17,   20,  541,   10,   19,
+        7,    7,    9,   10,   12,   17,   20,  547,   10,   19,
 
        20,   10,   20,   20,   20,   21,   17,   33,   19,   19,
        12,   33,   21,   10,   10,   10,   22,   39,   22,   22,
-       22,   26,   26,   23,   27,   23,   23,   23,   80,   27,
+       22,   26,   26,   23,   27,   23,   23,   23,  546,   27,
        22,   55,    9,   39,   22,   28,   28,   23,   33,   42,
-       22,   23,   22,   45,  540,   45,   55,   23,   42,   10,
-       27,   27,   48,   22,   10,   41,   47,   48,   10,   22,
-       23,   60,   41,   47,   80,   41,   23,   22,   41,   49,
+       22,   23,   22,   45,  154,   45,   55,   23,   42,   10,
+       27,   27,   10,   22,   10,   41,   47,   60,   10,   22,
+       23,  154,   41,   47,   48,   41,   23,   22,   41,   48,
        22,   43,   44,   43,   23,   44,   43,   44,   49,   51,
-       54,   54,   43,   52,   51,   52,   52,   57,   68,   58,
-       54,  114,   57,   54,   58,   63,   63,   63,   63,   63,
-
-       63,   98,   58,   65,   65,   65,   65,   65,   65,   70,
-       70,   60,   66,   66,   66,   66,   66,   66,   71,   81,
-       81,   97,   73,   71,  102,  119,   98,   73,   68,   73,
-      539,  114,  101,  129,   90,   90,   90,  119,   71,   71,
-       71,  129,   73,   73,   73,  153,   90,   90,   97,  102,
-       90,   93,   93,   93,   94,  106,   94,   94,   94,  101,
-      106,   70,  153,   93,   93,  201,  201,   93,   94,   90,
-       90,   81,   94,  537,   71,   90,  127,  202,   94,   71,
-      139,  127,  106,   71,  536,  202,   93,   93,   96,  139,
-       96,   94,   93,   96,   96,   96,   95,   94,   95,   95,
-
-       95,  130,  535,  533,  100,   94,  100,  100,  100,  140,
-       95,  154,  148,  151,  169,  130,  130,  140,  100,  151,
-      148,  160,  100,  160,  140,  148,  154,  158,  100,  166,
-      151,  168,  158,   95,  532,  174,  168,  257,  168,  267,
-      158,  100,  166,  166,  174,  174,  178,  100,  178,  259,
-      259,  178,  178,  178,  169,  100,  181,  181,  181,  182,
-      182,  182,  258,  346,  184,  255,  267,  258,  268,  166,
-      184,  174,  182,  259,  227,  182,  227,  257,  255,  255,
-      227,  263,  258,  258,  258,  227,  265,  265,  265,  184,
-      263,  263,  530,  268,  337,  182,  341,  184,  529,  346,
-
-      182,  259,  266,  266,  266,  255,  256,  455,  457,  341,
-      341,  488,  527,  457,  525,  266,  488,  263,  266,  256,
-      256,  256,  544,  524,  486,  523,  521,  544,  256,  256,
-      256,  256,  256,  520,  337,  516,  341,  339,  266,  545,
-      340,  515,  339,  266,  545,  340,  256,  455,  513,  511,
-      256,  256,  256,  256,  256,  256,  264,  339,  339,  339,
-      340,  340,  340,  344,  486,  264,  264,  264,  344,  510,
-      509,  508,  503,  407,  264,  264,  264,  264,  264,  457,
-      502,  499,  488,  344,  344,  344,  407,  407,  410,  496,
-      542,  495,  264,  410,  493,  542,  264,  264,  264,  264,
-
-      264,  264,  542,  492,  491,  490,  543,  546,  410,  410,
-      410,  543,  546,  407,  408,  489,  485,  547,  543,  549,
-      546,  483,  547,  481,  549,  479,  478,  408,  408,  408,
-      547,  477,  549,  476,  474,  473,  408,  408,  408,  408,
-      408,  472,  471,  470,  469,  468,  463,  462,  461,  460,
-      458,  454,  453,  452,  408,  451,  450,  449,  408,  408,
-      408,  408,  408,  408,  456,  456,  456,  442,  441,  439,
-      438,  437,  435,  456,  456,  456,  456,  456,  434,  433,
-      432,  431,  430,  429,  428,  426,  419,  418,  417,  416,
-      415,  414,  413,  412,  411,  456,  456,  456,  456,  456,
-
-      456,  551,  551,  406,  551,  551,  551,  551,  551,  551,
-      551,  551,  551,  551,  552,  552,  404,  552,  403,  552,
-      552,  552,  552,  552,  552,  552,  552,  553,  553,  553,
-      553,  553,  553,  553,  554,  554,  402,  554,  401,  398,
-      397,  396,  554,  554,  555,  555,  395,  555,  394,  393,
-      391,  390,  555,  555,  556,  556,  389,  556,  556,  556,
-      556,  556,  556,  556,  556,  556,  556,  557,  557,  557,
-      388,  387,  557,  558,  558,  558,  386,  385,  558,  559,
-      559,  384,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  560,  560,  560,  383,  382,  560,  561,  561,
-
-      561,  381,  561,  380,  379,  378,  561,  561,  561,  562,
-      562,  562,  377,  376,  562,  563,  563,  375,  563,  563,
-      563,  563,  563,  563,  563,  563,  563,  563,  564,  564,
-      374,  564,  564,  564,  564,  564,  564,  564,  564,  564,
-      564,  565,  565,  373,  565,  565,  565,  565,  565,  565,
-      565,  565,  565,  565,  566,  371,  369,  367,  363,  362,
-      361,  566,  566,  566,  566,  566,  567,  360,  359,  354,
-      567,  567,  567,  567,  567,  567,  567,  567,  353,  352,
-      351,  349,  345,  336,  335,  334,  333,  331,  330,  329,
-      328,  327,  325,  324,  323,  322,  321,  320,  319,  318,
-
-      317,  316,  315,  314,  313,  312,  311,  310,  309,  308,
-      307,  306,  305,  304,  301,  300,  299,  298,  297,  296,
-      294,  293,  292,  291,  289,  288,  285,  284,  283,  282,
-      281,  280,  279,  278,  276,  274,  273,  272,  271,  270,
-      269,  262,  261,  260,  254,  253,  252,  251,  250,  249,
-      248,  247,  246,  245,  244,  243,  242,  241,  240,  239,
-      238,  237,  236,  235,  234,  233,  232,  231,  230,  229,
-      228,  226,  225,  224,  223,  221,  220,  219,  218,  217,
-      216,  215,  214,  212,  211,  210,  209,  208,  207,  206,
-      205,  204,  203,  200,  199,  198,  197,  196,  195,  194,
-
-      193,  192,  191,  190,  172,  171,  170,  163,  162,  161,
-      159,  157,  156,  155,  152,  150,  149,  147,  146,  145,
-      144,  143,  142,  141,  138,  137,  136,  135,  134,  133,
-      132,  131,  128,  126,  125,  124,  123,  122,  121,  120,
-      117,  116,  115,  113,  112,  110,  104,   89,   87,   76,
-       75,   74,   56,   53,   50,   46,   40,   38,   37,   34,
-       32,   30,   24,   16,   13,   11,    8,    3,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
-      550,  550,  550,  550,  550,  550,  550,  550,  550
+       54,   54,   43,   52,   51,   52,   52,   49,   68,   57,
+       54,   58,  115,   54,   57,  545,   58,   63,   63,   63,
+
+       63,   63,   63,   81,   58,   70,   70,   60,   65,   65,
+       65,   65,   65,   65,   66,   66,   66,   66,   66,   66,
+       71,   82,   82,   98,   73,   71,   99,  543,   68,   73,
+      542,   73,  115,  541,  102,  120,   91,   91,   91,   81,
+       71,   71,   71,  103,   73,   73,   73,  120,   91,   91,
+       98,   99,   91,   94,   94,   94,   95,   70,   95,   95,
+       95,  102,  128,  203,  203,   94,   94,  128,  103,   94,
+       95,   91,   91,   82,   95,  140,   71,   91,  107,   71,
+       95,   71,  550,  107,  140,   71,  551,  550,   94,   94,
+       97,  551,   97,   95,   94,   97,   97,   97,   96,   95,
+
+       96,   96,   96,  130,  131,  107,  101,   95,  101,  101,
+      101,  130,   96,  141,  149,  170,  155,  152,  131,  131,
+      101,  141,  149,  152,  101,  204,  167,  149,  141,  539,
+      101,  155,  159,  204,  152,   96,  161,  159,  161,  167,
+      167,  169,  176,  101,  259,  159,  169,  538,  169,  101,
+      270,  176,  176,  350,  180,  170,  180,  101,  536,  180,
+      180,  180,  183,  183,  183,  186,  167,  184,  184,  184,
+      229,  186,  229,  257,  260,  535,  229,  270,  176,  260,
+      184,  229,  533,  184,  259,  531,  257,  257,  530,  350,
+      186,  261,  261,  271,  260,  260,  260,  266,  186,  268,
+
+      268,  268,  340,  184,  460,  529,  266,  266,  184,  269,
+      269,  269,  527,  257,  258,  261,  492,  526,  271,  463,
+      522,  521,  269,  519,  463,  269,  342,  258,  258,  258,
+      494,  342,  517,  266,  516,  494,  258,  258,  258,  258,
+      258,  515,  340,  261,  460,  269,  342,  342,  342,  514,
+      269,  509,  344,  508,  258,  411,  492,  505,  258,  258,
+      258,  258,  258,  258,  267,  344,  344,  343,  411,  411,
+      502,  501,  343,  267,  267,  267,  348,  499,  498,  497,
+      496,  348,  267,  267,  267,  267,  267,  343,  343,  343,
+      463,  495,  344,  491,  415,  411,  348,  348,  348,  415,
+
+      267,  494,  489,  487,  267,  267,  267,  267,  267,  267,
+      412,  485,  484,  483,  415,  415,  415,  548,  482,  480,
+      479,  478,  548,  412,  412,  412,  549,  477,  476,  548,
+      475,  549,  412,  412,  412,  412,  412,  474,  549,  552,
+      553,  469,  468,  467,  552,  553,  466,  464,  459,  458,
+      412,  457,  552,  553,  412,  412,  412,  412,  412,  412,
+      461,  461,  461,  555,  456,  455,  454,  447,  555,  461,
+      461,  461,  461,  461,  446,  444,  555,  443,  442,  440,
+      439,  438,  437,  436,  435,  434,  433,  431,  424,  423,
+      422,  461,  461,  461,  461,  461,  461,  557,  557,  421,
+
+      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
+      558,  558,  420,  558,  419,  558,  558,  558,  558,  558,
+      558,  558,  558,  559,  559,  559,  559,  559,  559,  559,
+      560,  560,  418,  560,  417,  416,  410,  408,  560,  560,
+      561,  561,  407,  561,  406,  405,  402,  401,  561,  561,
+      562,  562,  400,  562,  562,  562,  562,  562,  562,  562,
+      562,  562,  562,  563,  563,  563,  399,  398,  563,  564,
+      564,  564,  397,  395,  564,  565,  565,  394,  565,  565,
+      565,  565,  565,  565,  565,  565,  565,  565,  566,  566,
+      566,  393,  392,  566,  567,  567,  567,  391,  567,  390,
+
+      389,  388,  567,  567,  567,  568,  568,  568,  387,  386,
+      568,  569,  569,  385,  569,  569,  569,  569,  569,  569,
+      569,  569,  569,  569,  570,  570,  384,  570,  570,  570,
+      570,  570,  570,  570,  570,  570,  570,  571,  571,  383,
+      571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
+      572,  572,  382,  572,  572,  572,  572,  572,  572,  572,
+      572,  572,  572,  573,  381,  380,  379,  378,  377,  375,
+      573,  573,  573,  573,  573,  574,  373,  371,  367,  574,
+      574,  574,  574,  574,  574,  574,  574,  366,  365,  364,
+      363,  358,  357,  356,  355,  353,  349,  347,  339,  338,
+
+      337,  336,  334,  333,  332,  331,  330,  328,  327,  326,
+      325,  324,  323,  322,  321,  320,  319,  318,  317,  316,
+      315,  314,  313,  312,  311,  310,  309,  308,  307,  304,
+      303,  302,  301,  300,  299,  297,  296,  295,  294,  292,
+      291,  288,  287,  286,  285,  284,  283,  282,  281,  279,
+      277,  276,  275,  274,  273,  272,  265,  264,  263,  262,
+      256,  255,  254,  253,  252,  251,  250,  249,  248,  247,
+      246,  245,  244,  243,  242,  241,  240,  239,  238,  237,
+      236,  235,  234,  233,  232,  231,  230,  228,  227,  226,
+      225,  223,  222,  221,  220,  219,  218,  217,  216,  214,
+
+      213,  212,  211,  210,  209,  208,  207,  206,  205,  202,
+      201,  200,  199,  198,  197,  196,  195,  194,  193,  192,
+      174,  173,  172,  171,  164,  163,  162,  160,  158,  157,
+      156,  153,  151,  150,  148,  147,  146,  145,  144,  143,
+      142,  139,  138,  137,  136,  135,  134,  133,  132,  129,
+      127,  126,  125,  124,  123,  122,  121,  118,  117,  116,
+      114,  113,  111,  105,   90,   88,   77,   76,   75,   74,
+       56,   53,   50,   46,   40,   38,   37,   34,   32,   30,
+       24,   16,   13,   11,    8,    3,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556,  556,  556,  556,
+      556,  556,  556,  556,  556,  556,  556
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -771,7 +777,6 @@ static char *yy_last_accepting_cpos;
 #define REJECT reject_used_but_not_detected
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
 #line 1 "xp-lexer.flex"
 #define INITIAL 0
@@ -933,6 +938,7 @@ extern YYSTYPE yylval;
 #undef yywrap
 #endif
 
+#line 942 "lex.yy.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -954,10 +960,6 @@ static void yyunput YY_PROTO(( int c, char *buf_ptr ));
 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
 #endif
 
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YY_PROTO(( yyconst char * ));
-#endif
-
 #ifndef YY_NO_INPUT
 #ifdef __cplusplus
 static int yyinput YY_PROTO(( void ));
@@ -1086,6 +1088,7 @@ YY_DECL
 #line 197 "xp-lexer.flex"
 
 
+#line 1092 "lex.yy.c"
 
        if ( yy_init )
                {
@@ -1136,13 +1139,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 >= 551 )
+                               if ( yy_current_state >= 557 )
                                        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] != 969 );
+               while ( yy_base[yy_current_state] != 987 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -2002,7 +2005,7 @@ YY_RULE_SETUP
 case 145:
 YY_RULE_SETUP
 #line 488 "xp-lexer.flex"
-{ /* #file stuff used in nCUBE CC */
+{ /* #ident used by G++: copy to output */
                                        strcat(OutBuf,prevtoken) ;
                                        strcpy(prevtoken,"") ;
                                        strcat(OutBuf,yytext) ;
@@ -2012,8 +2015,19 @@ YY_RULE_SETUP
 case 146:
 YY_RULE_SETUP
 #line 495 "xp-lexer.flex"
+{ /* #file stuff used in nCUBE CC */
+                                       strcat(OutBuf,prevtoken) ;
+                                       strcpy(prevtoken,"") ;
+                                       strcat(OutBuf,yytext) ;
+                                       FLUSHBUF() ;
+                               }
+       YY_BREAK
+case 147:
+YY_RULE_SETUP
+#line 502 "xp-lexer.flex"
 ECHO;
        YY_BREAK
+#line 2031 "lex.yy.c"
 case YY_STATE_EOF(INITIAL):
        yyterminate();
 
@@ -2024,7 +2038,6 @@ case YY_STATE_EOF(INITIAL):
 
                /* Undo the effects of YY_DO_BEFORE_ACTION. */
                *yy_cp = yy_hold_char;
-               YY_RESTORE_YY_MORE_OFFSET
 
                if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
                        {
@@ -2170,7 +2183,7 @@ static int yy_get_next_buffer()
                { /* Don't try to fill the buffer, so this is an EOF. */
                if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
                        {
-                       /* We matched a single character, the EOB, so
+                       /* We matched a singled characater, the EOB, so
                         * treat this as a final EOF.
                         */
                        return EOB_ACT_END_OF_FILE;
@@ -2303,7 +2316,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 >= 551 )
+                       if ( yy_current_state >= 557 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2338,11 +2351,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 >= 551 )
+               if ( yy_current_state >= 557 )
                        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 == 550);
+       yy_is_jam = (yy_current_state == 556);
 
        return yy_is_jam ? 0 : yy_current_state;
        }
@@ -2414,7 +2427,7 @@ static int input()
 
                else
                        { /* need more input */
-                       int offset = yy_c_buf_p - yytext_ptr;
+                       yytext_ptr = yy_c_buf_p;
                        ++yy_c_buf_p;
 
                        switch ( yy_get_next_buffer() )
@@ -2423,7 +2436,8 @@ static int input()
                                        {
                                        if ( yywrap() )
                                                {
-                                               yy_c_buf_p = yytext_ptr + offset;
+                                               yy_c_buf_p =
+                                               yytext_ptr + YY_MORE_ADJ;
                                                return EOF;
                                                }
 
@@ -2437,7 +2451,7 @@ static int input()
                                        }
 
                                case EOB_ACT_CONTINUE_SCAN:
-                                       yy_c_buf_p = yytext_ptr + offset;
+                                       yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
                                        break;
 
                                case EOB_ACT_LAST_MATCH:
@@ -2801,7 +2815,7 @@ char msg[];
                { \
                /* Undo effects of setting up yytext. */ \
                yytext[yyleng] = yy_hold_char; \
-               yy_c_buf_p = yytext + n; \
+               yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
                yy_hold_char = *yy_c_buf_p; \
                *yy_c_buf_p = '\0'; \
                yyleng = n; \
@@ -2827,22 +2841,6 @@ int n;
        }
 #endif
 
-#ifdef YY_NEED_STRLEN
-#ifdef YY_USE_PROTOS
-static int yy_flex_strlen( yyconst char *s )
-#else
-static int yy_flex_strlen( s )
-yyconst char *s;
-#endif
-       {
-       register int n;
-       for ( n = 0; s[n]; ++n )
-               ;
-
-       return n;
-       }
-#endif
-
 
 #ifdef YY_USE_PROTOS
 static void *yy_flex_alloc( yy_size_t size )
@@ -2889,7 +2887,7 @@ int main()
        return 0;
        }
 #endif
-#line 495 "xp-lexer.flex"
+#line 502 "xp-lexer.flex"
 
 
 yywrap() { return(1); }
index 447a0b333b844e9b80752372116f4b0fea816c96..1baa51230f6a0fa8c89b37a01c6830753543dffe 100755 (executable)
@@ -485,6 +485,13 @@ virtual             {CPP_KEYWORD_RETURN(VIRTUAL);}
                                        FLUSHBUF() ;
                                }
 
+"#"{TabSpace}?("ident").*      { /* #ident used by G++: copy to output */
+                                       strcat(OutBuf,prevtoken) ;
+                                       strcpy(prevtoken,"") ;
+                                       strcat(OutBuf,yytext) ;
+                                       FLUSHBUF() ;
+                               }
+
 "#"{TabSpace}?("file").*       { /* #file stuff used in nCUBE CC */
                                        strcat(OutBuf,prevtoken) ;
                                        strcpy(prevtoken,"") ;