Use toplevel function pass manager as OnTheFly manager.
[oota-llvm.git] / tools / llvm-upgrade / UpgradeLexer.cpp.cvs
index f01fa15f37ab88e49e6307e61e75a9f5919904f2..68ae9a47c5a2dc2bcf34d1a5b75dd3635c0bcf91 100644 (file)
@@ -317,98 +317,108 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
        *yy_cp = '\0'; \
        yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 130
-#define YY_END_OF_BUFFER 131
-static yyconst short int yy_acclist[208] =
+#define YY_NUM_RULES 161
+#define YY_END_OF_BUFFER 162
+static yyconst short int yy_acclist[241] =
     {   0,
-      131,  129,  130,  128,  129,  130,  128,  130,  129,  130,
-      129,  130,  129,  130,  129,  130,  129,  130,  129,  130,
-      121,  129,  130,  121,  129,  130,    1,  129,  130,  129,
-      130,  129,  130,  129,  130,  129,  130,  129,  130,  129,
-      130,  129,  130,  129,  130,  129,  130,  129,  130,  129,
-      130,  129,  130,  129,  130,  129,  130,  129,  130,  129,
-      130,  129,  130,  129,  130,  129,  130,  129,  130,  129,
-      130,  120,  118,  117,  117,  124,  122,  126,  121,    1,
-      102,   38,   72,   22,  120,  117,  117,  125,  126,   19,
-      126,  127,   60,   71,   36,   31,   39,   63,    3,   51,
-
-       62,   80,   67,  101,   96,   97,   61,   73,  119,  126,
-      126,   98,   46,   81,   82,   66,  110,   70,  111,   53,
-       99,   21,  123,   65,   85,   69,   23,    4,   59,   64,
-       52,   68,   45,   11,   84,  126,   33,    2,    5,   55,
-       87,   57,   47,   75,   79,   77,   78,   76,   74,   49,
-      112,   83,   48,   54,   20,  109,   42,   56,   27,  106,
-       41,   89,   88,    7,  104,   30,  108,   35,   58,   95,
-       91,  103,   24,   25,   90,  105,   50,  100,   94,   40,
-        6,   26,   86,   34,    8,   16,    9,   93,   10,   92,
-       32,   12,   14,   13,   29,   37,   15,   28,  107,  113,
-
-      115,  116,   43,  114,   17,   44,   18
+      162,  160,  161,  159,  160,  161,  159,  161,  160,  161,
+      160,  161,  160,  161,  160,  161,  160,  161,  160,  161,
+      152,  160,  161,  152,  160,  161,    1,  160,  161,  160,
+      161,  160,  161,  160,  161,  160,  161,  160,  161,  160,
+      161,  160,  161,  160,  161,  160,  161,  160,  161,  160,
+      161,  160,  161,  160,  161,  160,  161,  160,  161,  160,
+      161,  160,  161,  160,  161,  160,  161,  160,  161,  160,
+      161,  160,  161,  151,  149,  148,  148,  155,  153,  157,
+      152,    1,  134,   41,   94,   62,   50,   95,   80,   23,
+      151,  148,  148,  156,  157,   20,  157,  158,   68,   79,
+
+       39,   34,   42,   71,    3,   53,   56,   59,   54,   70,
+       25,  104,  109,  107,  108,  106,  105,  110,  114,   75,
+      133,   99,   97,   88,   89,   98,   96,   69,  112,  103,
+      101,  102,  100,  113,  111,   81,  150,  157,  157,   91,
+       61,  115,  116,   93,   74,  141,   78,   92,  142,   57,
+       90,   22,  154,   73,  119,   77,   26,    4,   66,   72,
+       55,   76,   60,   11,  118,  157,   36,    2,    5,   63,
+      121,   65,   48,   83,   87,   85,   86,   84,   82,   51,
+      143,  117,   49,   58,   21,  131,  140,   45,   64,   30,
+       24,   44,  123,  122,    7,  136,   33,  139,   38,   67,
+
+      129,  125,  135,   27,   28,  124,  137,   52,  132,  130,
+      128,   43,    6,   29,  120,   37,    8,   17,    9,  127,
+       10,  126,   35,   12,   14,   13,   32,   40,   15,   31,
+      138,  144,  146,  147,   16,   46,  145,   18,   47,   19
     } ;
 
-static yyconst short int yy_accept[557] =
+static yyconst short int yy_accept[621] =
     {   0,
         1,    1,    1,    2,    4,    7,    9,   11,   13,   15,
        17,   19,   21,   24,   27,   30,   32,   34,   36,   38,
        40,   42,   44,   46,   48,   50,   52,   54,   56,   58,
-       60,   62,   64,   66,   68,   70,   72,   72,   73,   73,
-       74,   75,   76,   77,   77,   78,   78,   79,   80,   80,
-       81,   81,   81,   81,   81,   81,   81,   81,   81,   82,
+       60,   62,   64,   66,   68,   70,   72,   74,   74,   75,
+       75,   76,   77,   78,   79,   79,   80,   80,   81,   82,
        82,   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,   83,   83,   83,   84,
-       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
-
-       84,   84,   84,   84,   84,   85,   85,   85,   85,   85,
-       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
-       85,   86,   87,   89,   90,   91,   92,   92,   93,   94,
-       94,   94,   95,   95,   95,   96,   96,   97,   97,   97,
-       97,   97,   98,   98,   98,   98,   98,   98,   98,   99,
-       99,   99,  100,  100,  100,  100,  100,  100,  100,  100,
-      100,  100,  100,  100,  100,  100,  101,  101,  101,  101,
-      101,  101,  101,  101,  101,  101,  102,  102,  102,  103,
-      103,  103,  104,  105,  105,  105,  105,  105,  105,  105,
-      105,  106,  106,  107,  107,  107,  107,  107,  107,  108,
-
-      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
-      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
-      108,  109,  109,  109,  110,  111,  111,  111,  111,  112,
-      112,  112,  112,  113,  113,  113,  114,  115,  116,  116,
-      116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
-      116,  116,  116,  116,  117,  117,  117,  117,  117,  118,
-      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
-      119,  120,  121,  122,  122,  122,  123,  123,  123,  123,
-      124,  124,  125,  125,  125,  125,  125,  125,  125,  126,
-      126,  126,  126,  126,  127,  127,  127,  128,  128,  128,
-
-      129,  129,  130,  130,  131,  132,  132,  132,  132,  132,
-      132,  133,  133,  133,  134,  134,  135,  135,  135,  136,
-      137,  138,  138,  138,  139,  139,  139,  139,  139,  139,
-      139,  139,  139,  139,  139,  139,  139,  139,  139,  140,
-      140,  141,  142,  142,  142,  142,  142,  142,  142,  142,
-      142,  142,  142,  143,  143,  143,  143,  143,  143,  143,
-      143,  144,  144,  144,  145,  146,  147,  148,  149,  150,
-      151,  151,  151,  151,  152,  152,  152,  152,  153,  154,
-      154,  155,  156,  156,  156,  156,  156,  156,  156,  156,
-      156,  157,  157,  157,  158,  158,  158,  158,  158,  158,
-
-      158,  158,  159,  160,  161,  161,  161,  162,  163,  164,
-      164,  164,  165,  165,  165,  165,  165,  166,  166,  167,
-      168,  169,  170,  170,  170,  170,  171,  171,  171,  172,
-      173,  174,  175,  176,  176,  177,  178,  179,  179,  179,
-      179,  179,  179,  180,  180,  181,  181,  182,  183,  183,
-      183,  183,  183,  183,  184,  184,  184,  184,  184,  184,
-      184,  184,  184,  185,  185,  185,  185,  185,  185,  185,
-      185,  185,  186,  186,  186,  186,  186,  187,  187,  187,
-      187,  187,  188,  189,  190,  190,  191,  191,  191,  191,
-      192,  192,  192,  192,  193,  193,  194,  195,  195,  195,
-
-      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
-      196,  196,  196,  196,  196,  196,  196,  196,  197,  197,
-      197,  197,  197,  198,  198,  198,  198,  198,  199,  199,
-      200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
-      200,  200,  200,  201,  201,  202,  203,  203,  204,  204,
-      205,  206,  207,  207,  208,  208
+       83,   84,   84,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   86,   86,   86,   86,   86,   86,   86,   86,
+       86,   86,   87,   87,   87,   88,   88,   88,   88,   88,
+       88,   88,   88,   88,   88,   88,   89,   89,   89,   89,
+
+       89,   89,   89,   89,   90,   90,   90,   90,   90,   90,
+       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+       90,   90,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       92,   93,   95,   96,   97,   98,   98,   99,   99,  100,
+      100,  100,  101,  101,  101,  102,  102,  103,  103,  103,
+      103,  103,  104,  104,  104,  104,  104,  104,  104,  105,
+      105,  105,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  107,  108,  109,  109,  109,
+      109,  110,  110,  110,  110,  110,  110,  110,  110,  110,
+
+      110,  111,  112,  112,  113,  114,  115,  116,  117,  118,
+      118,  119,  120,  120,  120,  121,  122,  122,  122,  122,
+      122,  122,  122,  122,  123,  124,  125,  125,  126,  126,
+      126,  126,  127,  128,  128,  128,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  130,  131,  132,  132,  132,
+      133,  133,  134,  134,  135,  135,  136,  136,  136,  136,
+      136,  136,  136,  136,  136,  136,  136,  136,  137,  137,
+      137,  138,  139,  139,  139,  139,  140,  140,  140,  140,
+      141,  141,  141,  142,  143,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+
+      144,  145,  146,  146,  146,  146,  146,  147,  148,  148,
+      148,  149,  149,  149,  149,  149,  149,  149,  149,  149,
+      150,  151,  152,  152,  152,  153,  153,  153,  153,  154,
+      154,  155,  155,  155,  155,  155,  155,  155,  156,  156,
+      156,  156,  156,  157,  157,  157,  158,  158,  158,  159,
+      159,  160,  160,  161,  162,  162,  162,  162,  162,  162,
+      162,  163,  163,  163,  163,  163,  164,  164,  165,  165,
+      165,  166,  167,  168,  168,  168,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  170,  170,  171,  172,  172,  172,  172,  172,  172,
+
+      172,  172,  172,  172,  172,  173,  173,  173,  173,  173,
+      173,  173,  173,  174,  174,  174,  175,  176,  177,  178,
+      179,  180,  181,  181,  181,  181,  182,  182,  182,  182,
+      183,  184,  184,  185,  186,  186,  186,  186,  186,  186,
+      187,  187,  187,  187,  187,  187,  188,  188,  188,  189,
+      189,  189,  189,  189,  189,  189,  189,  190,  191,  192,
+      192,  192,  193,  194,  195,  195,  195,  196,  196,  196,
+      196,  196,  197,  197,  198,  199,  200,  201,  201,  201,
+      201,  202,  202,  202,  203,  204,  205,  206,  207,  207,
+      207,  208,  209,  210,  211,  211,  211,  211,  211,  211,
+
+      212,  212,  213,  213,  214,  215,  215,  215,  215,  215,
+      215,  216,  216,  216,  216,  216,  216,  216,  216,  216,
+      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
+      218,  218,  218,  218,  218,  219,  219,  219,  219,  219,
+      220,  221,  222,  222,  223,  223,  223,  223,  223,  224,
+      224,  224,  224,  225,  225,  226,  227,  227,  227,  227,
+      227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
+      228,  228,  228,  228,  228,  228,  228,  228,  229,  229,
+      229,  229,  229,  229,  230,  230,  230,  230,  230,  231,
+      231,  231,  232,  232,  232,  232,  232,  232,  232,  232,
+
+      232,  232,  232,  232,  232,  232,  233,  233,  234,  235,
+      236,  236,  237,  237,  238,  239,  240,  240,  241,  241
     } ;
 
 static yyconst int yy_ec[256] =
@@ -417,16 +427,16 @@ static yyconst int yy_ec[256] =
         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    2,    1,    4,    1,    5,    6,    1,    1,    1,
-        1,    1,    7,    1,    8,    9,    1,   10,   11,   11,
-       11,   11,   11,   12,   11,   13,   11,   14,   15,    1,
-        1,    1,    1,    1,   16,   16,   16,   16,   17,   16,
+        1,    1,    7,    1,    8,    9,    1,   10,   11,   12,
+       13,   14,   15,   16,   15,   17,   15,   18,   19,    1,
+        1,    1,    1,   20,   21,   21,   21,   21,   22,   21,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        1,    1,    1,    1,   18,    1,   19,   20,   21,   22,
+        1,    1,    1,    1,   23,    1,   24,   25,   26,   27,
 
-       23,   24,   25,   26,   27,    5,   28,   29,   30,   31,
-       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
-       42,   43,    1,    1,    1,    1,    1,    1,    1,    1,
+       28,   29,   30,   31,   32,    5,   33,   34,   35,   36,
+       37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
+       47,   48,    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,
@@ -443,425 +453,471 @@ static yyconst int yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst int yy_meta[44] =
+static yyconst int yy_meta[49] =
     {   0,
-        1,    1,    2,    1,    3,    1,    1,    3,    3,    3,
-        3,    3,    3,    4,    1,    3,    3,    3,    3,    3,
+        1,    1,    2,    1,    3,    1,    4,    5,    3,    6,
+        6,    6,    6,    6,    6,    6,    6,    7,    1,    1,
+        3,    8,    3,    3,    3,    3,    3,    8,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3
+        3,    3,    3,    3,    3,    3,    3,    3
     } ;
 
-static yyconst short int yy_base[561] =
+static yyconst short int yy_base[630] =
     {   0,
-        0,    0, 1200, 1201, 1201, 1201, 1195, 1184,   36,   40,
-       44,   50,   56,   62,    0,   63,   66,   81,   89,   47,
-      100,   97,   76,   96,  111,   46,   48,  110,   68,  140,
-      126,  171,  120,  123,   73,  130, 1193, 1201, 1182, 1201,
-        0,  159,  176,  199,  204,   95,  209,  224,  229,    0,
-      134,  165,  137,  124,  169,  151,  159,   31, 1181,  168,
-      210,  230,  233,  127,  241,  189,  176,  117,  242,  244,
-      240,  243,  246,  249,  252,  253,  257,  259,  263,  265,
-      266,  274,  268,  269,  273,  277,  282,  211, 1180,  287,
-      290,  293,  294,  160,  270,  295,  304,  305,  299,  306,
-
-      312,  296,  321,  324, 1179,  325,  309,  313,  333,  335,
-      318,  339,  342,  332,  350,  340,  343,  215,  356,  357,
-     1178,    0,  365,  370, 1177,  389,  406,    0, 1176,  359,
-      372, 1175,  371,  374, 1174,  381, 1173,  375,  301,  376,
-      393, 1172,  401,  396,  408,  407,  410,  411, 1171,  414,
-      413,  415,  420,  421,  422,  424,  431,  432,  433,  434,
-      441,  436,  440,  438,  439,  449,  443,  454,  383,  451,
-      459,  462,  464,  465,  466, 1170,  468,  469, 1169,  470,
-      471, 1168, 1167,  499,  476,  475,  488,  477,  503,  492,
-     1166,  510, 1165,  481,  484,  516,  513,  517, 1164,  519,
-
-      521,  522,  524,  523,  526,  525,  527,  528,  537,  530,
-      541,  544,  545,  546,  539,  549,  556,  560,  559,  478,
-     1163,  561,  563, 1201,  571,  591,  579,  595,  600,  566,
-      601,  602, 1162,  603,  604, 1161, 1160, 1159,  605,  606,
-      607,  610,  611,  613,  614,  615,  617,  618,  621,  622,
-      628,  572,  627, 1158,  624,  635,  637,  636, 1157, 1156,
-      638,  639,  642,  645,  646,  650,  648,  649,  652,  654,
-     1155, 1154, 1153,  655,  656, 1152,  657,  663,  665,    0,
-      675, 1151,  672,  680,  674,  679,  682,  689, 1150,  676,
-      690,  692,  693, 1149,  695,  706, 1148,  707,  696, 1147,
-
-      708, 1146,  709, 1145, 1144,  710,  571,  712,  714,  717,
-     1143,  721,  723, 1142,  724, 1141,  726,  725, 1140,  731,
-     1139,  732,  731, 1138,  733,  743,  735,  745,  741,  749,
-      751,  678,  753,  754,  756,  758,  759,  760, 1137,  761,
-     1136, 1135,  762,  764,  765,  769,  771,  774,  766,  779,
-      780,  783, 1134,  784,  785,  788,  791,  793,  797,  798,
-     1133,  787,  803, 1132, 1131, 1130, 1129, 1128, 1127, 1126,
-      804,  807,  808, 1125,  809,  810,  813, 1124, 1123,  812,
-     1122, 1121,  816,  820,  814,  818,  825,  830,  824,  815,
-     1120,  836,  834, 1119,  839,  841,  840,  842,  843,  844,
-
-      845, 1118, 1117, 1116,  850,  846, 1115, 1114, 1113,  852,
-      858, 1112,  861,  864,  866,  853, 1111,  860, 1110, 1109,
-     1108, 1107,  872,  875,  877, 1106,  878,  879, 1105, 1104,
-     1103, 1102, 1101,  883, 1100, 1099, 1098,  881,  880,  882,
-      884,  886, 1097,  885, 1096,  888, 1095, 1094,  891,  898,
-      899,  900,  901, 1093,  904,  905,  909,  911,  907,  914,
-      916,  917, 1092,  918,  920,  927,  921,  931,  934,  933,
-      935, 1091,  936,  939,  942,  944, 1090,  937,  947,  945,
-      948, 1089, 1088, 1087,  950, 1086,  949,  959,  955, 1083,
-      967,  970,  969, 1074,  971, 1072, 1071,  972,  976,  973,
-
-      978,  979,  951,  981,  984,  986,  987,  989,  993, 1070,
-      991,  990,  997,  999, 1000, 1002, 1003, 1068, 1008, 1010,
-     1012, 1013, 1067, 1014, 1015, 1018, 1019, 1066, 1021, 1065,
-     1020, 1030, 1029, 1024, 1032, 1033, 1034, 1040, 1043, 1045,
-     1044, 1046, 1063, 1047, 1062, 1060, 1048, 1059, 1049, 1056,
-      677,  479, 1054,  435, 1201, 1089, 1091,  124, 1095,   76
+        0,    0, 1336, 1337, 1337, 1337, 1331, 1316,   41,    0,
+       49,   59,   69, 1287,    0,  112,   69,   72,   93,  113,
+       52,  122,   74,  152,  120,   77,  136,  156,  135,   71,
+      187,  186,  224,  118,  115,   56,  153, 1328, 1337, 1313,
+     1337,    0,  256,    0, 1321, 1320,   88,  264, 1282,  283,
+        0, 1323,  140,  157,  158,  121,  164,  183,  198,   32,
+     1308,  190,   95,  175,   54,  165,  217,  162,  117,  182,
+      218, 1307,  220,  272,  185,  100,  204,  219,  235,  241,
+      264,  232,  273,   57, 1306,  284,  285,  296,  297,  299,
+      300,  226,  298,  302,  308, 1305,  303,  309,  307,  316,
+
+      321,  329,  330,  332,  333,  334,  313,  337,  310,  315,
+      342,  343,  350,  353,  346,  352,  358,  363,  357,  365,
+      366, 1304,  373,  377,  381,  385,  383,  384,  389,  390,
+      402,  386,  392,  417,  418,  395,  271,  393,  403, 1303,
+        0,    0,  416, 1302,    0,  447,    0, 1315, 1300,  438,
+      428, 1299,  448,  427, 1298,  419, 1297,  451,  452,  453,
+      406, 1296,  454,  455,  456,  461,  457,  460, 1295,  465,
+      464,  470,  462,  477,  474,  480,  481,  482,  483,  485,
+      488,  486,  490,  491, 1294, 1293, 1292,  492,  493,  495,
+      506,  502,  514,  511,  494,  519,  515,  517,  520,  522,
+
+     1291, 1290,  525, 1289, 1288, 1287, 1286, 1285, 1284,  523,
+     1283, 1282,  531,  529, 1281, 1280,  562,  538,  537,  540,
+      532,  567,  550, 1279, 1278, 1277,  575, 1276,  534,  533,
+      576, 1275, 1274,  535,  578, 1273,  580,  582,  581,  586,
+      584,  589,  587,  588, 1272, 1271, 1270,  591,  590, 1269,
+      592, 1268,  603, 1267,  601, 1266,  607,  608,  612,  605,
+      620,  596,  621,  616,  627,  623,  546, 1265,  628,  630,
+     1337,  630,  646,  652,  654,  656,  632,  648,  637, 1264,
+      639,  652, 1263, 1262, 1261,  651,  649,  653,  660,  661,
+      664,  662,  663,  665,  666,  668,  669,  679,  674,  675,
+
+     1260, 1259,  670,  671,  682,  686, 1258, 1257,  687,  692,
+     1256,  689,  693,  696,  697,  702,  704,  700,  706, 1255,
+     1254, 1253,  708,  709, 1252,  701,  710,  712,    0,  713,
+     1251,  714,  721,  724,  730,  732,  733, 1250,  735,  736,
+      738,  739, 1249,  741,  744, 1248,  753,  746, 1247,  749,
+     1246,  755, 1245, 1244,  758,  760,  764,  766,  761,  768,
+     1243,  770,  771,  773,  774, 1242,  776, 1241,  778,  777,
+     1240,    0, 1239,  781,  779, 1238,  782,  790,  797,  796,
+      806,  794,  807,  795,  799,  808,  809,  810,  811,  813,
+     1237,  817, 1236, 1235,  822,  823,  820,  830,  826,  824,
+
+      828,  831,  833,  835, 1234,  832,  844,  839,  846,  848,
+      851,  843, 1233,  855,  859, 1232, 1231, 1230, 1229, 1228,
+     1227, 1226,  860,  862,  864, 1225,  865,  863,  867, 1224,
+     1223,  866, 1222, 1221,  868,  871,  872,  869,  870, 1220,
+      875,  880,  885,  888,  889, 1219,  890,  895, 1218,  896,
+      897,  898,  900,  901,  902,  903, 1217, 1216, 1215,  911,
+      906, 1214, 1213, 1212,  915,  908, 1211,  918,  926,  929,
+      909, 1210,  931, 1209, 1208, 1207, 1206,  920,  932,  934,
+     1205,  937,  938, 1204, 1203, 1202, 1201, 1200,  940,  943,
+     1199, 1198, 1197, 1192,  941,  944,  946,  945,  948, 1181,
+
+      951, 1178,  953, 1170, 1167,  958,  960,  961,  962,  963,
+     1164,  964,  965,  968,  969,  970,  971,  976,  977, 1158,
+      979,  986,  987,  989,  990,  991,  994,  997,  998, 1146,
+     1003, 1006, 1007, 1004, 1145, 1008, 1009, 1011, 1012, 1144,
+     1142, 1141, 1018, 1140, 1013, 1017, 1020, 1019, 1139, 1029,
+     1033, 1034, 1137, 1016, 1136, 1133, 1038, 1041, 1042, 1043,
+     1045, 1046, 1047, 1050, 1053, 1052, 1054, 1056, 1057, 1131,
+     1058, 1061, 1059, 1064, 1065, 1070, 1069, 1128, 1071, 1077,
+     1081, 1082, 1083,  913, 1084, 1085, 1086, 1089,  784, 1091,
+     1092,  783, 1090, 1095, 1104, 1096, 1105, 1111, 1108, 1112,
+
+     1113, 1115, 1116, 1117, 1119,  737, 1120,  548,  391,  349,
+     1121,  312, 1125,  270,  266,  221, 1126,  184, 1337, 1166,
+     1172, 1178,  192, 1186, 1192,   70, 1200, 1203, 1208
     } ;
 
-static yyconst short int yy_def[561] =
+static yyconst short int yy_def[630] =
     {   0,
-      555,    1,  555,  555,  555,  555,  556,  557,  558,  555,
-      557,  557,  557,  557,  559,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  556,  555,  557,  555,
-      560,  560,  555,  555,  557,  557,  557,  557,  557,  559,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      555,  560,  560,  555,  557,  557,  557,   49,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,   49,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  555,  555,  555,  555,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  184,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  555,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
-      557,  557,  557,  557,    0,  555,  555,  555,  555,  555
+      619,    1,  619,  619,  619,  619,  620,  621,  622,  623,
+      621,  621,   11,   13,  624,  622,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  620,  619,  621,
+      619,  625,  625,  626,  623,   11,  621,   11,   13,   11,
+      624,  627,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  619,
+      625,   43,  628,  621,   48,   11,   50,  627,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,   50,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      619,  628,  629,  629,  146,  146,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  217,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  274,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+
+      621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
+      621,  621,  621,  621,  621,  621,  621,  621,    0,  619,
+      619,  619,  619,  619,  619,  619,  619,  619,  619
     } ;
 
-static yyconst short int yy_nxt[1245] =
+static yyconst short int yy_nxt[1386] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
-       14,   14,   14,    4,   15,    8,    8,    8,   16,   17,
-       18,   19,   20,   21,   22,    8,   23,    8,   24,   25,
-       26,   27,   28,    8,   29,   30,   31,   32,   33,   34,
-       35,    8,   36,   42,   40,   43,   43,   43,   43,   44,
-       44,   44,   44,   45,   45,   45,   45,   40,   46,   40,
-       40,   40,  139,   40,   47,   48,   48,   48,   48,   40,
-       47,   48,   48,   48,   48,   40,   40,   69,  122,   40,
-       88,   40,   89,   87,   51,  118,   40,   70,   56,   40,
-       93,   52,   57,   53,   40,   54,   49,   58,   55,   60,
-
-       59,   61,   40,  125,  119,   78,   79,   64,   40,   40,
-       40,   65,   62,   40,   80,   66,   63,   67,   71,   76,
-       68,   72,   81,   40,   40,   77,   41,   82,   73,   84,
-       40,   83,   74,   40,   75,   90,   40,   40,  115,   40,
-       40,   91,   85,   40,  104,  117,   92,   40,   86,   94,
-       40,  116,  120,   40,  151,  129,  133,  105,  132,   95,
-      106,   96,   97,  146,   40,   98,   99,  107,  123,  123,
-      123,  123,   40,   40,  100,  136,  101,  102,   40,  103,
-       94,   40,   40,  137,   40,   43,   43,   43,   43,   40,
-      108,  130,  109,  131,  134,  138,  140,  110,  135,  111,
-
-      184,  112,   40,  141,  150,  113,  114,  124,   44,   44,
-       44,   44,   47,   45,   45,   45,   45,   40,  126,  126,
-      126,  126,   40,   40,   40,  127,  220,  149,   40,  178,
-      142,  127,   47,   48,   48,   48,   48,   40,  128,  128,
-      128,  128,   40,   40,  128,  128,   40,  128,  128,  128,
-      128,  128,  128,   40,   40,   40,   40,   40,  143,   40,
-      144,  147,   40,  152,  153,   40,   40,  145,  155,  157,
-       40,  159,   40,  148,  161,  156,   40,  158,   40,   40,
-      154,   40,   40,   40,  168,  160,   40,   40,  163,  162,
-       40,  164,  171,  173,  175,   40,  169,  174,  165,  166,
-
-       40,  167,  170,   40,  172,  176,   40,   40,   40,   40,
-      177,  185,   40,  179,   40,  199,  180,   40,   40,   40,
-      195,  186,   40,  182,  187,   40,   40,  181,  197,  236,
-      183,   40,  188,  191,   40,  196,  192,   40,   40,  193,
-      189,  205,  194,  198,  190,   40,   40,  200,   40,  210,
-      201,  203,   40,   40,  206,   40,   40,  215,  202,  207,
-      211,  219,  204,   40,  214,  208,  217,  216,  218,   40,
-       40,  209,   40,  212,  123,  123,  123,  123,  213,  225,
-      225,  225,  225,  230,   40,   40,  226,   40,   40,   40,
-      221,  222,  226,  232,   40,  235,   40,  223,  126,  126,
-
-      126,  126,   40,  231,  237,  127,   40,  234,  233,   40,
-      269,  127,  227,  228,   40,  229,  229,  229,  229,   40,
-       40,   40,  239,   40,   40,  242,   40,   40,   40,  238,
-      241,  240,  247,   40,   40,   40,  245,   40,  243,  244,
-      246,  248,  249,  250,   40,   40,   40,   40,   40,   40,
-      255,   40,   40,   40,   40,  251,   40,  252,  261,  262,
-      253,  264,   40,  259,   40,  257,  263,   40,  258,  254,
-      260,  265,   40,  256,  267,   40,  268,   40,   40,   40,
-      271,   40,   40,   40,   40,  266,  272,  270,   40,   40,
-       40,   40,   40,  274,   40,  317,  276,   40,  273,  284,
-
-      278,   40,  277,  275,  291,   40,  292,  279,  280,  280,
-      280,  280,  281,  282,  280,  280,   40,  280,  280,  280,
-      280,  280,  280,   40,  283,  285,   40,  286,  289,   40,
-       40,  287,   40,  288,   40,   40,   40,   40,   40,   40,
-       40,   40,  294,   40,  290,  300,  298,  293,  302,  297,
-       40,  295,   40,  301,   40,  296,  299,   40,   40,   40,
-      307,  303,   40,  308,  305,  304,  309,  313,  306,   40,
-      312,  310,   40,   40,   40,  311,   40,  314,  315,   40,
-      225,  225,  225,  225,   40,   40,  316,  226,  320,  320,
-      320,  320,  318,  226,  339,  381,  321,  227,  227,  319,
-
-      320,  320,  320,  320,  229,  229,  229,  229,   40,  229,
-      229,  229,  229,   40,   40,   40,   40,   40,   40,   40,
-       40,  322,  325,   40,   40,  326,   40,   40,   40,  330,
-       40,   40,  323,  324,   40,   40,  335,   40,  329,  331,
-       40,   40,  327,  328,  333,  334,  338,  340,   40,   40,
-       40,   40,   40,  336,  332,   40,  337,  347,   40,   40,
-      341,   40,   40,   40,  348,   40,  346,   40,   40,   40,
-       40,  342,  343,  345,  344,  352,   40,  353,   40,  349,
-      350,  351,  355,  354,  357,   40,  356,   40,   40,   40,
-       40,   40,   40,   40,  358,   40,  360,  361,  362,  359,
-
-      363,  365,   40,   40,  367,   40,   40,  364,   40,   40,
-      400,  369,  370,  371,  372,  366,  373,  374,  368,   40,
-       40,   40,   40,   40,  377,   40,  375,   40,  378,  376,
-       40,  379,  383,  380,   40,  382,   40,   40,   40,   40,
-      320,  320,  320,  320,   40,   40,   40,  384,   40,  388,
-      391,  390,  392,  395,   40,  385,   40,  386,   40,  397,
-      387,  389,   40,  394,   40,  396,   40,   40,  393,   40,
-      399,   40,   40,   40,   40,   40,  402,   40,   40,   40,
-      406,  407,   40,  398,   40,  401,  403,   40,  408,  405,
-      409,  411,   40,   40,  404,  410,   40,   40,   40,  412,
-
-       40,   40,  414,  413,   40,  417,   40,  419,  420,  415,
-       40,   40,  416,  421,  418,  422,   40,   40,  425,  423,
-       40,   40,   40,   40,  424,   40,   40,   40,   40,   40,
-      428,   40,  427,   40,  430,  432,  434,   40,   40,  426,
-      429,  435,  437,   40,  433,  441,  431,   40,  439,   40,
-      436,  438,   40,   40,   40,   40,   40,   40,   40,   40,
-      440,  445,  442,   40,  447,   40,   40,  451,  452,  444,
-      443,   40,  454,   40,   40,  449,  450,   40,  448,   40,
-      460,  446,  453,  456,  458,   40,  457,  455,   40,  459,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-
-      464,   40,  465,  469,   40,  462,  461,  463,  466,  467,
-      470,   40,   40,   40,   40,  468,  471,   40,   40,  473,
-       40,  472,   40,  478,   40,  474,  479,   40,  477,   40,
-       40,   40,  475,   40,   40,  480,  484,  481,  476,  482,
-       40,  483,  488,  490,   40,  489,   40,   40,   40,   40,
-       40,  485,   40,  486,  492,   40,  487,   40,   40,  494,
-       40,   40,   40,   40,   40,  499,  498,  491,   40,  493,
-      502,  504,   40,  495,  506,  496,  503,  500,  497,  505,
-       40,  501,   40,   40,   40,   40,   40,  507,  508,   40,
-      511,   40,   40,  516,   40,  509,  514,   40,  512,   40,
-
-       40,  517,   40,   40,   40,  520,   40,  510,  515,  513,
-       40,  522,   40,   40,  519,   40,   40,  521,  523,  524,
-      518,   40,  527,   40,  528,   40,   40,   40,   40,  525,
-      530,   40,   40,   40,   40,  526,  534,   40,  531,  529,
-      532,  533,   40,   40,  536,   40,   40,   40,  539,  537,
-      540,  535,  538,   40,  542,  541,   40,   40,   40,   40,
-       40,   40,   40,  547,  544,  548,  543,   40,  552,   40,
-      545,  553,   40,   40,  546,   40,   40,  551,   40,   40,
-       40,   40,  550,   40,   40,   40,  549,   40,  554,   37,
-       37,   37,   37,   39,   39,   50,   40,   50,   50,   40,
-
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
-       40,  224,   40,   40,   40,   40,  121,   40,   38,  555,
-
-        3,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555
+       14,   14,   14,   14,   14,   14,   14,    4,   15,   16,
+        8,    8,    8,   17,   18,   19,   20,   21,   22,   23,
+        8,   24,    8,   25,   26,   27,   28,   29,    8,   30,
+       31,   32,   33,   34,   35,   36,    8,   37,   43,   41,
+       44,   44,   44,   44,   44,   44,   44,   44,   46,   46,
+       46,   46,   46,   46,   46,   46,   41,   47,  159,   41,
+      187,   41,  137,   41,   41,   44,   41,   48,   49,   49,
+       49,   49,   49,   49,   49,   49,   41,   71,   41,   41,
+       72,   41,  138,  165,   41,   53,  144,   73,  108,   58,
+
+       93,   80,   54,   59,   55,   41,   56,   81,   60,   57,
+       41,   61,   41,   94,   50,   52,   62,   41,   63,   95,
+      162,  619,  619,  619,  619,  619,  619,  619,  619,   64,
+       41,  178,   41,   65,   41,   41,   66,   41,   41,   41,
+       67,  134,  136,   89,   68,   74,   69,   75,   76,   70,
+      170,   90,   41,   41,  135,   77,   91,   41,  153,   78,
+       92,   79,   82,   96,   83,  105,  149,   84,   85,   41,
+       41,  106,   97,   41,   41,   41,  107,   86,   98,   41,
+      139,   41,   41,   99,  152,  100,   87,   88,  150,  101,
+      151,  102,   41,  103,  154,  104,  109,   45,  155,   41,
+
+       41,   41,   41,   41,   41,  169,  166,   41,  163,  121,
+      164,  110,  156,  111,  112,   41,  113,  114,  115,  177,
+      116,   41,  122,  160,  171,  123,  117,  157,  118,  119,
+      161,  120,  124,  109,   41,   41,   41,   41,   41,  158,
+      179,   41,  167,   41,  172,  173,  180,  185,  125,   41,
+      126,  127,   41,  128,  168,  129,  198,  130,   41,  131,
+      181,  174,  182,  132,  133,  142,  142,  142,  142,  142,
+      142,  142,  142,  145,  145,  145,  145,  145,  145,  145,
+      145,   41,  183,   41,  186,  146,  267,   41,   41,   41,
+       41,  146,  147,  147,  147,  147,  147,  147,  147,  147,
+
+      184,   41,   41,  147,  147,  175,  147,  147,  147,  147,
+      147,  147,  176,   41,   41,   41,   41,   41,  188,   41,
+       41,  193,  189,  196,   41,   41,   41,   41,  200,   41,
+       41,  199,   41,   41,  194,  197,  190,  191,   41,  192,
+      195,  201,  203,  205,  202,  204,   41,   41,  207,   41,
+       41,   41,  214,  210,   41,  217,  209,  206,  211,   41,
+       41,  218,  208,   41,  212,  213,   41,   41,  220,   41,
+       41,  215,  230,  219,   41,   41,  221,  224,  216,  232,
+       41,  236,   41,   41,  222,  234,  226,  231,  223,  227,
+       41,  225,  228,  233,   41,  229,  237,  238,   41,  235,
+
+       41,   41,   41,   41,  240,  239,   41,   41,   41,   41,
+       41,  246,   41,  259,  242,  241,  244,  250,  266,   41,
+       41,  245,  260,   41,  248,  247,  251,  243,  253,  254,
+      249,  252,  268,  255,   41,   41,   41,  273,  256,  261,
+      262,  257,  269,  273,   41,   41,  258,  285,  270,  264,
+      281,  265,  263,  274,  275,   41,  276,  276,  276,  276,
+      276,  276,  276,  276,  278,   41,  280,  277,   41,   41,
+       41,   41,   41,   41,   41,  279,  282,   41,   41,   41,
+      286,   41,   41,  288,  289,  283,  284,   41,  294,  296,
+      290,   41,  292,  291,   41,  287,  293,   41,   41,   41,
+
+       41,  295,   41,   41,  297,   41,  303,   41,   41,   41,
+       41,   41,   41,  307,  299,  310,  298,  309,  301,   41,
+      308,  300,  313,   41,  305,  302,  312,  306,   41,  311,
+      304,   41,   41,  314,   41,  319,   41,   41,  316,   41,
+       41,  317,   41,  318,  321,  320,   41,  315,   41,   41,
+       41,   41,   41,  323,   41,   41,  322,   41,  325,  333,
+      341,  326,  340,   41,  324,   41,  327,   41,  369,  343,
+      328,  329,  329,  329,  329,  329,  329,  329,  329,  330,
+      331,  332,  329,  329,   41,  329,  329,  329,  329,  329,
+      329,  338,   41,   41,  334,   41,  335,   41,   41,   41,
+
+      336,   41,  337,   41,   41,   41,   41,   41,   41,   41,
+      347,  349,  342,   41,  339,  346,  351,  344,   41,  350,
+       41,  345,   41,  348,   41,   41,  355,  356,  352,   41,
+      357,  353,  354,   41,  359,  364,  358,   41,   41,  360,
+       41,  362,  366,  363,   41,   41,  361,   41,  365,   41,
+      367,  273,  274,  274,   41,  368,   41,  273,  619,  619,
+      619,   40,  619,   40,  370,   41,   41,  373,   41,   41,
+       41,  371,  375,  374,  376,  377,  378,   41,   41,   41,
+       41,   41,   41,   41,  382,   41,   41,   41,   41,  387,
+      379,   41,   41,  381,  380,  383,   41,  385,  386,   41,
+
+      392,  391,  390,   41,   41,  388,   41,  384,  389,   41,
+       41,  393,  394,   41,   41,  399,  400,   41,   41,   41,
+      398,   41,  395,   41,  396,   41,   41,   41,  397,   41,
+       41,   41,  401,  403,  404,  402,  406,  405,   41,  407,
+      413,   41,  409,  410,  408,  414,  415,   41,  412,   41,
+       41,  411,   41,   41,   41,   41,   41,  417,   41,  419,
+      421,   41,  416,   41,  423,  424,   41,  425,  426,  427,
+       41,  418,   41,  420,  430,   41,  422,   41,   41,  429,
+      428,   41,  431,   41,  436,   41,  432,   41,   41,  433,
+       41,   41,  434,   41,   41,   41,   41,  435,   41,   41,
+
+       41,   41,  440,  437,  446,  447,  443,   41,  445,  438,
+      439,   41,   41,   41,   41,  449,   41,  442,  444,  441,
+      450,  451,  448,   41,   41,   41,   41,   41,   41,  452,
+       41,  454,  455,  453,   41,  457,  456,   41,  461,   41,
+       41,   41,  462,   41,  458,   41,  460,   41,   41,   41,
+       41,  459,   41,  463,  464,  465,   41,  466,  468,  467,
+       41,   41,  472,   41,  475,   41,  470,  473,   41,  469,
+      471,  474,   41,  476,  479,  477,   41,   41,  478,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+      483,  480,   41,  482,  487,  485,  490,   41,  491,  493,
+
+      481,  484,   41,  488,  486,   41,   41,   41,  496,  489,
+      492,  495,   41,   41,   41,   41,  494,   41,   41,   41,
+       41,  499,  502,   41,  498,   41,   41,  504,   41,  497,
+       41,  501,   41,  508,  509,   41,  500,   41,  506,  507,
+      511,  505,  512,   41,  503,  513,   41,  510,   41,   41,
+      516,   41,  515,  514,   41,   41,  517,   41,   41,  518,
+       41,   41,   41,   41,  521,   41,  522,  519,   41,  520,
+       41,  523,  527,  524,  525,   41,  528,   41,   41,   41,
+       41,   41,   41,  529,  526,   41,   41,   41,   41,  531,
+      536,  537,  530,   41,   41,  535,   41,  532,  542,  533,
+
+      538,  539,  540,   41,   41,  534,   41,   41,   41,  541,
+      547,   41,  548,  546,   41,   41,  543,  549,  544,  551,
+       41,   41,  545,   41,   41,   41,   41,  553,   41,   41,
+       41,  557,  550,   41,   41,   41,   41,   41,  552,  561,
+      563,  558,  564,  566,  559,  554,   41,  555,  556,  562,
+       41,   41,  560,  565,  567,   41,  568,  570,   41,   41,
+       41,  571,   41,   41,   41,  569,  574,   41,  572,   41,
+       41,   41,  577,   41,   41,   41,   41,  581,   41,  575,
+      583,   41,   41,  573,  579,  580,   41,   41,   41,  582,
+      584,  578,  588,  576,   41,  585,  586,  589,   41,   41,
+
+       41,   41,   41,   41,  592,  587,   41,   41,   41,   41,
+      590,  596,   41,   41,  593,  594,  595,  598,  591,  601,
+      603,   41,   41,  602,  599,   41,  597,  600,   41,   41,
+       41,  605,   41,   41,   41,  604,   41,   41,   41,  610,
+      611,  612,   41,   41,  606,   41,  616,  607,   41,  608,
+       41,  609,  617,   41,   41,  615,   41,   41,   41,   41,
+      614,   41,   41,   41,  613,  618,   38,   38,   38,   38,
+       38,   38,   38,   38,   40,   41,   40,   40,   40,   40,
+       42,   41,   42,   42,   41,   42,   51,   41,   51,   51,
+       51,   51,   51,   51,  141,   41,  141,  141,   41,  141,
+
+      148,  148,  148,  148,  148,  148,  148,  148,  272,   41,
+      272,  372,  372,  372,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   39,   41,
+      271,   41,   41,   41,   41,   41,   39,   40,   48,  143,
+       41,  140,   40,   41,   39,  619,    3,  619,  619,  619,
+      619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
+      619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
+      619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
+      619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
+      619,  619,  619,  619,  619
     } ;
 
-static yyconst short int yy_chk[1245] =
+static yyconst short int yy_chk[1386] =
     {   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,    9,   58,    9,    9,    9,    9,   10,
-       10,   10,   10,   11,   11,   11,   11,   11,   12,   26,
-       20,   27,   58,   12,   13,   13,   13,   13,   13,   13,
-       14,   14,   14,   14,   14,   14,   16,   20,  560,   17,
-       27,   29,   27,   26,   16,   35,   35,   20,   17,   23,
-       29,   16,   17,   16,   18,   16,   13,   17,   16,   18,
-
-       17,   18,   19,   46,   35,   23,   23,   19,   46,   24,
-       22,   19,   18,   21,   24,   19,   18,   19,   21,   22,
-       19,   21,   24,   28,   25,   22,  558,   24,   21,   25,
-       68,   24,   21,   33,   21,   28,   34,   54,   33,   31,
-       64,   28,   25,   36,   31,   34,   28,   51,   25,   30,
-       53,   33,   36,   30,   68,   51,   54,   31,   53,   30,
-       31,   30,   30,   64,   56,   30,   30,   31,   42,   42,
-       42,   42,   57,   94,   30,   56,   30,   30,   52,   30,
-       32,   60,   55,   57,   32,   43,   43,   43,   43,   67,
-       32,   52,   32,   52,   55,   57,   60,   32,   55,   32,
-
-       94,   32,   66,   60,   67,   32,   32,   44,   44,   44,
-       44,   44,   45,   45,   45,   45,   45,   45,   47,   47,
-       47,   47,   47,   61,   88,   47,  118,   66,  118,   88,
-       61,   47,   48,   48,   48,   48,   48,   48,   49,   49,
-       49,   49,   49,   62,   49,   49,   63,   49,   49,   49,
-       49,   49,   49,   71,   65,   69,   72,   70,   62,   73,
-       62,   65,   74,   69,   70,   75,   76,   63,   71,   72,
-       77,   74,   78,   65,   75,   71,   79,   73,   80,   81,
-       70,   83,   84,   95,   80,   74,   85,   82,   77,   76,
-       86,   78,   82,   83,   85,   87,   81,   84,   79,   79,
-
-       90,   79,   81,   91,   82,   86,   92,   93,   96,  102,
-       87,   95,   99,   90,  139,  102,   91,   97,   98,  100,
-       99,   96,  107,   93,   97,  101,  108,   92,  100,  139,
-       93,  111,   97,   98,  103,   99,   98,  104,  106,   98,
-       97,  107,   98,  101,   97,  114,  109,  103,  110,  111,
-      104,  106,  112,  116,  108,  113,  117,  114,  104,  109,
-      112,  117,  106,  115,  113,  110,  116,  115,  116,  119,
-      120,  110,  130,  112,  123,  123,  123,  123,  112,  124,
-      124,  124,  124,  130,  133,  131,  124,  134,  138,  140,
-      119,  120,  124,  133,  136,  138,  169,  120,  126,  126,
-
-      126,  126,  126,  131,  140,  126,  141,  136,  134,  144,
-      169,  126,  127,  127,  143,  127,  127,  127,  127,  127,
-      146,  145,  143,  147,  148,  146,  151,  150,  152,  141,
-      145,  144,  151,  153,  154,  155,  150,  156,  147,  148,
-      150,  152,  153,  154,  157,  158,  159,  160,  554,  162,
-      158,  164,  165,  163,  161,  154,  167,  155,  162,  163,
-      156,  165,  166,  161,  170,  160,  164,  168,  160,  157,
-      161,  166,  171,  159,  167,  172,  168,  173,  174,  175,
-      171,  177,  178,  180,  181,  166,  172,  170,  186,  185,
-      188,  220,  552,  174,  194,  220,  177,  195,  173,  188,
-
-      180,  187,  178,  175,  194,  190,  195,  181,  184,  184,
-      184,  184,  185,  186,  184,  184,  189,  184,  184,  184,
-      184,  184,  184,  192,  187,  189,  197,  189,  190,  196,
-      198,  189,  200,  189,  201,  202,  204,  203,  206,  205,
-      207,  208,  197,  210,  192,  204,  202,  196,  205,  201,
-      209,  198,  215,  204,  211,  200,  203,  212,  213,  214,
-      210,  206,  216,  211,  208,  207,  212,  216,  209,  217,
-      215,  213,  219,  218,  222,  214,  223,  217,  218,  230,
-      225,  225,  225,  225,  307,  252,  219,  225,  227,  227,
-      227,  227,  222,  225,  252,  307,  230,  226,  226,  223,
-
-      226,  226,  226,  226,  228,  228,  228,  228,  228,  229,
-      229,  229,  229,  229,  231,  232,  234,  235,  239,  240,
-      241,  231,  235,  242,  243,  239,  244,  245,  246,  243,
-      247,  248,  232,  234,  249,  250,  248,  255,  242,  244,
-      253,  251,  240,  241,  246,  247,  251,  253,  256,  258,
-      257,  261,  262,  249,  245,  263,  250,  262,  264,  265,
-      255,  267,  268,  266,  263,  269,  261,  270,  274,  275,
-      277,  256,  257,  258,  257,  267,  278,  268,  279,  264,
-      265,  266,  270,  269,  275,  283,  274,  285,  281,  290,
-      551,  332,  286,  284,  277,  287,  279,  281,  283,  278,
-
-      284,  286,  288,  291,  287,  292,  293,  285,  295,  299,
-      332,  288,  290,  291,  292,  286,  293,  295,  287,  296,
-      298,  301,  303,  306,  299,  308,  296,  309,  301,  298,
-      310,  303,  309,  306,  312,  308,  313,  315,  318,  317,
-      320,  320,  320,  320,  323,  322,  325,  310,  327,  317,
-      322,  318,  323,  327,  329,  312,  326,  313,  328,  329,
-      315,  317,  330,  326,  331,  328,  333,  334,  325,  335,
-      331,  336,  337,  338,  340,  343,  334,  344,  345,  349,
-      338,  340,  346,  330,  347,  333,  335,  348,  343,  337,
-      344,  346,  350,  351,  336,  345,  352,  354,  355,  347,
-
-      362,  356,  349,  348,  357,  352,  358,  355,  356,  350,
-      359,  360,  351,  357,  354,  358,  363,  371,  362,  359,
-      372,  373,  375,  376,  360,  380,  377,  385,  390,  383,
-      372,  386,  371,  384,  375,  377,  383,  389,  387,  363,
-      373,  384,  386,  388,  380,  390,  376,  393,  388,  392,
-      385,  387,  395,  397,  396,  398,  399,  400,  401,  406,
-      389,  396,  392,  405,  398,  410,  416,  405,  405,  395,
-      393,  411,  410,  418,  413,  400,  401,  414,  399,  415,
-      418,  397,  406,  413,  415,  423,  414,  411,  424,  416,
-      425,  427,  428,  439,  438,  440,  434,  441,  444,  442,
-
-      427,  446,  428,  440,  449,  424,  423,  425,  434,  438,
-      441,  450,  451,  452,  453,  439,  442,  455,  456,  446,
-      459,  444,  457,  453,  458,  449,  455,  460,  452,  461,
-      462,  464,  450,  465,  467,  456,  460,  457,  451,  458,
-      466,  459,  465,  467,  468,  466,  470,  469,  471,  473,
-      478,  461,  474,  462,  469,  475,  464,  476,  480,  471,
-      479,  481,  487,  485,  503,  478,  476,  468,  489,  470,
-      481,  487,  488,  473,  489,  474,  485,  479,  475,  488,
-      491,  480,  493,  492,  495,  498,  500,  491,  492,  499,
-      498,  501,  502,  503,  504,  493,  501,  505,  499,  506,
-
-      507,  504,  508,  512,  511,  507,  509,  495,  502,  500,
-      513,  509,  514,  515,  506,  516,  517,  508,  511,  512,
-      505,  519,  515,  520,  516,  521,  522,  524,  525,  513,
-      519,  526,  527,  531,  529,  514,  524,  534,  520,  517,
-      521,  522,  533,  532,  526,  535,  536,  537,  531,  527,
-      532,  525,  529,  538,  534,  533,  539,  541,  540,  542,
-      544,  547,  549,  539,  536,  540,  535,  553,  547,  550,
-      537,  549,  548,  546,  538,  545,  543,  544,  530,  528,
-      523,  518,  542,  510,  497,  496,  541,  494,  553,  556,
-      556,  556,  556,  557,  557,  559,  490,  559,  559,  486,
-
-      484,  483,  482,  477,  472,  463,  454,  448,  447,  445,
-      443,  437,  436,  435,  433,  432,  431,  430,  429,  426,
-      422,  421,  420,  419,  417,  412,  409,  408,  407,  404,
-      403,  402,  394,  391,  382,  381,  379,  378,  374,  370,
-      369,  368,  367,  366,  365,  364,  361,  353,  342,  341,
-      339,  324,  321,  319,  316,  314,  311,  305,  304,  302,
-      300,  297,  294,  289,  282,  276,  273,  272,  271,  260,
-      259,  254,  238,  237,  236,  233,  221,  199,  193,  191,
-      183,  182,  179,  176,  149,  142,  137,  135,  132,  129,
-      125,  121,  105,   89,   59,   39,   37,    8,    7,    3,
-
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
-      555,  555,  555,  555
+        1,    1,    1,    1,    1,    1,    1,    1,    9,   60,
+        9,    9,    9,    9,    9,    9,    9,    9,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   12,   60,   21,
+       84,   65,   36,   36,   84,  626,   12,   13,   13,   13,
+       13,   13,   13,   13,   13,   13,   17,   21,   30,   18,
+       21,   23,   36,   65,   26,   17,   47,   21,   30,   18,
+
+       26,   23,   17,   18,   17,   47,   17,   23,   18,   17,
+       19,   18,   63,   26,   13,   16,   19,   76,   19,   26,
+       63,   16,   16,   16,   16,   16,   16,   16,   16,   19,
+       20,   76,   35,   19,   69,   34,   20,   25,   56,   22,
+       20,   34,   35,   25,   20,   22,   20,   22,   22,   20,
+       69,   25,   29,   27,   34,   22,   25,   53,   56,   22,
+       25,   22,   24,   27,   24,   29,   53,   24,   24,   24,
+       37,   29,   27,   28,   54,   55,   29,   24,   27,   68,
+       37,   57,   66,   28,   55,   28,   24,   24,   54,   28,
+       54,   28,   64,   28,   57,   28,   31,  623,   57,   70,
+
+       58,  618,   75,   32,   31,   68,   66,   62,   64,   32,
+       64,   31,   58,   31,   31,   59,   31,   31,   31,   75,
+       31,   77,   32,   62,   70,   32,   31,   59,   31,   31,
+       62,   31,   32,   33,   67,   71,   78,   73,  616,   59,
+       77,   33,   67,   92,   71,   73,   78,   82,   33,   82,
+       33,   33,   79,   33,   67,   33,   92,   33,   80,   33,
+       78,   73,   79,   33,   33,   43,   43,   43,   43,   43,
+       43,   43,   43,   48,   48,   48,   48,   48,   48,   48,
+       48,   81,   80,  615,   83,   48,  137,  614,  137,   74,
+       83,   48,   50,   50,   50,   50,   50,   50,   50,   50,
+
+       81,   86,   87,   50,   50,   74,   50,   50,   50,   50,
+       50,   50,   74,   88,   89,   93,   90,   91,   86,   94,
+       97,   89,   87,   91,   99,   95,   98,  109,   94,  612,
+      107,   93,  110,  100,   90,   91,   88,   88,  101,   88,
+       90,   95,   98,  100,   97,   99,  102,  103,  101,  104,
+      105,  106,  107,  103,  108,  109,  102,  100,  104,  111,
+      112,  110,  101,  115,  105,  106,  610,  113,  112,  116,
+      114,  108,  115,  111,  119,  117,  112,  113,  108,  116,
+      118,  119,  120,  121,  112,  117,  114,  115,  112,  114,
+      123,  113,  114,  116,  124,  114,  120,  121,  125,  118,
+
+      127,  128,  126,  132,  123,  121,  129,  130,  609,  133,
+      138,  128,  136,  132,  124,  123,  126,  130,  136,  131,
+      139,  127,  133,  161,  129,  128,  130,  125,  131,  131,
+      129,  130,  138,  131,  134,  135,  156,  143,  131,  134,
+      134,  131,  139,  143,  154,  151,  131,  161,  139,  135,
+      156,  135,  134,  146,  146,  150,  146,  146,  146,  146,
+      146,  146,  146,  146,  151,  153,  154,  150,  158,  159,
+      160,  163,  164,  165,  167,  153,  158,  168,  166,  173,
+      163,  171,  170,  165,  166,  159,  160,  172,  171,  173,
+      167,  175,  170,  168,  174,  164,  170,  176,  177,  178,
+
+      179,  172,  180,  182,  174,  181,  179,  183,  184,  188,
+      189,  195,  190,  182,  175,  184,  174,  183,  177,  192,
+      182,  176,  190,  191,  181,  178,  189,  181,  194,  188,
+      180,  193,  197,  191,  198,  195,  196,  199,  192,  200,
+      210,  193,  203,  194,  197,  196,  214,  191,  213,  221,
+      230,  229,  234,  199,  219,  218,  198,  220,  203,  221,
+      230,  210,  229,  267,  200,  608,  213,  223,  267,  234,
+      214,  217,  217,  217,  217,  217,  217,  217,  217,  218,
+      219,  220,  217,  217,  222,  217,  217,  217,  217,  217,
+      217,  223,  227,  231,  222,  235,  222,  237,  239,  238,
+
+      222,  241,  222,  240,  243,  244,  242,  249,  248,  251,
+      239,  241,  231,  262,  227,  238,  242,  235,  255,  241,
+      253,  237,  260,  240,  257,  258,  249,  251,  243,  259,
+      253,  244,  248,  264,  257,  262,  255,  261,  263,  258,
+      266,  260,  264,  261,  265,  269,  259,  270,  263,  277,
+      265,  272,  273,  273,  279,  266,  281,  272,  274,  274,
+      275,  275,  276,  276,  269,  278,  287,  277,  286,  282,
+      288,  270,  279,  278,  281,  282,  286,  289,  290,  292,
+      293,  291,  294,  295,  290,  296,  297,  303,  304,  295,
+      287,  299,  300,  289,  288,  291,  298,  293,  294,  305,
+
+      300,  299,  298,  306,  309,  296,  312,  292,  297,  310,
+      313,  303,  304,  314,  315,  310,  312,  318,  326,  316,
+      309,  317,  305,  319,  305,  323,  324,  327,  306,  328,
+      330,  332,  313,  315,  316,  314,  318,  317,  333,  319,
+      330,  334,  324,  326,  323,  332,  333,  335,  328,  336,
+      337,  327,  339,  340,  606,  341,  342,  335,  344,  336,
+      337,  345,  334,  348,  340,  341,  350,  342,  344,  345,
+      347,  335,  352,  336,  350,  355,  339,  356,  359,  348,
+      347,  357,  352,  358,  359,  360,  355,  362,  363,  356,
+      364,  365,  357,  367,  370,  369,  375,  358,  374,  377,
+
+      592,  589,  364,  360,  374,  375,  369,  378,  370,  362,
+      363,  382,  384,  380,  379,  378,  385,  367,  369,  365,
+      379,  380,  377,  381,  383,  386,  387,  388,  389,  381,
+      390,  383,  384,  382,  392,  386,  385,  397,  390,  395,
+      396,  400,  392,  399,  387,  401,  389,  398,  402,  406,
+      403,  388,  404,  395,  396,  397,  408,  398,  400,  399,
+      412,  407,  404,  409,  408,  410,  402,  406,  411,  401,
+      403,  407,  414,  409,  412,  410,  415,  423,  411,  424,
+      428,  425,  427,  432,  429,  435,  438,  439,  436,  437,
+      424,  414,  441,  423,  429,  427,  436,  442,  437,  439,
+
+      415,  425,  443,  432,  428,  444,  445,  447,  443,  435,
+      438,  442,  448,  450,  451,  452,  441,  453,  454,  455,
+      456,  447,  451,  461,  445,  466,  471,  453,  460,  444,
+      584,  450,  465,  460,  460,  468,  448,  478,  455,  456,
+      465,  454,  466,  469,  452,  468,  470,  461,  473,  479,
+      471,  480,  470,  469,  482,  483,  473,  489,  495,  478,
+      490,  496,  498,  497,  482,  499,  483,  479,  501,  480,
+      503,  489,  497,  490,  495,  506,  498,  507,  508,  509,
+      510,  512,  513,  499,  496,  514,  515,  516,  517,  503,
+      510,  512,  501,  518,  519,  509,  521,  506,  517,  507,
+
+      513,  514,  515,  522,  523,  508,  524,  525,  526,  516,
+      523,  527,  524,  522,  528,  529,  518,  525,  519,  527,
+      531,  534,  521,  532,  533,  536,  537,  529,  538,  539,
+      545,  534,  526,  554,  546,  543,  548,  547,  528,  539,
+      545,  536,  546,  548,  537,  531,  550,  532,  533,  543,
+      551,  552,  538,  547,  550,  557,  551,  554,  558,  559,
+      560,  557,  561,  562,  563,  552,  560,  564,  558,  566,
+      565,  567,  563,  568,  569,  571,  573,  567,  572,  561,
+      569,  574,  575,  559,  565,  566,  577,  576,  579,  568,
+      571,  564,  575,  562,  580,  572,  573,  576,  581,  582,
+
+      583,  585,  586,  587,  580,  574,  588,  593,  590,  591,
+      577,  585,  594,  596,  581,  582,  583,  587,  579,  591,
+      594,  595,  597,  593,  588,  599,  586,  590,  598,  600,
+      601,  596,  602,  603,  604,  595,  605,  607,  611,  601,
+      602,  603,  613,  617,  597,  578,  611,  598,  570,  599,
+      556,  600,  613,  555,  553,  607,  549,  544,  542,  541,
+      605,  540,  535,  530,  604,  617,  620,  620,  620,  620,
+      620,  620,  620,  620,  621,  520,  621,  621,  621,  621,
+      622,  511,  622,  622,  505,  622,  624,  504,  624,  624,
+      624,  624,  624,  624,  625,  502,  625,  625,  500,  625,
+
+      627,  627,  627,  627,  627,  627,  627,  627,  628,  494,
+      628,  629,  629,  629,  493,  492,  491,  488,  487,  486,
+      485,  484,  481,  477,  476,  475,  474,  472,  467,  464,
+      463,  462,  459,  458,  457,  449,  446,  440,  434,  433,
+      431,  430,  426,  422,  421,  420,  419,  418,  417,  416,
+      413,  405,  394,  393,  391,  376,  373,  371,  368,  366,
+      361,  354,  353,  351,  349,  346,  343,  338,  331,  325,
+      322,  321,  320,  311,  308,  307,  302,  301,  285,  284,
+      283,  280,  268,  256,  254,  252,  250,  247,  246,  245,
+      236,  233,  232,  228,  226,  225,  224,  216,  215,  212,
+
+      211,  209,  208,  207,  206,  205,  204,  202,  201,  187,
+      186,  185,  169,  162,  157,  155,  152,  149,  148,  144,
+      140,  122,   96,   85,   72,   61,   52,   49,   46,   45,
+       40,   38,   14,    8,    7,    3,  619,  619,  619,  619,
+      619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
+      619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
+      619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
+      619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
+      619,  619,  619,  619,  619
     } ;
 
 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -878,7 +934,7 @@ goto find_rule; \
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
-#line 1 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+#line 1 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
 #define INITIAL 0
 /*===-- UpgradeLexer.l - Scanner for 1.9 assembly files --------*- C++ -*--===//
 //
@@ -893,9 +949,10 @@ char *yytext;
 //
 //===----------------------------------------------------------------------===*/
 #define YY_NEVER_INTERACTIVE 1
-#line 28 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-
-#include "ParserInternals.h"
+#line 28 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+#include "UpgradeInternals.h"
+#include "llvm/Module.h"
+#include <list>
 #include "UpgradeParser.h"
 #include <cctype>
 #include <cstdlib>
@@ -910,18 +967,113 @@ char *yytext;
   } \
 }
 
+#define YY_NEVER_INTERACTIVE 1
 
 // Construct a token value for a non-obsolete token
-#define RET_TOK(sym) \
-  Upgradelval.String = new std::string(yytext); \
+#define RET_TOK(type, Enum, sym) \
+  Upgradelval.type = Enum; \
   return sym
 
-#define RET_TY(sym,OldTY,NewTY,sign) \
-  Upgradelval.Type.newTy = new std::string(NewTY); \
-  Upgradelval.Type.oldTy = OldTY; \
+#define RET_TY(sym,NewTY,sign) \
+  Upgradelval.PrimType.T = NewTY; \
+  switch (sign) { \
+    case 0: Upgradelval.PrimType.S.makeSignless(); break; \
+    case 1: Upgradelval.PrimType.S.makeUnsigned(); break; \
+    case 2: Upgradelval.PrimType.S.makeSigned(); break; \
+    default: assert(0 && "Invalid sign kind"); break; \
+  }\
   return sym
 
-#define YY_NEVER_INTERACTIVE 1
+namespace llvm {
+
+// TODO: All of the static identifiers are figured out by the lexer,
+// these should be hashed to reduce the lexer size
+
+// UnEscapeLexed - Run through the specified buffer and change \xx codes to the
+// appropriate character.  If AllowNull is set to false, a \00 value will cause
+// an exception to be thrown.
+//
+// If AllowNull is set to true, the return value of the function points to the
+// last character of the string in memory.
+//
+char *UnEscapeLexed(char *Buffer, bool AllowNull) {
+  char *BOut = Buffer;
+  for (char *BIn = Buffer; *BIn; ) {
+    if (BIn[0] == '\\' && isxdigit(BIn[1]) && isxdigit(BIn[2])) {
+      char Tmp = BIn[3]; BIn[3] = 0;     // Terminate string
+      *BOut = (char)strtol(BIn+1, 0, 16);  // Convert to number
+      if (!AllowNull && !*BOut)
+        error("String literal cannot accept \\00 escape!");
+
+      BIn[3] = Tmp;                  // Restore character
+      BIn += 3;                      // Skip over handled chars
+      ++BOut;
+    } else {
+      *BOut++ = *BIn++;
+    }
+  }
+
+  return BOut;
+}
+
+// atoull - Convert an ascii string of decimal digits into the unsigned long
+// long representation... this does not have to do input error checking,
+// because we know that the input will be matched by a suitable regex...
+//
+static uint64_t atoull(const char *Buffer) {
+  uint64_t Result = 0;
+  for (; *Buffer; Buffer++) {
+    uint64_t OldRes = Result;
+    Result *= 10;
+    Result += *Buffer-'0';
+    if (Result < OldRes)   // Uh, oh, overflow detected!!!
+      error("constant bigger than 64 bits detected!");
+  }
+  return Result;
+}
+
+static uint64_t HexIntToVal(const char *Buffer) {
+  uint64_t Result = 0;
+  for (; *Buffer; ++Buffer) {
+    uint64_t OldRes = Result;
+    Result *= 16;
+    char C = *Buffer;
+    if (C >= '0' && C <= '9')
+      Result += C-'0';
+    else if (C >= 'A' && C <= 'F')
+      Result += C-'A'+10;
+    else if (C >= 'a' && C <= 'f')
+      Result += C-'a'+10;
+
+    if (Result < OldRes)   // Uh, oh, overflow detected!!!
+      error("constant bigger than 64 bits detected!");
+  }
+  return Result;
+}
+
+
+// HexToFP - Convert the ascii string in hexidecimal format to the floating
+// point representation of it.
+//
+static double HexToFP(const char *Buffer) {
+  // Behave nicely in the face of C TBAA rules... see:
+  // http://www.nullstone.com/htmls/category/aliastyp.htm
+  union {
+    uint64_t UI;
+    double FP;
+  } UIntToFP;
+  UIntToFP.UI = HexIntToVal(Buffer);
+
+  assert(sizeof(double) == sizeof(uint64_t) &&
+         "Data sizes incompatible on this target!");
+  return UIntToFP.FP;   // Cast Hex constant to double
+}
+
+
+} // End llvm namespace
+
+using namespace llvm;
+
 /* Comments start with a ; and go till end of line */
 /* Variable(Value) identifiers start with a % sign */
 /* Label identifiers end with a colon */
@@ -938,7 +1090,7 @@ char *yytext;
 /* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
  * it to deal with 64 bit numbers.
  */
-#line 942 "UpgradeLexer.cpp"
+#line 1094 "UpgradeLexer.cpp"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1089,10 +1241,10 @@ YY_DECL
        register char *yy_cp = NULL, *yy_bp = NULL;
        register int yy_act;
 
-#line 98 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+#line 194 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
 
 
-#line 1096 "UpgradeLexer.cpp"
+#line 1248 "UpgradeLexer.cpp"
 
        if ( yy_init )
                {
@@ -1140,14 +1292,14 @@ 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 >= 556 )
+                               if ( yy_current_state >= 620 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        *yy_state_ptr++ = yy_current_state;
                        ++yy_cp;
                        }
-               while ( yy_current_state != 555 );
+               while ( yy_current_state != 619 );
 
 yy_find_action:
                yy_current_state = *--yy_state_ptr;
@@ -1185,641 +1337,841 @@ do_action:    /* This label is used only to access EOF actions. */
        { /* beginning of action switch */
 case 1:
 YY_RULE_SETUP
-#line 100 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+#line 196 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
 { /* Ignore comments for now */ }
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 102 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( BEGINTOK); }
+#line 198 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return BEGINTOK; }
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 103 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ENDTOK); }
+#line 199 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ENDTOK; }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 104 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( TRUETOK);  }
+#line 200 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return TRUETOK;  }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 105 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FALSETOK); }
+#line 201 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return FALSETOK; }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 106 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( DECLARE); }
+#line 202 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return DECLARE; }
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 107 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( GLOBAL); }
+#line 203 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return GLOBAL; }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 108 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( CONSTANT); }
+#line 204 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return CONSTANT; }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 109 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( INTERNAL); }
+#line 205 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return INTERNAL; }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 110 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( LINKONCE); }
+#line 206 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return LINKONCE; }
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 111 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( WEAK); }
+#line 207 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return WEAK; }
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 112 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( APPENDING); }
+#line 208 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return APPENDING; }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 113 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( DLLIMPORT); }
+#line 209 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return DLLIMPORT; }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 114 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( DLLEXPORT); }
+#line 210 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return DLLEXPORT; }
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 115 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( EXTERN_WEAK); }
+#line 211 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return EXTERN_WEAK; }
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 116 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( EXTERNAL); }
+#line 212 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return EXTERNAL; }    /* Deprecated, turn into external */
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 117 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( IMPLEMENTATION); }
+#line 213 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return EXTERNAL; }
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 118 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ZEROINITIALIZER); }
+#line 214 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return IMPLEMENTATION; }
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 119 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( DOTDOTDOT); }
+#line 215 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ZEROINITIALIZER; }
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 120 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UNDEF); }
+#line 216 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return DOTDOTDOT; }
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 121 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( NULL_TOK); }
+#line 217 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UNDEF; }
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 122 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( TO); }
+#line 218 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return NULL_TOK; }
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 123 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( TAIL); }
+#line 219 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return TO; }
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 124 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( TARGET); }
+#line 220 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return EXCEPT; }
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 125 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( TRIPLE); }
+#line 221 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return NOT; }  /* Deprecated, turned into XOR */
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 126 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( DEPLIBS); }
+#line 222 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return TAIL; }
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 127 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ENDIAN); }
+#line 223 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return TARGET; }
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 128 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( POINTERSIZE); }
+#line 224 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return TRIPLE; }
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 129 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( DATALAYOUT); }
+#line 225 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return DEPLIBS; }
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 130 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( LITTLE); }
+#line 226 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ENDIAN; }
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 131 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( BIG); }
+#line 227 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return POINTERSIZE; }
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 132 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( VOLATILE); }
+#line 228 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return DATALAYOUT; }
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 133 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ALIGN);  }
+#line 229 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return LITTLE; }
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 134 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SECTION); }
+#line 230 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return BIG; }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 135 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( MODULE); }
+#line 231 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return VOLATILE; }
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 136 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ASM_TOK); }
+#line 232 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ALIGN;  }
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 137 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SIDEEFFECT); }
+#line 233 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SECTION; }
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 139 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( CC_TOK); }
+#line 234 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return MODULE; }
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 140 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( CCC_TOK); }
+#line 235 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ASM_TOK; }
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 141 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( CSRETCC_TOK); }
+#line 236 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SIDEEFFECT; }
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 142 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FASTCC_TOK); }
+#line 238 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return CC_TOK; }
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 143 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( COLDCC_TOK); }
+#line 239 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return CCC_TOK; }
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 144 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( X86_STDCALLCC_TOK); }
+#line 240 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return CSRETCC_TOK; }
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 145 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( X86_FASTCALLCC_TOK); }
+#line 241 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return FASTCC_TOK; }
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 147 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(VOID,VoidTy,"void",false); }
+#line 242 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return COLDCC_TOK; }
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 148 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(BOOL,BoolTy,"bool",false); }
+#line 243 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return X86_STDCALLCC_TOK; }
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 149 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(SBYTE,SByteTy,"sbyte",true); }
+#line 244 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return X86_FASTCALLCC_TOK; }
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 150 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(UBYTE,UByteTy,"ubyte",false); }
+#line 246 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(SBYTE,  Type::Int8Ty,  2); }
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 151 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(SHORT,ShortTy,"short",true); }
+#line 247 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(UBYTE,  Type::Int8Ty,  1); }
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 152 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(USHORT,UShortTy,"ushort",false); }
+#line 248 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(UBYTE,  Type::Int8Ty,  1); }
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 153 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(INT,IntTy,"int",true);   }
+#line 249 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(SHORT,  Type::Int16Ty, 2); }
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 154 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(UINT,UIntTy,"uint",false);  }
+#line 250 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(USHORT, Type::Int16Ty, 1); }
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 155 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(LONG,LongTy,"long",true);  }
+#line 251 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(USHORT, Type::Int16Ty, 1); }
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 156 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(ULONG,ULongTy,"ulong",false); }
+#line 252 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(INT,    Type::Int32Ty, 2); }
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 157 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(FLOAT,FloatTy,"float",false); }
+#line 253 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(UINT,   Type::Int32Ty, 1); }
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 158 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(DOUBLE,DoubleTy,"double",false); }
+#line 254 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(UINT,   Type::Int32Ty, 1); }
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 159 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TY(LABEL,LabelTy,"label",false); }
+#line 255 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(LONG,   Type::Int64Ty, 2); }
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 160 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(OPAQUE); }
+#line 256 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(ULONG,  Type::Int64Ty, 1); }
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 161 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK(TYPE);   }
+#line 257 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(ULONG,  Type::Int64Ty, 1); }
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 163 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ADD); }
+#line 258 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(VOID,   Type::VoidTy,  0); }
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 164 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SUB); }
+#line 259 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(BOOL,   Type::Int1Ty,  1); }
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 165 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( MUL); }
+#line 260 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(BOOL,   Type::Int1Ty,  1); }
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 166 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UDIV); }
+#line 261 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(FLOAT,  Type::FloatTy, 0); }
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 167 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UDIV); }
+#line 262 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(DOUBLE, Type::DoubleTy,0); }
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 168 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SDIV); }
+#line 263 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TY(LABEL,  Type::LabelTy, 0); }
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 169 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FDIV); }
+#line 264 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return TYPE;   }
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 170 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UREM); }
+#line 265 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OPAQUE; }
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 171 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UREM); }
+#line 267 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, AddOp, ADD); }
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 172 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SREM); }
+#line 268 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, SubOp, SUB); }
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 173 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FREM); }
+#line 269 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, MulOp, MUL); }
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 174 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( AND); }
+#line 270 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, DivOp,  DIV); }
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 175 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( OR); }
+#line 271 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, UDivOp, UDIV); }
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 176 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( XOR); }
+#line 272 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, SDivOp, SDIV); }
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 177 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SETNE); }
+#line 273 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, FDivOp, FDIV); }
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 178 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SETEQ); }
+#line 274 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, RemOp,  REM); }
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 179 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SETLT); }
+#line 275 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, URemOp, UREM); }
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 180 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SETGT); }
+#line 276 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, SRemOp, SREM); }
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 181 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SETLE); }
+#line 277 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, FRemOp, FREM); }
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 182 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SETGE); }
+#line 278 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, AndOp, AND); }
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 184 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( PHI_TOK); }
+#line 279 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, OrOp , OR ); }
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 185 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( CALL); }
+#line 280 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, XorOp, XOR); }
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 186 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( CAST); }
+#line 281 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 187 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( TRUNC); }
+#line 282 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 188 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ZEXT); }
+#line 283 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 189 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SEXT); }
+#line 284 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 190 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FPTRUNC); }
+#line 285 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 191 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FPEXT); }
+#line 286 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 192 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FPTOUI); }
+#line 287 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, ShlOp, SHL); }
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 193 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FPTOSI); }
+#line 288 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, ShrOp, SHR); }
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 194 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UITOFP); }
+#line 289 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, LShrOp, LSHR); }
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 195 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SITOFP); }
+#line 290 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(BinaryOpVal, AShrOp, ASHR); }
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 196 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( PTRTOINT); }
+#line 292 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, ICmpOp, ICMP); }
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 197 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( INTTOPTR); }
+#line 293 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, FCmpOp, FCMP); }
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 198 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( BITCAST); }
+#line 295 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return EQ; }
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 199 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SELECT); }
+#line 296 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return NE; }
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 200 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SHL); }
+#line 297 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SLT; }
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 201 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SHR); }
+#line 298 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SGT; }
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 202 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ASHR); }
+#line 299 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SLE; }
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 203 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( LSHR); }
+#line 300 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return SGE; }
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 204 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( VAARG); }
+#line 301 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ULT; }
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 205 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( RET); }
+#line 302 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UGT; }
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 206 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( BR); }
+#line 303 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ULE; }
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 207 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SWITCH); }
+#line 304 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UGE; }
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 208 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( INVOKE); }
+#line 305 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OEQ; }
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 209 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UNWIND); }
+#line 306 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ONE; }
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 210 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UNWIND); }
+#line 307 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OLT; }
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 211 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UNREACHABLE); }
+#line 308 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OGT; }
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 213 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( MALLOC); }
+#line 309 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OLE; }
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 214 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ALLOCA); }
+#line 310 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return OGE; }
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 215 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FREE); }
+#line 311 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return ORD; }
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 216 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( LOAD); }
+#line 312 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UNO; }
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 217 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( STORE); }
+#line 313 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UEQ; }
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 218 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( GETELEMENTPTR); }
+#line 314 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UNE; }
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 220 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( EXTRACTELEMENT); }
+#line 316 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, PHIOp, PHI_TOK); }
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 221 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( INSERTELEMENT); }
+#line 317 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, CallOp, CALL); }
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 222 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SHUFFLEVECTOR); }
+#line 318 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, CastOp, CAST);  }
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 225 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( VAR_ID); }
+#line 319 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, TruncOp, TRUNC); }
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 226 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( LABELSTR); }
+#line 320 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, ZExtOp , ZEXT); }
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 227 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( LABELSTR); }
+#line 321 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, SExtOp, SEXT); }
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 228 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( STRINGCONSTANT ); }
+#line 322 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, FPTruncOp, FPTRUNC); }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 229 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( EUINT64VAL ); }
+#line 323 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, FPExtOp, FPEXT); }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 230 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( ESINT64VAL ); }
+#line 324 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, FPToUIOp, FPTOUI); }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 231 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( yytext[0] == 's' ? ESINT64VAL : EUINT64VAL ); }
+#line 325 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, FPToSIOp, FPTOSI); }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 232 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( UINTVAL); }
+#line 326 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, UIToFPOp, UITOFP); }
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 233 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( SINTVAL); }
+#line 327 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, SIToFPOp, SITOFP); }
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 234 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FPVAL); }
+#line 328 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, PtrToIntOp, PTRTOINT); }
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 235 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
-{ RET_TOK( FPVAL); }
+#line 329 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, IntToPtrOp, INTTOPTR); }
+       YY_BREAK
+case 128:
+YY_RULE_SETUP
+#line 330 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(CastOpVal, BitCastOp, BITCAST); }
+       YY_BREAK
+case 129:
+YY_RULE_SETUP
+#line 331 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, SelectOp, SELECT); }
+       YY_BREAK
+case 130:
+YY_RULE_SETUP
+#line 332 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return VANEXT_old; }
+       YY_BREAK
+case 131:
+YY_RULE_SETUP
+#line 333 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return VAARG_old; }
+       YY_BREAK
+case 132:
+YY_RULE_SETUP
+#line 334 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, VAArg , VAARG); }
+       YY_BREAK
+case 133:
+YY_RULE_SETUP
+#line 335 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(TermOpVal, RetOp, RET); }
+       YY_BREAK
+case 134:
+YY_RULE_SETUP
+#line 336 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(TermOpVal, BrOp, BR); }
+       YY_BREAK
+case 135:
+YY_RULE_SETUP
+#line 337 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(TermOpVal, SwitchOp, SWITCH); }
+       YY_BREAK
+case 136:
+YY_RULE_SETUP
+#line 338 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(TermOpVal, InvokeOp, INVOKE); }
+       YY_BREAK
+case 137:
+YY_RULE_SETUP
+#line 339 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ return UNWIND; }
+       YY_BREAK
+case 138:
+YY_RULE_SETUP
+#line 340 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(TermOpVal, UnreachableOp, UNREACHABLE); }
+       YY_BREAK
+case 139:
+YY_RULE_SETUP
+#line 342 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(MemOpVal, MallocOp, MALLOC); }
+       YY_BREAK
+case 140:
+YY_RULE_SETUP
+#line 343 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(MemOpVal, AllocaOp, ALLOCA); }
+       YY_BREAK
+case 141:
+YY_RULE_SETUP
+#line 344 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(MemOpVal, FreeOp, FREE); }
+       YY_BREAK
+case 142:
+YY_RULE_SETUP
+#line 345 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(MemOpVal, LoadOp, LOAD); }
+       YY_BREAK
+case 143:
+YY_RULE_SETUP
+#line 346 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(MemOpVal, StoreOp, STORE); }
+       YY_BREAK
+case 144:
+YY_RULE_SETUP
+#line 347 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(MemOpVal, GetElementPtrOp, GETELEMENTPTR); }
+       YY_BREAK
+case 145:
+YY_RULE_SETUP
+#line 349 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, ExtractElementOp, EXTRACTELEMENT); }
+       YY_BREAK
+case 146:
+YY_RULE_SETUP
+#line 350 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, InsertElementOp, INSERTELEMENT); }
+       YY_BREAK
+case 147:
+YY_RULE_SETUP
+#line 351 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ RET_TOK(OtherOpVal, ShuffleVectorOp, SHUFFLEVECTOR); }
+       YY_BREAK
+case 148:
+YY_RULE_SETUP
+#line 354 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{
+                  UnEscapeLexed(yytext+1);
+                  Upgradelval.StrVal = strdup(yytext+1);             // Skip %
+                  return VAR_ID;
+                }
+       YY_BREAK
+case 149:
+YY_RULE_SETUP
+#line 359 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{
+                  yytext[strlen(yytext)-1] = 0;  // nuke colon
+                  UnEscapeLexed(yytext);
+                  Upgradelval.StrVal = strdup(yytext);
+                  return LABELSTR;
+                }
+       YY_BREAK
+case 150:
+YY_RULE_SETUP
+#line 365 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{
+                  yytext[strlen(yytext)-2] = 0;  // nuke colon, end quote
+                  UnEscapeLexed(yytext+1);
+                  Upgradelval.StrVal = strdup(yytext+1);
+                  return LABELSTR;
+                }
+       YY_BREAK
+case 151:
+YY_RULE_SETUP
+#line 372 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ // Note that we cannot unescape a string constant here!  The
+                   // string constant might contain a \00 which would not be
+                   // understood by the string stuff.  It is valid to make a
+                   // [sbyte] c"Hello World\00" constant, for example.
+                   //
+                   yytext[strlen(yytext)-1] = 0;           // nuke end quote
+                   Upgradelval.StrVal = strdup(yytext+1);  // Nuke start quote
+                   return STRINGCONSTANT;
+                 }
+       YY_BREAK
+case 152:
+YY_RULE_SETUP
+#line 383 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ Upgradelval.UInt64Val = atoull(yytext); return EUINT64VAL; }
+       YY_BREAK
+case 153:
+YY_RULE_SETUP
+#line 384 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{
+                  uint64_t Val = atoull(yytext+1);
+                  // +1:  we have bigger negative range
+                  if (Val > (uint64_t)INT64_MAX+1)
+                    error("Constant too large for signed 64 bits!");
+                  Upgradelval.SInt64Val = -Val;
+                  return ESINT64VAL;
+                }
+       YY_BREAK
+case 154:
+YY_RULE_SETUP
+#line 392 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{
+                   Upgradelval.UInt64Val = HexIntToVal(yytext+3);
+                   return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
+                 }
+       YY_BREAK
+case 155:
+YY_RULE_SETUP
+#line 397 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{
+                  uint64_t Val = atoull(yytext+1);
+                  if ((unsigned)Val != Val)
+                    error("Invalid value number (too large)!");
+                  Upgradelval.UIntVal = unsigned(Val);
+                  return UINTVAL;
+                }
+       YY_BREAK
+case 156:
+YY_RULE_SETUP
+#line 404 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{
+                  uint64_t Val = atoull(yytext+2);
+                  // +1:  we have bigger negative range
+                  if (Val > (uint64_t)INT32_MAX+1)
+                    error("Constant too large for signed 32 bits!");
+                  Upgradelval.SIntVal = (int)-Val;
+                  return SINTVAL;
+                }
+       YY_BREAK
+case 157:
+YY_RULE_SETUP
+#line 413 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ Upgradelval.FPVal = atof(yytext); return FPVAL; }
+       YY_BREAK
+case 158:
+YY_RULE_SETUP
+#line 414 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
+{ Upgradelval.FPVal = HexToFP(yytext); return FPVAL; }
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 236 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+#line 416 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
 {
                   /* Make sure to free the internal buffers for flex when we are
                    * done reading our input!
@@ -1828,22 +2180,22 @@ case YY_STATE_EOF(INITIAL):
                   return EOF;
                 }
        YY_BREAK
-case 128:
+case 159:
 YY_RULE_SETUP
-#line 244 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+#line 424 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
 { /* Ignore whitespace */ }
        YY_BREAK
-case 129:
+case 160:
 YY_RULE_SETUP
-#line 245 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+#line 425 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
 { return yytext[0]; }
        YY_BREAK
-case 130:
+case 161:
 YY_RULE_SETUP
-#line 247 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+#line 427 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
        YY_BREAK
-#line 1847 "UpgradeLexer.cpp"
+#line 2199 "UpgradeLexer.cpp"
 
        case YY_END_OF_BUFFER:
                {
@@ -2130,7 +2482,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 >= 556 )
+                       if ( yy_current_state >= 620 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2160,11 +2512,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 >= 556 )
+               if ( yy_current_state >= 620 )
                        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 == 555);
+       yy_is_jam = (yy_current_state == 619);
        if ( ! yy_is_jam )
                *yy_state_ptr++ = yy_current_state;
 
@@ -2721,5 +3073,5 @@ int main()
        return 0;
        }
 #endif
-#line 247 "/proj/llvm/llvm-4/tools/llvm-upgrade/UpgradeLexer.l"
+#line 427 "/proj/llvm/llvm-1/tools/llvm-upgrade/UpgradeLexer.l"