[llvm-commits] [llvm] r57561 - in /llvm/trunk/lib/AsmParser: llvmAsmParser.cpp.cvs llvmAsmParser.y.cvs

Chris Lattner sabre at nondot.org
Tue Oct 14 23:16:57 PDT 2008


Author: lattner
Date: Wed Oct 15 01:16:57 2008
New Revision: 57561

URL: http://llvm.org/viewvc/llvm-project?rev=57561&view=rev
Log:
regenerate

Modified:
    llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs
    llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs

Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs?rev=57561&r1=57560&r2=57561&view=diff

==============================================================================
--- llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs (original)
+++ llvm/trunk/lib/AsmParser/llvmAsmParser.cpp.cvs Wed Oct 15 01:16:57 2008
@@ -1655,16 +1655,16 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  44
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   2334
+#define YYLAST   2377
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  173
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  88
+#define YYNNTS  87
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  353
+#define YYNRULES  348
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  715
+#define YYNSTATES  708
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -1731,42 +1731,41 @@
       59,    61,    63,    65,    67,    69,    71,    73,    75,    77,
       79,    81,    83,    85,    87,    89,    91,    93,    95,    97,
       99,   101,   103,   105,   107,   109,   111,   113,   115,   117,
-     119,   121,   123,   125,   127,   128,   133,   134,   137,   138,
-     141,   143,   145,   147,   148,   151,   153,   155,   157,   159,
-     161,   163,   165,   167,   169,   170,   172,   174,   176,   177,
-     179,   181,   182,   184,   186,   188,   190,   191,   193,   195,
-     196,   198,   200,   202,   204,   206,   209,   211,   213,   215,
-     217,   219,   221,   223,   225,   227,   230,   231,   234,   236,
-     238,   240,   241,   244,   246,   248,   250,   252,   254,   256,
-     258,   260,   262,   264,   265,   268,   269,   272,   273,   276,
-     277,   281,   284,   285,   287,   288,   292,   294,   297,   299,
-     301,   303,   305,   307,   309,   311,   313,   315,   319,   321,
-     324,   330,   336,   342,   348,   352,   355,   361,   366,   369,
-     371,   373,   375,   379,   381,   385,   387,   388,   390,   394,
-     399,   403,   407,   412,   417,   421,   428,   434,   437,   440,
-     443,   446,   449,   452,   455,   458,   461,   464,   467,   470,
-     477,   483,   492,   499,   506,   514,   522,   530,   538,   545,
-     554,   563,   569,   577,   581,   583,   585,   587,   589,   590,
-     593,   600,   602,   603,   605,   608,   609,   613,   614,   618,
-     622,   626,   630,   631,   640,   641,   651,   652,   662,   668,
-     671,   675,   677,   681,   685,   689,   693,   695,   696,   702,
-     706,   708,   712,   714,   715,   727,   729,   731,   736,   738,
-     740,   743,   747,   748,   750,   752,   754,   756,   758,   760,
-     762,   764,   766,   768,   770,   774,   778,   781,   784,   788,
-     791,   797,   802,   804,   810,   812,   814,   816,   818,   820,
-     822,   825,   827,   831,   834,   837,   841,   845,   848,   849,
-     851,   854,   857,   861,   871,   881,   890,   906,   908,   910,
-     917,   923,   926,   929,   936,   944,   949,   954,   961,   968,
-     969,   970,   974,   977,   981,   984,   986,   992,   998,  1005,
-    1012,  1019,  1026,  1031,  1038,  1043,  1048,  1055,  1062,  1065,
-    1075,  1077,  1079,  1080,  1084,  1091,  1095,  1102,  1105,  1111,
-    1119,  1125,  1130,  1135
+     118,   123,   124,   127,   128,   131,   133,   135,   137,   138,
+     141,   143,   145,   147,   149,   151,   153,   155,   157,   159,
+     160,   162,   164,   166,   167,   169,   171,   172,   174,   176,
+     178,   180,   181,   183,   185,   186,   188,   190,   192,   194,
+     196,   199,   201,   203,   205,   207,   209,   211,   213,   215,
+     217,   220,   221,   224,   226,   228,   230,   231,   234,   236,
+     238,   240,   242,   244,   246,   248,   250,   252,   254,   255,
+     258,   259,   262,   263,   266,   267,   271,   274,   275,   277,
+     278,   282,   284,   287,   289,   291,   293,   295,   297,   299,
+     301,   303,   305,   309,   311,   314,   320,   326,   332,   338,
+     342,   345,   351,   356,   359,   361,   363,   365,   369,   371,
+     375,   377,   378,   380,   384,   389,   393,   397,   402,   407,
+     411,   418,   424,   427,   430,   433,   436,   439,   442,   445,
+     448,   451,   454,   457,   460,   467,   473,   482,   489,   496,
+     504,   512,   520,   528,   535,   544,   553,   559,   567,   571,
+     573,   575,   577,   579,   580,   583,   590,   592,   593,   595,
+     598,   599,   603,   604,   608,   612,   616,   620,   621,   630,
+     631,   641,   642,   652,   658,   661,   665,   667,   671,   675,
+     679,   683,   685,   686,   692,   696,   698,   702,   704,   705,
+     717,   719,   721,   726,   728,   730,   733,   737,   738,   740,
+     742,   744,   746,   748,   750,   752,   754,   756,   758,   760,
+     764,   768,   771,   774,   778,   781,   787,   792,   794,   800,
+     802,   804,   806,   808,   810,   812,   815,   817,   821,   824,
+     827,   831,   835,   838,   839,   841,   844,   847,   851,   861,
+     871,   880,   896,   898,   900,   907,   913,   916,   919,   926,
+     934,   939,   944,   951,   958,   959,   960,   964,   967,   971,
+     974,   976,   982,   988,   995,  1002,  1009,  1016,  1021,  1028,
+    1033,  1038,  1045,  1052,  1055,  1065,  1067,  1069,  1070,  1074,
+    1081,  1085,  1092,  1095,  1101,  1109,  1115,  1120,  1125
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     221,     0,    -1,    75,    -1,    76,    -1,    77,    -1,    78,
+     220,     0,    -1,    75,    -1,    76,    -1,    77,    -1,    78,
       -1,    79,    -1,    80,    -1,    81,    -1,    82,    -1,    83,
       -1,    87,    -1,    88,    -1,    89,    -1,    84,    -1,    85,
       -1,    86,    -1,   120,    -1,   121,    -1,   122,    -1,   123,
@@ -1776,11 +1775,10 @@
       -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
       -1,   106,    -1,   107,    -1,   108,    -1,   109,    -1,   110,
       -1,   111,    -1,   112,    -1,   113,    -1,   100,    -1,   101,
-      -1,   102,    -1,   103,    -1,    26,    -1,    27,    -1,    12,
-      -1,    13,    -1,    16,    -1,    15,    -1,    14,    -1,    19,
-      -1,    22,    -1,    24,    -1,   180,    -1,    -1,    55,   159,
-       4,   160,    -1,    -1,   180,   161,    -1,    -1,     7,   161,
-      -1,    20,    -1,    23,    -1,   187,    -1,    -1,   185,   161,
+      -1,   102,    -1,   103,    -1,    26,    -1,    27,    -1,    19,
+      -1,    22,    -1,    24,    -1,   179,    -1,    -1,    55,   159,
+       4,   160,    -1,    -1,   179,   161,    -1,    -1,     7,   161,
+      -1,    20,    -1,    23,    -1,   186,    -1,    -1,   184,   161,
       -1,    42,    -1,    44,    -1,    43,    -1,    45,    -1,    47,
       -1,    49,    -1,    46,    -1,    48,    -1,    51,    -1,    -1,
      156,    -1,   157,    -1,   158,    -1,    -1,    46,    -1,    48,
@@ -1789,98 +1787,98 @@
       65,    -1,    66,    -1,    67,    -1,    62,     4,    -1,   142,
       -1,   121,    -1,   141,    -1,   122,    -1,   144,    -1,   145,
       -1,   147,    -1,   148,    -1,   149,    -1,    54,     4,    -1,
-      -1,   196,   195,    -1,   144,    -1,   142,    -1,   141,    -1,
-      -1,   198,   197,    -1,   143,    -1,   146,    -1,   144,    -1,
+      -1,   195,   194,    -1,   144,    -1,   142,    -1,   141,    -1,
+      -1,   197,   196,    -1,   143,    -1,   146,    -1,   144,    -1,
      142,    -1,   141,    -1,   150,    -1,   151,    -1,   154,    -1,
-     155,    -1,   153,    -1,    -1,   200,   199,    -1,    -1,   152,
+     155,    -1,   153,    -1,    -1,   199,   198,    -1,    -1,   152,
       22,    -1,    -1,    54,     4,    -1,    -1,   162,    54,     4,
-      -1,    34,    22,    -1,    -1,   204,    -1,    -1,   162,   207,
-     206,    -1,   204,    -1,    54,     4,    -1,    11,    -1,    12,
+      -1,    34,    22,    -1,    -1,   203,    -1,    -1,   162,   206,
+     205,    -1,   203,    -1,    54,     4,    -1,    11,    -1,    12,
       -1,    13,    -1,    16,    -1,    15,    -1,    14,    -1,    17,
-      -1,    50,    -1,   208,    -1,   209,   182,   163,    -1,   243,
-      -1,   164,     4,    -1,   209,   159,   213,   160,   200,    -1,
-      10,   159,   213,   160,   200,    -1,   165,     4,   166,   209,
-     167,    -1,   168,     4,   166,   209,   169,    -1,   170,   214,
-     171,    -1,   170,   171,    -1,   168,   170,   214,   171,   169,
-      -1,   168,   170,   171,   169,    -1,   209,   196,    -1,   209,
-      -1,    10,    -1,   210,    -1,   212,   162,   210,    -1,   212,
-      -1,   212,   162,    39,    -1,    39,    -1,    -1,   209,    -1,
-     214,   162,   209,    -1,   209,   165,   217,   167,    -1,   209,
-     165,   167,    -1,   209,   172,    22,    -1,   209,   168,   217,
-     169,    -1,   209,   170,   217,   171,    -1,   209,   170,   171,
-      -1,   209,   168,   170,   217,   171,   169,    -1,   209,   168,
-     170,   171,   169,    -1,   209,    40,    -1,   209,    41,    -1,
-     209,   243,    -1,   209,   216,    -1,   209,    25,    -1,    11,
-       3,    -1,    11,     5,    -1,    11,     4,    -1,    11,     6,
-      -1,    11,    26,    -1,    11,    27,    -1,   179,     9,    -1,
-     176,   159,   215,    38,   209,   160,    -1,   119,   159,   215,
-     255,   160,    -1,   133,   159,   215,   162,   215,   162,   215,
-     160,    -1,   174,   159,   215,   162,   215,   160,    -1,   175,
-     159,   215,   162,   215,   160,    -1,    90,   177,   159,   215,
-     162,   215,   160,    -1,    91,   178,   159,   215,   162,   215,
-     160,    -1,    92,   177,   159,   215,   162,   215,   160,    -1,
-      93,   178,   159,   215,   162,   215,   160,    -1,   135,   159,
-     215,   162,   215,   160,    -1,   136,   159,   215,   162,   215,
-     162,   215,   160,    -1,   137,   159,   215,   162,   215,   162,
-     215,   160,    -1,   139,   159,   215,   256,   160,    -1,   140,
-     159,   215,   162,   215,   256,   160,    -1,   217,   162,   215,
-      -1,   215,    -1,    32,    -1,    33,    -1,    37,    -1,    -1,
-     211,   243,    -1,   125,   159,   220,    38,   209,   160,    -1,
-     222,    -1,    -1,   223,    -1,   222,   223,    -1,    -1,    31,
-     224,   239,    -1,    -1,    30,   225,   240,    -1,    60,    59,
-     229,    -1,   183,    18,   209,    -1,   183,    18,    10,    -1,
-      -1,   186,   190,   219,   218,   215,   182,   226,   206,    -1,
-      -1,   186,   188,   190,   219,   218,   215,   182,   227,   206,
-      -1,    -1,   186,   189,   190,   219,   218,   209,   182,   228,
-     206,    -1,   186,   190,    35,   193,   220,    -1,    52,   230,
-      -1,    56,   161,   231,    -1,    22,    -1,    53,   161,    22,
-      -1,    68,   161,    22,    -1,   165,   232,   167,    -1,   232,
-     162,    22,    -1,    22,    -1,    -1,   233,   162,   209,   196,
-     181,    -1,   209,   196,   181,    -1,   233,    -1,   233,   162,
-      39,    -1,    39,    -1,    -1,   194,   198,   211,   185,   159,
-     234,   160,   200,   205,   202,   201,    -1,    28,    -1,   170,
-      -1,   192,   190,   235,   236,    -1,    29,    -1,   171,    -1,
-     247,   238,    -1,   191,   190,   235,    -1,    -1,    61,    -1,
+      -1,    50,    -1,   207,    -1,   208,   181,   163,    -1,   242,
+      -1,   164,     4,    -1,   208,   159,   212,   160,   199,    -1,
+      10,   159,   212,   160,   199,    -1,   165,     4,   166,   208,
+     167,    -1,   168,     4,   166,   208,   169,    -1,   170,   213,
+     171,    -1,   170,   171,    -1,   168,   170,   213,   171,   169,
+      -1,   168,   170,   171,   169,    -1,   208,   195,    -1,   208,
+      -1,    10,    -1,   209,    -1,   211,   162,   209,    -1,   211,
+      -1,   211,   162,    39,    -1,    39,    -1,    -1,   208,    -1,
+     213,   162,   208,    -1,   208,   165,   216,   167,    -1,   208,
+     165,   167,    -1,   208,   172,    22,    -1,   208,   168,   216,
+     169,    -1,   208,   170,   216,   171,    -1,   208,   170,   171,
+      -1,   208,   168,   170,   216,   171,   169,    -1,   208,   168,
+     170,   171,   169,    -1,   208,    40,    -1,   208,    41,    -1,
+     208,   242,    -1,   208,   215,    -1,   208,    25,    -1,   208,
+       3,    -1,   208,     5,    -1,   208,     4,    -1,   208,     6,
+      -1,   208,    26,    -1,   208,    27,    -1,   208,     9,    -1,
+     176,   159,   214,    38,   208,   160,    -1,   119,   159,   214,
+     254,   160,    -1,   133,   159,   214,   162,   214,   162,   214,
+     160,    -1,   174,   159,   214,   162,   214,   160,    -1,   175,
+     159,   214,   162,   214,   160,    -1,    90,   177,   159,   214,
+     162,   214,   160,    -1,    91,   178,   159,   214,   162,   214,
+     160,    -1,    92,   177,   159,   214,   162,   214,   160,    -1,
+      93,   178,   159,   214,   162,   214,   160,    -1,   135,   159,
+     214,   162,   214,   160,    -1,   136,   159,   214,   162,   214,
+     162,   214,   160,    -1,   137,   159,   214,   162,   214,   162,
+     214,   160,    -1,   139,   159,   214,   255,   160,    -1,   140,
+     159,   214,   162,   214,   255,   160,    -1,   216,   162,   214,
+      -1,   214,    -1,    32,    -1,    33,    -1,    37,    -1,    -1,
+     210,   242,    -1,   125,   159,   219,    38,   208,   160,    -1,
+     221,    -1,    -1,   222,    -1,   221,   222,    -1,    -1,    31,
+     223,   238,    -1,    -1,    30,   224,   239,    -1,    60,    59,
+     228,    -1,   182,    18,   208,    -1,   182,    18,    10,    -1,
+      -1,   185,   189,   218,   217,   214,   181,   225,   205,    -1,
+      -1,   185,   187,   189,   218,   217,   214,   181,   226,   205,
+      -1,    -1,   185,   188,   189,   218,   217,   208,   181,   227,
+     205,    -1,   185,   189,    35,   192,   219,    -1,    52,   229,
+      -1,    56,   161,   230,    -1,    22,    -1,    53,   161,    22,
+      -1,    68,   161,    22,    -1,   165,   231,   167,    -1,   231,
+     162,    22,    -1,    22,    -1,    -1,   232,   162,   208,   195,
+     180,    -1,   208,   195,   180,    -1,   232,    -1,   232,   162,
+      39,    -1,    39,    -1,    -1,   193,   197,   210,   184,   159,
+     233,   160,   199,   204,   201,   200,    -1,    28,    -1,   170,
+      -1,   191,   189,   234,   235,    -1,    29,    -1,   171,    -1,
+     246,   237,    -1,   190,   189,   234,    -1,    -1,    61,    -1,
        3,    -1,     4,    -1,     5,    -1,     6,    -1,     9,    -1,
       26,    -1,    27,    -1,    40,    -1,    41,    -1,    25,    -1,
-     168,   217,   169,    -1,   165,   217,   167,    -1,   165,   167,
-      -1,   172,    22,    -1,   170,   217,   171,    -1,   170,   171,
-      -1,   168,   170,   217,   171,   169,    -1,   168,   170,   171,
-     169,    -1,   216,    -1,    59,   241,    22,   162,    22,    -1,
-       7,    -1,     8,    -1,   180,    -1,   185,    -1,   243,    -1,
-     242,    -1,   209,   244,    -1,   245,    -1,   246,   162,   245,
-      -1,   247,   248,    -1,   237,   248,    -1,   249,   183,   250,
-      -1,   249,   184,   250,    -1,   249,   252,    -1,    -1,    21,
-      -1,    69,   246,    -1,    69,    10,    -1,    70,    17,   244,
-      -1,    70,    11,   244,   162,    17,   244,   162,    17,   244,
-      -1,    71,    11,   244,   162,    17,   244,   165,   251,   167,
-      -1,    71,    11,   244,   162,    17,   244,   165,   167,    -1,
-      72,   194,   198,   211,   244,   159,   254,   160,   200,    38,
-      17,   244,    73,    17,   244,    -1,    73,    -1,    74,    -1,
-     251,    11,   242,   162,    17,   244,    -1,    11,   242,   162,
-      17,   244,    -1,   183,   258,    -1,   184,   258,    -1,   209,
-     165,   244,   162,   244,   167,    -1,   253,   162,   165,   244,
-     162,   244,   167,    -1,   209,   196,   244,   196,    -1,    17,
-     196,   244,   196,    -1,   254,   162,   209,   196,   244,   196,
-      -1,   254,   162,    17,   196,   244,   196,    -1,    -1,    -1,
-     255,   162,   245,    -1,   162,     4,    -1,   256,   162,     4,
-      -1,    58,    57,    -1,    57,    -1,   174,   209,   244,   162,
-     244,    -1,   175,   209,   244,   162,   244,    -1,    90,   177,
-     209,   244,   162,   244,    -1,    91,   178,   209,   244,   162,
-     244,    -1,    92,   177,   209,   244,   162,   244,    -1,    93,
-     178,   209,   244,   162,   244,    -1,   176,   245,    38,   209,
-      -1,   133,   245,   162,   245,   162,   245,    -1,   134,   245,
-     162,   209,    -1,   135,   245,   162,   245,    -1,   136,   245,
-     162,   245,   162,   245,    -1,   137,   245,   162,   245,   162,
-     245,    -1,   132,   253,    -1,   257,   194,   198,   211,   244,
-     159,   254,   160,   200,    -1,   260,    -1,    36,    -1,    -1,
-     114,   209,   203,    -1,   114,   209,   162,    11,   244,   203,
-      -1,   115,   209,   203,    -1,   115,   209,   162,    11,   244,
-     203,    -1,   116,   245,    -1,   259,   117,   209,   244,   203,
-      -1,   259,   118,   245,   162,   209,   244,   203,    -1,   138,
-     209,   244,   162,     4,    -1,   119,   209,   244,   255,    -1,
-     139,   209,   244,   256,    -1,   140,   209,   244,   162,   209,
-     244,   256,    -1
+     168,   216,   169,    -1,   165,   216,   167,    -1,   165,   167,
+      -1,   172,    22,    -1,   170,   216,   171,    -1,   170,   171,
+      -1,   168,   170,   216,   171,   169,    -1,   168,   170,   171,
+     169,    -1,   215,    -1,    59,   240,    22,   162,    22,    -1,
+       7,    -1,     8,    -1,   179,    -1,   184,    -1,   242,    -1,
+     241,    -1,   208,   243,    -1,   244,    -1,   245,   162,   244,
+      -1,   246,   247,    -1,   236,   247,    -1,   248,   182,   249,
+      -1,   248,   183,   249,    -1,   248,   251,    -1,    -1,    21,
+      -1,    69,   245,    -1,    69,    10,    -1,    70,    17,   243,
+      -1,    70,    11,   243,   162,    17,   243,   162,    17,   243,
+      -1,    71,    11,   243,   162,    17,   243,   165,   250,   167,
+      -1,    71,    11,   243,   162,    17,   243,   165,   167,    -1,
+      72,   193,   197,   210,   243,   159,   253,   160,   199,    38,
+      17,   243,    73,    17,   243,    -1,    73,    -1,    74,    -1,
+     250,    11,   241,   162,    17,   243,    -1,    11,   241,   162,
+      17,   243,    -1,   182,   257,    -1,   183,   257,    -1,   208,
+     165,   243,   162,   243,   167,    -1,   252,   162,   165,   243,
+     162,   243,   167,    -1,   208,   195,   243,   195,    -1,    17,
+     195,   243,   195,    -1,   253,   162,   208,   195,   243,   195,
+      -1,   253,   162,    17,   195,   243,   195,    -1,    -1,    -1,
+     254,   162,   244,    -1,   162,     4,    -1,   255,   162,     4,
+      -1,    58,    57,    -1,    57,    -1,   174,   208,   243,   162,
+     243,    -1,   175,   208,   243,   162,   243,    -1,    90,   177,
+     208,   243,   162,   243,    -1,    91,   178,   208,   243,   162,
+     243,    -1,    92,   177,   208,   243,   162,   243,    -1,    93,
+     178,   208,   243,   162,   243,    -1,   176,   244,    38,   208,
+      -1,   133,   244,   162,   244,   162,   244,    -1,   134,   244,
+     162,   208,    -1,   135,   244,   162,   244,    -1,   136,   244,
+     162,   244,   162,   244,    -1,   137,   244,   162,   244,   162,
+     244,    -1,   132,   252,    -1,   256,   193,   197,   210,   243,
+     159,   253,   160,   199,    -1,   259,    -1,    36,    -1,    -1,
+     114,   208,   202,    -1,   114,   208,   162,    11,   243,   202,
+      -1,   115,   208,   202,    -1,   115,   208,   162,    11,   243,
+     202,    -1,   116,   244,    -1,   258,   117,   208,   243,   202,
+      -1,   258,   118,   244,   162,   208,   243,   202,    -1,   138,
+     208,   243,   162,     4,    -1,   119,   208,   243,   254,    -1,
+     139,   208,   243,   255,    -1,   140,   208,   243,   162,   208,
+     243,   255,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -1891,37 +1889,36 @@
     1145,  1145,  1145,  1146,  1146,  1146,  1146,  1146,  1146,  1149,
     1149,  1150,  1150,  1151,  1151,  1152,  1152,  1153,  1153,  1157,
     1157,  1158,  1158,  1159,  1159,  1160,  1160,  1161,  1161,  1162,
-    1162,  1163,  1163,  1164,  1165,  1170,  1170,  1170,  1170,  1170,
-    1172,  1172,  1172,  1173,  1173,  1175,  1176,  1180,  1184,  1189,
-    1195,  1195,  1197,  1198,  1203,  1209,  1210,  1211,  1212,  1213,
-    1214,  1218,  1219,  1220,  1224,  1225,  1226,  1227,  1231,  1232,
-    1233,  1237,  1238,  1239,  1240,  1241,  1245,  1246,  1247,  1250,
-    1251,  1252,  1253,  1254,  1255,  1256,  1263,  1264,  1265,  1266,
-    1267,  1268,  1269,  1270,  1271,  1272,  1276,  1277,  1282,  1283,
-    1284,  1287,  1288,  1294,  1295,  1296,  1297,  1298,  1299,  1300,
-    1301,  1302,  1303,  1306,  1307,  1313,  1314,  1321,  1322,  1328,
-    1329,  1338,  1346,  1347,  1352,  1353,  1354,  1359,  1372,  1372,
-    1372,  1372,  1372,  1372,  1372,  1375,  1379,  1383,  1390,  1395,
-    1403,  1438,  1469,  1474,  1484,  1494,  1498,  1508,  1515,  1524,
-    1531,  1536,  1541,  1548,  1549,  1556,  1563,  1571,  1577,  1589,
-    1617,  1633,  1660,  1688,  1714,  1734,  1760,  1780,  1792,  1799,
-    1865,  1875,  1885,  1891,  1901,  1907,  1917,  1923,  1929,  1945,
-    1957,  1978,  1986,  1992,  2003,  2008,  2013,  2018,  2023,  2029,
-    2035,  2041,  2049,  2060,  2064,  2072,  2072,  2075,  2075,  2078,
-    2090,  2111,  2116,  2124,  2125,  2129,  2129,  2133,  2133,  2136,
-    2139,  2163,  2175,  2174,  2186,  2185,  2195,  2194,  2205,  2245,
-    2248,  2254,  2264,  2268,  2273,  2275,  2280,  2285,  2294,  2304,
-    2315,  2319,  2328,  2337,  2342,  2491,  2491,  2493,  2502,  2502,
-    2504,  2509,  2521,  2525,  2530,  2534,  2538,  2543,  2548,  2552,
-    2556,  2560,  2564,  2568,  2572,  2594,  2616,  2622,  2635,  2647,
-    2652,  2664,  2670,  2674,  2684,  2688,  2692,  2697,  2704,  2704,
-    2710,  2719,  2724,  2729,  2733,  2742,  2751,  2764,  2773,  2777,
-    2785,  2805,  2809,  2814,  2825,  2844,  2853,  2957,  2961,  2968,
-    2979,  2992,  3001,  3014,  3025,  3035,  3046,  3054,  3064,  3071,
-    3074,  3075,  3083,  3089,  3098,  3102,  3107,  3123,  3140,  3152,
-    3164,  3178,  3192,  3204,  3225,  3232,  3238,  3244,  3250,  3265,
-    3375,  3380,  3384,  3391,  3398,  3408,  3415,  3425,  3433,  3447,
-    3464,  3478,  3493,  3508
+    1162,  1163,  1163,  1164,  1165,  1168,  1168,  1168,  1169,  1169,
+    1171,  1172,  1176,  1180,  1185,  1191,  1191,  1193,  1194,  1199,
+    1205,  1206,  1207,  1208,  1209,  1210,  1214,  1215,  1216,  1220,
+    1221,  1222,  1223,  1227,  1228,  1229,  1233,  1234,  1235,  1236,
+    1237,  1241,  1242,  1243,  1246,  1247,  1248,  1249,  1250,  1251,
+    1252,  1259,  1260,  1261,  1262,  1263,  1264,  1265,  1266,  1267,
+    1268,  1272,  1273,  1278,  1279,  1280,  1283,  1284,  1290,  1291,
+    1292,  1293,  1294,  1295,  1296,  1297,  1298,  1299,  1302,  1303,
+    1309,  1310,  1317,  1318,  1324,  1325,  1334,  1342,  1343,  1348,
+    1349,  1350,  1355,  1368,  1368,  1368,  1368,  1368,  1368,  1368,
+    1371,  1375,  1379,  1386,  1391,  1399,  1434,  1465,  1470,  1480,
+    1490,  1494,  1504,  1511,  1520,  1527,  1532,  1537,  1544,  1545,
+    1552,  1559,  1567,  1573,  1585,  1613,  1629,  1656,  1684,  1710,
+    1730,  1756,  1776,  1788,  1795,  1861,  1871,  1881,  1892,  1905,
+    1916,  1930,  1937,  1944,  1962,  1974,  1995,  2003,  2009,  2020,
+    2025,  2030,  2035,  2040,  2046,  2052,  2058,  2066,  2077,  2081,
+    2089,  2089,  2092,  2092,  2095,  2107,  2128,  2133,  2141,  2142,
+    2146,  2146,  2150,  2150,  2153,  2156,  2180,  2192,  2191,  2203,
+    2202,  2212,  2211,  2222,  2262,  2265,  2271,  2281,  2285,  2290,
+    2292,  2297,  2302,  2311,  2321,  2332,  2336,  2345,  2354,  2359,
+    2508,  2508,  2510,  2519,  2519,  2521,  2526,  2538,  2542,  2547,
+    2551,  2555,  2560,  2565,  2569,  2573,  2577,  2581,  2585,  2589,
+    2611,  2633,  2639,  2652,  2664,  2669,  2681,  2687,  2691,  2701,
+    2705,  2709,  2714,  2721,  2721,  2727,  2736,  2741,  2746,  2750,
+    2759,  2768,  2781,  2790,  2794,  2802,  2822,  2826,  2831,  2842,
+    2861,  2870,  2974,  2978,  2985,  2996,  3009,  3018,  3031,  3042,
+    3052,  3063,  3071,  3081,  3088,  3091,  3092,  3100,  3106,  3115,
+    3119,  3124,  3140,  3157,  3169,  3181,  3195,  3209,  3221,  3242,
+    3249,  3255,  3261,  3267,  3282,  3392,  3397,  3401,  3408,  3415,
+    3425,  3432,  3442,  3450,  3464,  3481,  3495,  3510,  3525
 };
 #endif
 
@@ -1957,7 +1954,7 @@
   "DEFAULT", "HIDDEN", "PROTECTED", "'('", "')'", "'='", "','", "'*'",
   "'\\\\'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'", "'c'",
   "$accept", "ArithmeticOps", "LogicalOps", "CastOps", "IPredicates",
-  "FPredicates", "FPType", "LocalName", "OptLocalName", "OptAddrSpace",
+  "FPredicates", "LocalName", "OptLocalName", "OptAddrSpace",
   "OptLocalAssign", "LocalNumber", "GlobalName", "OptGlobalAssign",
   "GlobalAssign", "GVInternalLinkage", "GVExternalLinkage",
   "GVVisibilityStyle", "FunctionDeclareLinkage", "FunctionDefineLinkage",
@@ -2013,37 +2010,36 @@
      176,   176,   176,   176,   176,   176,   176,   176,   176,   177,
      177,   177,   177,   177,   177,   177,   177,   177,   177,   178,
      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
-     178,   178,   178,   178,   178,   179,   179,   179,   179,   179,
-     180,   180,   180,   181,   181,   182,   182,   183,   183,   184,
-     185,   185,   186,   186,   187,   188,   188,   188,   188,   188,
-     188,   189,   189,   189,   190,   190,   190,   190,   191,   191,
-     191,   192,   192,   192,   192,   192,   193,   193,   193,   194,
-     194,   194,   194,   194,   194,   194,   195,   195,   195,   195,
-     195,   195,   195,   195,   195,   195,   196,   196,   197,   197,
-     197,   198,   198,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   200,   200,   201,   201,   202,   202,   203,
-     203,   204,   205,   205,   206,   206,   207,   207,   208,   208,
-     208,   208,   208,   208,   208,   209,   209,   209,   209,   209,
-     209,   209,   209,   209,   209,   209,   209,   209,   210,   211,
-     211,   212,   212,   213,   213,   213,   213,   214,   214,   215,
-     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
-     215,   215,   215,   215,   215,   215,   215,   215,   215,   216,
-     216,   216,   216,   216,   216,   216,   216,   216,   216,   216,
-     216,   216,   216,   217,   217,   218,   218,   219,   219,   220,
-     220,   221,   221,   222,   222,   224,   223,   225,   223,   223,
-     223,   223,   226,   223,   227,   223,   228,   223,   223,   223,
-     223,   229,   230,   230,   231,   232,   232,   232,   233,   233,
-     234,   234,   234,   234,   235,   236,   236,   237,   238,   238,
-     239,   240,   241,   241,   242,   242,   242,   242,   242,   242,
-     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
-     242,   242,   242,   242,   243,   243,   243,   243,   244,   244,
-     245,   246,   246,   247,   247,   248,   248,   249,   249,   249,
-     250,   250,   250,   250,   250,   250,   250,   250,   250,   251,
-     251,   252,   252,   253,   253,   254,   254,   254,   254,   254,
-     255,   255,   256,   256,   257,   257,   258,   258,   258,   258,
-     258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
-     258,   259,   259,   260,   260,   260,   260,   260,   260,   260,
-     260,   260,   260,   260
+     178,   178,   178,   178,   178,   179,   179,   179,   180,   180,
+     181,   181,   182,   182,   183,   184,   184,   185,   185,   186,
+     187,   187,   187,   187,   187,   187,   188,   188,   188,   189,
+     189,   189,   189,   190,   190,   190,   191,   191,   191,   191,
+     191,   192,   192,   192,   193,   193,   193,   193,   193,   193,
+     193,   194,   194,   194,   194,   194,   194,   194,   194,   194,
+     194,   195,   195,   196,   196,   196,   197,   197,   198,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   199,   199,
+     200,   200,   201,   201,   202,   202,   203,   204,   204,   205,
+     205,   206,   206,   207,   207,   207,   207,   207,   207,   207,
+     208,   208,   208,   208,   208,   208,   208,   208,   208,   208,
+     208,   208,   208,   209,   210,   210,   211,   211,   212,   212,
+     212,   212,   213,   213,   214,   214,   214,   214,   214,   214,
+     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
+     214,   214,   214,   214,   215,   215,   215,   215,   215,   215,
+     215,   215,   215,   215,   215,   215,   215,   215,   216,   216,
+     217,   217,   218,   218,   219,   219,   220,   220,   221,   221,
+     223,   222,   224,   222,   222,   222,   222,   225,   222,   226,
+     222,   227,   222,   222,   222,   222,   228,   229,   229,   230,
+     231,   231,   231,   232,   232,   233,   233,   233,   233,   234,
+     235,   235,   236,   237,   237,   238,   239,   240,   240,   241,
+     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
+     241,   241,   241,   241,   241,   241,   241,   241,   241,   242,
+     242,   242,   242,   243,   243,   244,   245,   245,   246,   246,
+     247,   247,   248,   248,   248,   249,   249,   249,   249,   249,
+     249,   249,   249,   249,   250,   250,   251,   251,   252,   252,
+     253,   253,   253,   253,   253,   254,   254,   255,   255,   256,
+     256,   257,   257,   257,   257,   257,   257,   257,   257,   257,
+     257,   257,   257,   257,   257,   257,   258,   258,   259,   259,
+     259,   259,   259,   259,   259,   259,   259,   259,   259
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -2054,37 +2050,36 @@
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     0,     2,     0,     2,
-       1,     1,     1,     0,     2,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     1,     1,     1,     0,     1,
-       1,     0,     1,     1,     1,     1,     0,     1,     1,     0,
-       1,     1,     1,     1,     1,     2,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     0,     2,     1,     1,
-       1,     0,     2,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     0,     2,     0,     2,     0,     2,     0,
-       3,     2,     0,     1,     0,     3,     1,     2,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     3,     1,     2,
-       5,     5,     5,     5,     3,     2,     5,     4,     2,     1,
-       1,     1,     3,     1,     3,     1,     0,     1,     3,     4,
-       3,     3,     4,     4,     3,     6,     5,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     6,
-       5,     8,     6,     6,     7,     7,     7,     7,     6,     8,
-       8,     5,     7,     3,     1,     1,     1,     1,     0,     2,
-       6,     1,     0,     1,     2,     0,     3,     0,     3,     3,
-       3,     3,     0,     8,     0,     9,     0,     9,     5,     2,
-       3,     1,     3,     3,     3,     3,     1,     0,     5,     3,
-       1,     3,     1,     0,    11,     1,     1,     4,     1,     1,
-       2,     3,     0,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     3,     3,     2,     2,     3,     2,
-       5,     4,     1,     5,     1,     1,     1,     1,     1,     1,
-       2,     1,     3,     2,     2,     3,     3,     2,     0,     1,
-       2,     2,     3,     9,     9,     8,    15,     1,     1,     6,
-       5,     2,     2,     6,     7,     4,     4,     6,     6,     0,
-       0,     3,     2,     3,     2,     1,     5,     5,     6,     6,
-       6,     6,     4,     6,     4,     4,     6,     6,     2,     9,
-       1,     1,     0,     3,     6,     3,     6,     2,     5,     7,
-       5,     4,     4,     7
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
+       4,     0,     2,     0,     2,     1,     1,     1,     0,     2,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
+       1,     1,     1,     0,     1,     1,     0,     1,     1,     1,
+       1,     0,     1,     1,     0,     1,     1,     1,     1,     1,
+       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       2,     0,     2,     1,     1,     1,     0,     2,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     2,
+       0,     2,     0,     2,     0,     3,     2,     0,     1,     0,
+       3,     1,     2,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     3,     1,     2,     5,     5,     5,     5,     3,
+       2,     5,     4,     2,     1,     1,     1,     3,     1,     3,
+       1,     0,     1,     3,     4,     3,     3,     4,     4,     3,
+       6,     5,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     6,     5,     8,     6,     6,     7,
+       7,     7,     7,     6,     8,     8,     5,     7,     3,     1,
+       1,     1,     1,     0,     2,     6,     1,     0,     1,     2,
+       0,     3,     0,     3,     3,     3,     3,     0,     8,     0,
+       9,     0,     9,     5,     2,     3,     1,     3,     3,     3,
+       3,     1,     0,     5,     3,     1,     3,     1,     0,    11,
+       1,     1,     4,     1,     1,     2,     3,     0,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
+       3,     2,     2,     3,     2,     5,     4,     1,     5,     1,
+       1,     1,     1,     1,     1,     2,     1,     3,     2,     2,
+       3,     3,     2,     0,     1,     2,     2,     3,     9,     9,
+       8,    15,     1,     1,     6,     5,     2,     2,     6,     7,
+       4,     4,     6,     6,     0,     0,     3,     2,     3,     2,
+       1,     5,     5,     6,     6,     6,     6,     4,     6,     4,
+       4,     6,     6,     2,     9,     1,     1,     0,     3,     6,
+       3,     6,     2,     5,     7,     5,     4,     4,     7
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -2092,666 +2087,672 @@
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-      73,    60,    70,    61,    71,    62,   227,   225,     0,     0,
-       0,     0,     0,     0,    84,    72,     0,    73,   223,    88,
-      91,     0,     0,   239,     0,     0,    67,     0,    74,    75,
-      77,    76,    78,    81,    79,    82,    80,    83,    85,    86,
-      87,    84,    84,   218,     1,   224,    89,    90,    84,   228,
-      92,    93,    94,    95,    84,   298,   226,   298,     0,     0,
-     247,   240,   241,   229,   284,   285,   231,   148,   149,   150,
-     153,   152,   151,   154,   155,     0,     0,     0,     0,   286,
-     287,   156,   230,   158,   218,   218,    96,   217,     0,    99,
-      99,   299,   294,    68,   258,   259,   260,   293,   242,   243,
-     246,     0,   176,   159,     0,     0,     0,     0,   165,   177,
-       0,     0,   176,     0,     0,     0,    98,    97,     0,   215,
-     216,     0,     0,   100,   101,   102,   103,   104,   121,   261,
-       0,     0,   342,   342,   297,     0,   244,   175,   116,   171,
-     173,     0,     0,     0,     0,     0,     0,   164,     0,     0,
-     157,     0,     0,   170,     0,   169,     0,   238,   148,   149,
-     150,   153,   152,   151,     0,    66,    66,   105,     0,   255,
-     256,   257,    69,   341,   325,     0,     0,     0,     0,    99,
-     307,   308,     2,     3,     4,     5,     6,     7,     8,     9,
-      10,    14,    15,    16,    11,    12,    13,     0,     0,     0,
-       0,     0,     0,     0,     0,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
-      99,   311,     0,   340,   296,   312,   245,   168,     0,   133,
-      66,    66,   167,     0,   178,     0,   133,    66,    66,     0,
-     219,   192,   194,   193,   195,   196,   197,   198,   191,   187,
-     188,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   190,
-     189,   232,   120,   119,   118,   122,     0,   324,   301,    66,
-     291,   300,     0,     0,     0,   121,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,     0,    53,    54,    49,
-      50,    51,    52,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,     0,     0,     0,   139,   139,   347,    66,
-      66,   338,     0,     0,     0,     0,     0,    66,    66,    66,
-      66,    66,     0,   121,     0,     0,     0,   107,   109,   108,
-     106,   110,   111,   112,   113,   114,   117,   174,   172,   161,
-     162,   163,   166,    65,   160,   234,   236,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   180,
-     214,     0,     0,     0,   184,     0,   181,     0,     0,     0,
-     144,     0,   264,   265,   266,   267,   268,   273,   269,   270,
-     271,   272,   262,     0,     0,     0,     0,   282,   289,   288,
-     290,     0,     0,   302,     0,     0,    66,    66,    66,    66,
-       0,   343,     0,   345,   320,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    66,
-       0,   115,   127,   126,   123,   125,   124,   128,   129,   132,
-     130,   131,   134,   144,   144,     0,     0,     0,     0,     0,
-     320,     0,     0,     0,     0,     0,     0,     0,   179,   165,
-     177,     0,   182,   183,     0,     0,     0,     0,   233,   253,
-     263,     0,   276,     0,     0,     0,   279,     0,   277,   292,
+      68,    55,    65,    56,    66,    57,   222,   220,     0,     0,
+       0,     0,     0,     0,    79,    67,     0,    68,   218,    83,
+      86,     0,     0,   234,     0,     0,    62,     0,    69,    70,
+      72,    71,    73,    76,    74,    77,    75,    78,    80,    81,
+      82,    79,    79,   213,     1,   219,    84,    85,    79,   223,
+      87,    88,    89,    90,    79,   293,   221,   293,     0,     0,
+     242,   235,   236,   224,   279,   280,   226,   143,   144,   145,
+     148,   147,   146,   149,   150,     0,     0,     0,     0,   281,
+     282,   151,   225,   153,   213,   213,    91,   212,     0,    94,
+      94,   294,   289,    63,   253,   254,   255,   288,   237,   238,
+     241,     0,   171,   154,     0,     0,     0,     0,   160,   172,
+       0,     0,   171,     0,     0,     0,    93,    92,     0,   210,
+     211,     0,     0,    95,    96,    97,    98,    99,   116,   256,
+       0,     0,   337,   337,   292,     0,   239,   170,   111,   166,
+     168,     0,     0,     0,     0,     0,     0,   159,     0,     0,
+     152,     0,     0,   165,     0,   164,     0,   233,    61,    61,
+     100,     0,   250,   251,   252,    64,   336,   320,     0,     0,
+       0,     0,    94,   302,   303,     2,     3,     4,     5,     6,
+       7,     8,     9,    10,    14,    15,    16,    11,    12,    13,
+       0,     0,     0,     0,     0,     0,     0,     0,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   290,    94,   306,     0,   335,   291,   307,   240,
+     163,     0,   128,    61,    61,   162,     0,   173,     0,   128,
+      61,    61,     0,   214,   187,   189,   188,   190,   193,   186,
+     191,   192,   182,   183,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   185,   184,   227,   115,   114,   113,   117,     0,
+     319,   296,    61,   286,   295,     0,     0,     0,   116,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,     0,
+      53,    54,    49,    50,    51,    52,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,     0,     0,     0,   134,
+     134,   342,    61,    61,   333,     0,     0,     0,     0,     0,
+      61,    61,    61,    61,    61,     0,   116,     0,     0,     0,
+     102,   104,   103,   101,   105,   106,   107,   108,   109,   112,
+     169,   167,   156,   157,   158,   161,    60,   155,   229,   231,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   175,   209,     0,     0,     0,   179,     0,   176,
+       0,     0,     0,   139,     0,   259,   260,   261,   262,   263,
+     268,   264,   265,   266,   267,   257,     0,     0,     0,     0,
+     277,   284,   283,   285,     0,     0,   297,     0,     0,    61,
+      61,    61,    61,     0,   338,     0,   340,   315,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     351,     0,     0,     0,   334,   335,     0,     0,     0,     0,
-     352,     0,     0,     0,   332,     0,   139,     0,   235,   237,
-      66,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   213,   186,     0,     0,     0,     0,     0,     0,
-     146,   144,   252,   116,   250,     0,     0,   275,   165,     0,
-     274,   278,     0,     0,     0,     0,     0,     0,     0,   139,
-     140,   139,     0,     0,     0,     0,     0,     0,   350,   322,
-       0,    66,   326,   327,     0,     0,   348,    66,   220,     0,
-       0,     0,     0,   200,     0,     0,     0,     0,   211,     0,
-     185,     0,     0,    66,   141,   147,   145,    64,     0,   133,
-       0,   281,     0,     0,     0,   319,   328,   329,   330,   331,
-     344,   346,   321,     0,     0,   333,   336,   337,   323,     0,
-     319,   139,     0,     0,     0,     0,     0,   208,     0,     0,
-       0,   202,   203,   199,    63,   249,   251,   116,   142,   283,
-     280,     0,     0,   116,   116,     0,   313,     0,   353,     0,
-     349,   204,   205,   206,   207,     0,     0,     0,   212,    64,
-     143,   137,     0,     0,   305,     0,     0,     0,   133,     0,
-     314,   133,   201,   209,   210,   248,     0,   135,   303,     0,
-       0,   304,   107,   109,   116,   116,     0,   116,   116,   339,
-     138,     0,   254,     0,     0,   316,   315,     0,     0,     0,
-     136,     0,     0,     0,   116,   116,   310,     0,     0,   318,
-     317,   309,     0,     0,   306
+       0,     0,    61,     0,   110,   122,   121,   118,   120,   119,
+     123,   124,   127,   125,   126,   129,   139,   139,     0,     0,
+       0,     0,     0,   315,     0,     0,     0,     0,     0,     0,
+       0,   174,   160,   172,     0,   177,   178,     0,     0,     0,
+       0,   228,   248,   258,     0,   271,     0,     0,     0,   274,
+       0,   272,   287,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   346,     0,     0,     0,   329,   330,     0,
+       0,     0,     0,   347,     0,     0,     0,   327,     0,   134,
+       0,   230,   232,    61,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   208,   181,     0,     0,     0,
+       0,     0,     0,   141,   139,   247,   111,   245,     0,     0,
+     270,   160,     0,   269,   273,     0,     0,     0,     0,     0,
+       0,     0,   134,   135,   134,     0,     0,     0,     0,     0,
+       0,   345,   317,     0,    61,   321,   322,     0,     0,   343,
+      61,   215,     0,     0,     0,     0,   195,     0,     0,     0,
+       0,   206,     0,   180,     0,     0,    61,   136,   142,   140,
+      59,     0,   128,     0,   276,     0,     0,     0,   314,   323,
+     324,   325,   326,   339,   341,   316,     0,     0,   328,   331,
+     332,   318,     0,   314,   134,     0,     0,     0,     0,     0,
+     203,     0,     0,     0,   197,   198,   194,    58,   244,   246,
+     111,   137,   278,   275,     0,     0,   111,   111,     0,   308,
+       0,   348,     0,   344,   199,   200,   201,   202,     0,     0,
+       0,   207,    59,   138,   132,     0,     0,   300,     0,     0,
+       0,   128,     0,   309,   128,   196,   204,   205,   243,     0,
+     130,   298,     0,     0,   299,   102,   104,   111,   111,     0,
+     111,   111,   334,   133,     0,   249,     0,     0,   311,   310,
+       0,     0,     0,   131,     0,     0,     0,   111,   111,   305,
+       0,     0,   313,   312,   304,     0,     0,   301
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,   276,   277,   278,   306,   323,   164,    79,   635,   113,
-      12,   133,    80,    14,    15,    41,    42,    43,    48,    54,
-     118,   128,   356,   237,   285,   168,   452,   359,   692,   677,
-     421,   540,   661,   478,   541,    81,   165,   139,   156,   140,
-     141,   110,   380,   407,   381,   121,    88,   157,    16,    17,
-      18,    20,    19,   390,   453,   454,    63,    23,    61,   101,
-     544,   545,   129,   171,    55,    96,    56,    49,   481,   408,
-      83,   410,   290,   291,    57,    92,    93,   229,   665,   134,
-     331,   645,   500,   510,   230,   231,   232,   233
+      -1,   269,   270,   271,   299,   316,    79,   628,   113,    12,
+     133,    80,    14,    15,    41,    42,    43,    48,    54,   118,
+     128,   349,   230,   278,   161,   445,   352,   685,   670,   414,
+     533,   654,   471,   534,    81,   158,   139,   156,   140,   141,
+     110,   373,   400,   374,   121,    88,   157,    16,    17,    18,
+      20,    19,   383,   446,   447,    63,    23,    61,   101,   537,
+     538,   129,   164,    55,    96,    56,    49,   474,   401,    83,
+     403,   283,   284,    57,    92,    93,   222,   658,   134,   324,
+     638,   493,   503,   223,   224,   225,   226
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -613
+#define YYPACT_NINF -624
 static const yytype_int16 yypact[] =
 {
-     715,  -613,  -613,  -613,  -613,  -613,  -613,  -613,     3,   -86,
-      32,   -39,   107,   -22,   138,  -613,   203,   859,  -613,   142,
-     191,    55,    64,  -613,   -20,   189,  -613,  1862,  -613,  -613,
-    -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,
-    -613,    52,    52,   213,  -613,  -613,  -613,  -613,    52,  -613,
-    -613,  -613,  -613,  -613,    52,   216,  -613,   -10,   237,   246,
-     249,  -613,  -613,  -613,  -613,  -613,   119,  -613,  -613,  -613,
-    -613,  -613,  -613,  -613,  -613,   278,   308,     9,    50,  -613,
-    -613,  -613,   -30,  -613,   285,   285,   209,  -613,    14,   165,
-     165,  -613,  -613,   200,  -613,  -613,  -613,  -613,  -613,  -613,
-    -613,   -21,  1546,  -613,   161,   170,   250,   119,  -613,   -30,
-    -121,   180,  1546,   182,    14,    14,  -613,  -613,  1262,  -613,
-    -613,  1906,   344,  -613,  -613,  -613,  -613,  -613,  -613,  -613,
-     -14,   196,  2194,  2194,  -613,   331,  -613,  -613,   -30,  -613,
-     198,   201,  1964,  1964,   193,  -118,  1964,  -613,   363,   218,
-    -613,  1906,  1964,   119,   210,   -30,   351,  -613,    79,   367,
-     370,   374,   375,   378,   379,  1607,   335,  -613,  1221,  -613,
-    -613,  -613,  -613,  -613,  -613,   336,  2027,   102,   381,   165,
-    -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,
-    -613,  -613,  -613,  -613,  -613,  -613,  -613,   431,   598,   431,
-     598,  1964,  1964,  1964,  1964,  -613,  -613,  -613,  -613,  -613,
-    -613,  -613,  -613,  -613,  -613,  -613,  -613,  1964,  1964,  1964,
-    1964,  1964,  1964,  1964,  1964,  1964,  1964,  1964,  1964,  -613,
-     165,  -613,    45,  -613,  -613,  -613,  -613,   202,  1741,  -613,
-     -32,   -35,  -613,   226,   -30,   238,  -613,   335,   -29,  1262,
-    -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,
-    -613,   431,   598,   431,   598,   240,   241,   257,   263,   264,
-     266,   269,  1499,  2045,   318,   386,   271,   272,   273,  -613,
-    -613,  -613,  -613,  -613,  -613,  -613,    25,  -613,   119,  1001,
-    -613,   235,  1171,  1171,  1171,  -613,  -613,  -613,  -613,  -613,
-    -613,  -613,  -613,  -613,  -613,  -613,  1964,  -613,  -613,  -613,
-    -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,
-    -613,  -613,  -613,  1964,  1964,  1964,   -31,   -15,  -613,  1001,
-     -16,   247,   248,   274,   275,   276,   279,  1001,  1001,  1001,
-    1001,  1001,   395,  -613,  1964,  1964,   430,  -613,  -613,  -613,
-    -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,   160,
-    -613,  -613,  -613,  -613,   160,  -613,   182,   397,   281,   283,
-     284,   286,  1906,  1906,  1906,  1906,  1906,  1906,  1906,  -613,
-    -613,     6,   672,   -67,  -613,   -84,  -613,  1906,  1906,  1906,
-     288,   292,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,
-    -613,  -613,   391,  1782,  2074,   777,   425,  -613,  -613,  -613,
-    -613,  1964,   293,  -613,   294,  1221,  1001,  1001,  1001,  1001,
-       1,  -613,    27,  -613,  -613,  1171,   289,  1964,  1964,  1964,
-    1964,  1964,   295,   299,   301,   309,   310,  1964,  1221,  1001,
-     311,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,
-    -613,  -613,  -613,   288,   288,  1964,  1906,  1906,  1906,  1906,
-    -613,   312,   313,   314,   315,   299,   316,  1906,  -613,   321,
-    1453,   -74,  -613,  -613,   322,   325,   454,   -12,  -613,  1800,
-    -613,   474,  -613,     7,  1051,   -55,  -613,   -73,  -613,  -613,
-     480,   481,  1171,   339,   345,   346,   347,  1171,   502,  1171,
-     350,   353,  1171,   360,   -30,  -613,   361,   373,   533,   534,
-     380,  1964,  1171,  1171,   -30,  1171,   384,  1964,  -613,  -613,
-      -1,   385,   390,   392,   400,   117,  1906,  1906,  1906,  1906,
-     121,  1906,  -613,  -613,   394,  1906,  1906,  1964,   531,   562,
-    -613,   288,  -613,   -30,   408,   411,   412,  -613,   404,   -72,
-    -613,  -613,  1171,  1171,   416,  1171,  1171,  1171,  1171,   384,
-    -613,   384,  1964,  1171,   415,  1964,  1964,  1964,  -613,  -613,
-     572,  1001,  -613,  -613,   419,   527,  -613,  1001,  -613,  1906,
-    1906,  1906,  1906,  -613,   420,   423,   422,   424,  -613,   299,
-    -613,   427,   433,    46,  -613,  -613,  -613,   372,  1841,  -613,
-     563,  -613,   426,   434,   437,  2092,  -613,  -613,  -613,  -613,
-    -613,  -613,  -613,   438,  1171,  -613,  -613,  -613,  -613,   299,
-    2092,   384,   444,   446,   455,   456,  1906,  -613,  1906,  1906,
-     129,  -613,  -613,  -613,  -613,  -613,  -613,   -30,   414,  -613,
-    -613,   600,    -3,    -6,   -30,   145,  -613,   459,   380,   192,
-    -613,  -613,  -613,  -613,  -613,   462,   469,   470,  -613,   372,
-    -613,   577,  1171,  1319,  -613,    -2,   847,   847,  -613,  2133,
-    -613,  -613,  -613,  -613,  -613,  -613,   628,   482,  -613,   471,
-    1319,  -613,   476,   477,  -613,  -613,   457,    -6,   -30,   160,
-    -613,   615,  -613,   621,   478,   202,   202,   622,   847,   847,
-    -613,  1171,   624,  1171,  -613,  -613,  -613,  1171,   569,   202,
-     202,  -613,   627,  1171,  -613
+     815,  -624,  -624,  -624,  -624,  -624,  -624,  -624,    14,  -114,
+      16,   -73,    78,   -31,   299,  -624,   163,  2187,  -624,   164,
+      80,    19,    22,  -624,     2,   179,  -624,  1912,  -624,  -624,
+    -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
+    -624,    68,    68,   201,  -624,  -624,  -624,  -624,    68,  -624,
+    -624,  -624,  -624,  -624,    68,   200,  -624,     5,   215,   222,
+     225,  -624,  -624,  -624,  -624,  -624,   117,  -624,  -624,  -624,
+    -624,  -624,  -624,  -624,  -624,   264,   277,     7,    49,  -624,
+    -624,  -624,   -12,  -624,   252,   252,   198,  -624,    79,   231,
+     231,  -624,  -624,    83,  -624,  -624,  -624,  -624,  -624,  -624,
+    -624,   -21,   649,  -624,   138,   149,   627,   117,  -624,   -12,
+    -120,   159,   649,   158,    79,    79,  -624,  -624,  1557,  -624,
+    -624,  2012,   320,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
+     -13,   173,  2237,  2237,  -624,   313,  -624,  -624,   -12,  -624,
+     174,   177,  2012,  2012,   169,  -118,  2012,  -624,   336,   191,
+    -624,  2012,  2012,   117,   193,   -12,   226,  -624,  1296,   308,
+    -624,  1516,  -624,  -624,  -624,  -624,  -624,  -624,   307,  2031,
+     108,   357,   231,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
+    -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
+     454,   958,   454,   958,  2012,  2012,  2012,  2012,  -624,  -624,
+    -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
+    2012,  2012,  2012,  2012,  2012,  2012,  2012,  2012,  2012,  2012,
+    2012,  2012,  -624,   231,  -624,    55,  -624,  -624,  -624,  -624,
+     161,  1748,  -624,   -23,   -41,  -624,   203,   -12,   214,  -624,
+     308,   -20,  1557,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
+    -624,  -624,  -624,  -624,   454,   958,   454,   958,   216,   217,
+     218,   220,   221,   224,   227,  1789,  2076,   732,   351,   228,
+     229,   230,  -624,  -624,  -624,  -624,  -624,  -624,  -624,   109,
+    -624,   117,   956,  -624,   219,  1466,  1466,  1466,  -624,  -624,
+    -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  2012,
+    -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
+    -624,  -624,  -624,  -624,  -624,  -624,  2012,  2012,  2012,   -10,
+       3,  -624,   956,   -17,   223,   237,   238,   239,   240,   241,
+     956,   956,   956,   956,   956,   352,  -624,  2012,  2012,   387,
+    -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
+    -624,  -624,   539,  -624,  -624,  -624,  -624,   539,  -624,   158,
+     354,   234,   248,   249,   250,  2012,  2012,  2012,  2012,  2012,
+    2012,  2012,  -624,  -624,    42,  1006,  -121,  -624,  -116,  -624,
+    2012,  2012,  2012,   253,   251,  -624,  -624,  -624,  -624,  -624,
+    -624,  -624,  -624,  -624,  -624,   353,  1807,  2094,  1175,   390,
+    -624,  -624,  -624,  -624,  2012,   255,  -624,   256,  1516,   956,
+     956,   956,   956,    20,  -624,    29,  -624,  -624,  1466,   254,
+    2012,  2012,  2012,  2012,  2012,   258,   259,   261,   262,   263,
+    2012,  1516,   956,   266,  -624,  -624,  -624,  -624,  -624,  -624,
+    -624,  -624,  -624,  -624,  -624,  -624,   253,   253,  2012,  2012,
+    2012,  2012,  2012,  -624,   269,   270,   272,   273,   259,   274,
+    2012,  -624,   268,  1126,   -84,  -624,  -624,   280,   281,   406,
+      -5,  -624,  1830,  -624,   423,  -624,    61,  1345,   -56,  -624,
+     -77,  -624,  -624,   430,   431,  1466,   288,   290,   291,   292,
+    1466,   455,  1466,   296,   298,  1466,   300,   -12,  -624,   301,
+     302,   457,   461,   306,  2012,  1466,  1466,   -12,  1466,   311,
+    2012,  -624,  -624,    -1,   312,   314,   317,   319,   101,  2012,
+    2012,  2012,  2012,   112,  2012,  -624,  -624,   318,  2012,  2012,
+    2012,   453,   478,  -624,   253,  -624,   -12,   321,   326,   327,
+    -624,   323,   -67,  -624,  -624,  1466,  1466,   329,  1466,  1466,
+    1466,  1466,   311,  -624,   311,  2012,  1466,   328,  2012,  2012,
+    2012,  -624,  -624,   489,   956,  -624,  -624,   335,   441,  -624,
+     956,  -624,  2012,  2012,  2012,  2012,  -624,   334,   337,   339,
+     340,  -624,   259,  -624,   343,   345,    15,  -624,  -624,  -624,
+     178,  1848,  -624,   484,  -624,   338,   350,   349,  2117,  -624,
+    -624,  -624,  -624,  -624,  -624,  -624,   348,  1466,  -624,  -624,
+    -624,  -624,   259,  2117,   311,   356,   359,   360,   361,  2012,
+    -624,  2012,  2012,   115,  -624,  -624,  -624,  -624,  -624,  -624,
+     -12,   116,  -624,  -624,   505,    -7,    59,   -12,   118,  -624,
+     358,   306,   124,  -624,  -624,  -624,  -624,  -624,   363,   364,
+     366,  -624,   178,  -624,   473,  1466,  1614,  -624,    -6,   802,
+     802,  -624,  2135,  -624,  -624,  -624,  -624,  -624,  -624,   526,
+     379,  -624,   374,  1614,  -624,   378,   380,  -624,  -624,   442,
+      59,   -12,   539,  -624,   516,  -624,   523,   396,   161,   161,
+     524,   802,   802,  -624,  1466,   525,  1466,  -624,  -624,  -624,
+    1466,   486,   161,   161,  -624,   543,  1466,  -624
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -613,    34,   122,   184,  -167,  -141,  -613,     0,    -8,  -139,
-     554,  -613,     4,  -613,  -613,  -613,  -613,   365,  -613,  -613,
-    -613,  -151,  -613,  -533,  -613,  -266,  -613,  -244,  -613,  -613,
-    -312,    11,  -613,  -423,  -613,  -613,   -26,   417,  -163,  -613,
-     540,   547,    92,  -162,  -267,   178,   236,   407,  -613,  -613,
-     640,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,  -613,
-    -613,  -613,   568,  -613,  -613,  -613,  -613,  -613,  -613,  -612,
-     -53,   251,  -185,  -613,  -613,   604,  -613,   529,  -613,  -613,
-    -613,    43,   204,  -449,  -613,   532,  -613,  -613
+    -624,   132,   155,   181,  -165,  -154,     0,   -86,  -143,   474,
+    -624,     6,  -624,  -624,  -624,  -624,    67,  -624,  -624,  -624,
+    -142,  -624,  -499,  -624,  -252,  -624,  -231,  -624,  -624,  -313,
+     -63,  -624,  -434,  -624,  -624,   -26,   342,  -152,  -624,   458,
+     463,   -11,  -156,  -242,   202,   244,   332,  -624,  -624,   554,
+    -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,  -624,
+    -624,   485,  -624,  -624,  -624,  -624,  -624,  -624,  -623,   -79,
+     213,  -193,  -624,  -624,   520,  -624,   445,  -624,  -624,  -624,
+     -34,   129,  -448,  -624,   456,  -624,  -624
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -223
+#define YYTABLE_NINF -218
 static const yytype_int16 yytable[] =
 {
-      11,    82,   364,   279,    13,   286,   383,   385,   663,   680,
-     597,    91,   497,   105,   169,   423,   530,    11,   328,    94,
-     111,    13,   538,   111,   111,   111,   111,   281,   295,   415,
-     518,   519,   324,   332,   333,   334,   335,   336,   499,   111,
-     111,   146,   539,   342,   146,     2,   119,   120,     4,  -154,
-     147,   679,   109,   243,   111,   498,    21,    64,    65,   325,
-     107,    67,    68,    69,    70,    71,    72,    73,   694,     1,
-       2,    22,     3,     4,     5,    24,   138,   438,   467,   343,
-     109,   498,   251,   252,   253,   254,   138,   473,   467,   467,
-     467,    25,   155,    11,   368,   467,   370,   534,   551,   602,
-      74,   111,   472,   250,   659,   255,   256,   467,   365,   366,
-     666,   667,   280,   292,   550,   471,   240,   241,   596,   293,
-     244,   369,    26,   371,   112,    27,   248,   112,   112,   112,
-     112,   420,   -66,   -66,   361,   360,   483,   485,   487,    28,
-     630,   135,   155,   112,   112,    60,   136,   422,   -66,   425,
-     289,   695,   696,  -154,   698,   699,   170,  -154,   112,   578,
-     440,    95,   344,   345,   664,   681,   226,   226,   467,   467,
-     648,   709,   710,   468,   547,   326,   327,   289,   329,   106,
-      29,    30,    31,    32,    33,    34,    35,    36,    46,    37,
-      47,   330,   289,   289,   289,   289,   289,   337,   338,   339,
-     340,   341,   289,    44,   576,   112,   633,   131,    38,    39,
-      40,    62,   138,   166,    75,    76,    58,   549,    77,     1,
-      78,   108,     3,   155,     5,    59,   489,   122,   123,   124,
-     125,   126,   127,    50,    51,    52,   409,    91,    53,   409,
-     409,   409,   503,   247,   505,   506,   507,   610,    86,   611,
-      87,   116,   492,   117,   227,   227,   346,    64,    65,    98,
-     107,    67,    68,    69,    70,    71,    72,    73,    99,     1,
-       2,   100,     3,     4,     5,   515,   409,   583,   102,   562,
-     416,   588,   103,   570,   409,   409,   409,   409,   409,   658,
-     391,   570,   151,   152,    38,    39,    40,   417,   418,   419,
-      74,   442,   443,   444,   445,   668,   446,   669,   279,   650,
-     447,   448,   104,   449,   450,   451,   228,   228,   439,   289,
-     114,   115,    87,   347,   348,    64,    65,   142,   107,   158,
-     159,   160,   161,   162,   163,    73,   143,     1,     2,   148,
-       3,     4,     5,   349,   350,   150,   351,   352,   167,   353,
-     354,   355,   671,   236,   669,   638,   470,   172,    64,    65,
-     238,   239,   242,   409,   409,   409,   409,   245,    74,   249,
-       1,     2,   409,     3,     4,     5,   -55,   612,   246,   -56,
-     615,   616,   617,   -59,   -58,   289,   409,   -57,   257,   155,
-     111,     1,   294,   287,     3,   362,     5,   411,   363,   372,
-     373,   289,   504,   289,   289,   289,    84,    85,   386,   426,
-     427,   514,   155,    89,    75,    76,   374,   280,    77,    90,
-      78,   144,   375,   376,   686,   377,   346,   689,   378,   520,
-     387,   388,   389,   437,   441,   455,   428,   429,   430,   409,
-     456,   431,   457,   458,   409,   459,   409,   488,   538,   409,
-     477,   479,   480,   543,   502,   490,   491,   508,   470,   409,
-     409,   509,   409,   511,   460,   461,   462,   463,   464,   465,
-     466,   512,   513,   517,   526,   527,   528,   529,   531,   474,
-     475,   476,    75,    76,   535,   571,    77,   536,    78,   384,
-     533,   577,   537,   347,   348,   697,   546,   552,   553,   409,
-     409,   555,   409,   409,   409,   409,   560,   556,   557,   558,
-     409,   593,   562,   349,   350,   563,   351,   352,   409,   353,
-     354,   355,   565,   566,   409,   296,   297,   298,   299,   300,
-     301,   302,   303,   304,   305,   567,   289,   568,   569,   289,
-     289,   289,   570,   412,   413,   414,   575,   579,   521,   522,
-     523,   524,   580,   594,   581,   442,   443,   444,   445,   532,
-     446,   409,   582,   590,   447,   448,   595,   449,   450,   451,
-     598,   599,   637,   601,   600,   605,   618,   614,   620,   644,
-     424,   498,   626,   627,   628,   639,   629,   631,   432,   433,
-     434,   435,   436,   632,   644,   640,   641,   634,   442,   443,
-     444,   445,   642,   446,   651,   646,   652,   447,   448,   409,
-     449,   450,   451,   409,   409,   653,   654,   662,   584,   585,
-     586,   587,   672,   589,   307,   308,   670,   591,   592,   673,
-     674,   676,   690,   693,   691,   -18,   -19,   700,   701,   703,
-     702,   707,   712,   688,   713,   409,   409,   132,   409,   660,
-     409,   675,   149,   145,   409,   358,   367,    45,   130,   634,
-     409,    97,   234,   649,   525,   235,     0,   493,   494,   495,
-     496,   622,   623,   624,   625,     0,   501,     0,     0,    64,
-      65,     0,   107,   158,   159,   160,   161,   162,   163,    73,
-     516,     1,     2,     0,     3,     4,     5,     0,   309,   310,
-     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
-     321,   322,     0,     0,     0,  -222,     0,     0,   655,     0,
-     656,   657,    74,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   -68,     1,     2,     0,     3,     4,     5,
-       0,     0,     0,   554,     0,     6,     7,     0,   559,     0,
-     561,     0,     0,   564,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   572,   573,     0,   574,     8,     0,     0,
-       0,     9,     0,     0,     0,    10,     0,     0,     0,     0,
-       0,     0,     0,     0,    64,    65,     0,   107,   158,   159,
-     160,   161,   162,   163,    73,     0,     1,     2,     0,     3,
-       4,     5,     0,   603,   604,     0,   606,   607,   608,   609,
-       0,     0,     0,     0,   613,     0,     0,     0,     0,     0,
-       0,     0,   619,     0,     0,     0,     0,    74,   621,     0,
-       0,     0,     0,     0,     0,     0,    75,    76,     0,     0,
-      77,     0,    78,   469,     0,     0,     0,     0,     0,     0,
-     392,   393,   394,   395,    64,    65,   396,     0,     0,  -221,
-       0,     0,     0,     0,     0,   647,     1,     2,     0,     3,
-       4,     5,   397,   398,   399,     0,     0,   -68,     1,     2,
-       0,     3,     4,     5,     0,     0,     0,   400,   401,     6,
-       7,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   346,     0,     0,     0,     0,   402,     0,     0,     0,
-       0,     8,     0,   678,     0,     9,     0,   684,   685,    10,
-       0,     0,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   194,   195,   196,   261,   262,   263,
-     264,    75,    76,     0,     0,    77,     0,    78,   486,   704,
-     705,     0,   706,     0,   708,     0,     0,     0,   711,     0,
-       0,     0,     0,     0,   714,     0,   265,   205,   682,   683,
-     208,   209,   210,   211,   212,   213,   214,   215,   216,     0,
-     266,     0,   267,   268,   269,     0,   270,   271,   349,   350,
-       0,   351,   352,     0,   353,   354,   355,     0,     0,     0,
-       0,     0,     0,     0,   392,   393,   394,   395,    64,    65,
-     396,     0,   403,     0,     0,   404,     0,   405,     0,   406,
-       1,     2,     0,     3,     4,     5,   397,   398,   399,     0,
+      11,    82,   272,   321,   656,   673,    13,   416,   357,   279,
+     523,   105,   511,   512,   111,   162,   274,    11,   325,   326,
+     327,   328,   329,    13,   376,   378,    91,   317,   335,   531,
+     288,   490,   111,   672,    94,   111,   408,   590,   111,   318,
+     492,   460,   146,   111,   146,   111,   460,    24,   465,   532,
+     687,   147,   109,   236,   111,   466,    64,    65,   111,   107,
+      67,    68,    69,    70,    71,    72,    73,    21,     1,     2,
+     111,     3,     4,     5,   491,    25,   138,   243,   460,   273,
+     109,   336,    22,   491,   431,   460,   138,   527,    26,   361,
+     131,   363,   155,    11,   544,   460,    27,   358,   359,    74,
+     589,   362,     1,   364,   595,     3,   460,     5,    84,    85,
+     159,   119,   120,   543,  -149,    89,   233,   234,   112,   285,
+     237,    90,    50,    51,    52,   286,   241,    53,   354,     2,
+      28,   652,     4,   464,   623,   155,   112,   659,   660,   112,
+     240,   135,   112,   282,   353,   433,   136,   112,   418,   112,
+     531,   -61,   413,   -61,   476,   478,   480,   163,   112,   571,
+     657,   674,   112,    44,   641,   415,   -61,    60,   319,   320,
+     282,   322,   337,   338,   112,   626,    95,   106,   688,   689,
+      58,   691,   692,    59,   323,   282,   282,   282,   282,   282,
+     330,   331,   332,   333,   334,   282,   569,     1,   702,   703,
+       3,    62,     5,   402,   460,   138,   402,   402,   402,   461,
+      46,   482,    47,    75,    76,   339,   155,    77,  -149,    78,
+     108,    91,  -149,   460,    38,    39,    40,   496,   540,   498,
+     499,   500,   339,    64,    65,   542,    86,    98,    87,   603,
+     116,   604,   117,   402,    99,     1,     2,   100,     3,     4,
+       5,   402,   402,   402,   402,   402,   485,   435,   436,   437,
+     438,   576,   439,   555,   219,   219,   440,   441,   103,   442,
+     443,   444,   581,   409,   563,   651,   102,   563,   661,   508,
+     662,   104,   340,   341,   664,   384,   662,   220,   220,    87,
+     410,   411,   412,   122,   123,   124,   125,   126,   127,   340,
+     341,   643,   342,   343,   142,   344,   345,   272,   346,   347,
+     348,   432,   282,   221,   221,   143,   151,   152,   148,   342,
+     343,   150,   344,   345,   160,   346,   347,   348,   114,   115,
+     402,   402,   402,   402,   165,   229,   231,   232,   235,   402,
+     238,    29,    30,    31,    32,    33,    34,    35,    36,   463,
+      37,   239,   242,   402,   453,   454,   455,   456,   457,   458,
+     459,   631,   605,   111,   280,   608,   609,   610,   287,   467,
+     468,   469,   355,   379,   356,   365,   366,   367,   282,   368,
+     369,   404,   155,   370,   273,   419,   371,   380,   381,   382,
+     430,   434,   448,   449,   282,   497,   282,   282,   282,   420,
+     421,   422,   423,   424,   507,   155,   402,   450,   451,   452,
+     472,   402,   481,   402,   473,   470,   402,   483,   484,   495,
+     501,   502,   513,   504,   505,   506,   402,   402,   510,   402,
+     679,   519,   520,   682,   521,   522,   524,   526,   514,   515,
+     516,   517,   528,   529,   530,   539,   536,   545,   546,   525,
+     548,   463,   549,   550,   551,    38,    39,    40,   555,   553,
+     556,   561,   558,   559,   560,   562,   402,   402,   563,   402,
+     402,   402,   402,   568,   572,   587,   573,   402,   564,   574,
+     690,   575,   588,   591,   570,   402,   592,   583,   598,   593,
+     607,   402,   594,   611,   613,   491,   619,   620,   405,   406,
+     407,   621,   622,   624,   586,   625,   632,   633,   577,   578,
+     579,   580,   634,   582,   635,   639,   644,   584,   585,   645,
+     646,   647,   655,   665,   666,   663,   667,   669,   402,   282,
+     683,   684,   282,   282,   282,   417,   686,   -18,   693,   -19,
+     694,   696,   700,   425,   426,   427,   428,   429,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   695,   705,
+     706,   615,   616,   617,   618,   630,   668,   132,   653,   145,
+     149,    45,   637,   351,   360,   130,   402,    97,   227,   642,
+     402,   402,   518,   435,   436,   437,   438,   637,   439,   228,
+     627,     0,   440,   441,     0,   442,   443,   444,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   648,     0,
+     649,   650,   402,   402,     0,   402,     0,   402,     0,     0,
+       0,   402,   486,   487,   488,   489,     0,   402,     0,     0,
+       0,   494,     0,     0,    64,    65,   681,   107,    67,    68,
+      69,    70,    71,    72,    73,   509,     1,     2,     0,     3,
+       4,     5,   627,     0,     0,     0,    64,    65,     0,   107,
+      67,    68,    69,    70,    71,    72,    73,     0,     1,     2,
+       0,     3,     4,     5,     0,     0,     0,    74,     0,     0,
+     435,   436,   437,   438,     0,   439,     0,     0,   137,   440,
+     441,     0,   442,   443,   444,     0,     0,     0,   547,    74,
+       0,     0,     0,   552,     0,   554,     0,     0,   557,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   565,   566,
+       0,   567,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    64,
+      65,     0,   107,    67,    68,    69,    70,    71,    72,    73,
+       0,     1,     2,     0,     3,     4,     5,     0,   596,   597,
+       0,   599,   600,   601,   602,     0,     0,     0,     0,   606,
+       0,     0,     0,     0,     0,     0,     0,   612,     0,     0,
+       0,     0,    74,   614,     0,     0,     0,     0,     0,     0,
+       0,    75,    76,     0,     0,    77,     0,    78,   144,     0,
+       0,     0,     0,     0,     0,   385,   386,   387,   388,    64,
+      65,   389,     0,    75,    76,  -217,     0,    77,     0,    78,
+     640,     1,     2,     0,     3,     4,     5,   390,   391,   392,
+       0,     0,     0,   -63,     1,     2,     0,     3,     4,     5,
+       0,     0,   393,   394,     0,     6,     7,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   339,     0,     0,     0,
+       0,   395,     0,     0,     0,     0,     0,     8,   671,     0,
+       0,     9,   677,   678,     0,    10,     0,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   254,   255,   256,   257,    75,    76,     0,     0,
+      77,     0,    78,   377,   697,   698,     0,   699,     0,   701,
+       0,     0,     0,   704,     0,     0,     0,     0,     0,   707,
+       0,   258,   198,   675,   676,   201,   202,   203,   204,   205,
+     206,   207,   208,   209,     0,   259,     0,   260,   261,   262,
+       0,   263,   264,   342,   343,     0,   344,   345,     0,   346,
+     347,   348,     0,     0,     0,     0,     0,     0,     0,   385,
+     386,   387,   388,    64,    65,   389,     0,   396,     0,     0,
+     397,     0,   398,     0,   399,     1,     2,     0,     3,     4,
+       5,   390,   391,   392,   300,   301,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   393,   394,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   400,   401,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   111,     0,    64,    65,
-     402,   107,   158,   159,   160,   161,   162,   163,    73,     0,
-       1,     2,     0,     3,     4,     5,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-     196,   261,   262,   263,   264,     0,     0,     0,     0,     0,
-       0,    74,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   111,     0,    64,    65,   395,   107,    67,    68,    69,
+      70,    71,    72,    73,     0,     1,     2,     0,     3,     4,
+       5,   175,   176,   177,   178,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,   188,   189,   254,   255,   256,   257,
+       0,     0,     0,     0,     0,     0,    74,     0,   302,   303,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
+     314,   315,     0,     0,     0,   258,   198,   199,   200,   201,
+     202,   203,   204,   205,   206,   207,   208,   209,     0,   259,
+       0,   260,   261,   262,     0,   263,   264,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     265,   205,   206,   207,   208,   209,   210,   211,   212,   213,
-     214,   215,   216,     0,   266,     0,   267,   268,   269,     0,
-     270,   271,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   112,     0,     0,     0,     0,
+       0,   396,     0,     0,   397,     0,   398,     0,   399,   244,
+     245,   246,   247,    64,    65,   248,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     1,     2,     0,     3,     4,
+       5,   249,   250,   251,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   252,   253,     0,     0,
+      75,    76,     0,     0,    77,     0,    78,   462,     0,     0,
+       0,   111,    64,    65,     0,   107,    67,    68,    69,    70,
+      71,    72,    73,     0,     1,     2,     0,     3,     4,     5,
+       0,   175,   176,   177,   178,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,   188,   189,   254,   255,   256,   257,
+       0,     0,     0,     0,     0,    74,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     112,     0,     0,     0,     0,     0,   403,     0,     0,   404,
-       0,   405,     0,   406,   392,   393,   394,   395,    64,    65,
-     396,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       1,     2,     0,     3,     4,     5,   397,   398,   399,     0,
+       0,     0,     0,     0,     0,   258,   198,   199,   200,   201,
+     202,   203,   204,   205,   206,   207,   208,   209,     0,   259,
+       0,   260,   261,   262,     0,   263,   264,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   400,   401,     0,     0,    75,    76,     0,     0,    77,
-       0,    78,   548,     0,     0,     0,     0,     0,    64,    65,
-     402,   153,    67,    68,    69,    70,    71,    72,    73,     0,
-       1,     2,     0,     3,     4,     5,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-     196,   261,   262,   263,   264,     0,     0,     0,     0,    64,
-      65,    74,   153,    67,    68,    69,    70,    71,    72,    73,
-       0,     1,     2,     0,     3,     4,     5,     0,     0,     0,
-     265,   205,   206,   207,   208,   209,   210,   211,   212,   213,
-     214,   215,   216,     0,   266,     0,   267,   268,   269,     0,
-     270,   271,    74,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   392,   393,   394,   395,     0,     0,   396,     0,
-       0,     0,     0,     0,     0,     0,   403,     0,     0,   404,
-       0,   405,     0,   406,   397,   398,   399,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   400,
-     401,     0,   282,   283,     0,   284,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   402,     0,
-       0,     0,     0,     0,     0,    75,    76,   154,     0,    77,
-       0,    78,     0,     0,   182,   183,   184,   185,   186,   187,
-     188,   189,   190,   191,   192,   193,   194,   195,   196,   261,
-     262,   263,   264,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    75,    76,     0,     0,
-      77,     0,    78,     0,     0,     0,     0,     0,   265,   205,
-     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
-     216,     0,   266,     0,   267,   268,   269,     0,   270,   271,
-      64,    65,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     1,     2,     0,     3,     4,     5,   258,     0,
-       0,     0,     0,     0,   403,     0,     0,   404,     0,   405,
-       0,   406,     0,   259,   260,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    64,    65,   111,   107,
-     158,   159,   160,   161,   162,   163,    73,     0,     1,     2,
-       0,     3,     4,     5,     0,     0,     0,     0,   182,   183,
-     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
-     194,   195,   196,   261,   262,   263,   264,     0,     0,    74,
-       0,     0,     0,    64,    65,     0,   107,    67,    68,    69,
-      70,    71,    72,    73,     0,     1,     2,     0,     3,     4,
-       5,     0,   265,   205,   206,   207,   208,   209,   210,   211,
-     212,   213,   214,   215,   216,   137,   266,     0,   267,   268,
-     269,     0,   270,   271,     0,     0,    74,     0,     0,     0,
+       0,     0,     0,     0,     0,   112,     0,     0,     0,   -61,
+       0,   265,     0,     0,   266,     0,   267,     0,   268,   244,
+     245,   246,   247,    64,    65,   248,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     1,     2,     0,     3,     4,
+       5,   249,   250,   251,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   252,   253,     0,    75,
+      76,     0,     0,    77,     0,    78,   479,     0,     0,     0,
+       0,   111,    64,    65,     0,   107,    67,    68,    69,    70,
+      71,    72,    73,     0,     1,     2,     0,     3,     4,     5,
+       0,   175,   176,   177,   178,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,   188,   189,   254,   255,   256,   257,
+       0,     0,     0,     0,     0,    74,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   112,     0,    64,    65,   -66,     0,   272,     0,
-       0,   273,     0,   274,     0,   275,     1,     2,     0,     3,
-       4,     5,   258,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   259,   260,     0,
+       0,     0,     0,     0,     0,   258,   198,   199,   200,   201,
+     202,   203,   204,   205,   206,   207,   208,   209,     0,   259,
+       0,   260,   261,   262,     0,   263,   264,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   111,    75,    76,     0,   379,    77,     0,    78,
+       0,     0,     0,     0,     0,   112,     0,     0,     0,     0,
+       0,   265,     0,     0,   266,     0,   267,     0,   268,   385,
+     386,   387,   388,    64,    65,   389,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     1,     2,     0,     3,     4,
+       5,   390,   391,   392,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   393,   394,     0,    75,
+      76,     0,     0,    77,     0,    78,   541,     0,     0,     0,
+       0,     0,     0,    64,    65,   395,   153,    67,    68,    69,
+      70,    71,    72,    73,     0,     1,     2,     0,     3,     4,
+       5,   175,   176,   177,   178,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,   188,   189,   254,   255,   256,   257,
+       0,     0,     0,     0,    64,    65,    74,   153,    67,    68,
+      69,    70,    71,    72,    73,     0,     1,     2,     0,     3,
+       4,     5,     0,     0,     0,   258,   198,   199,   200,   201,
+     202,   203,   204,   205,   206,   207,   208,   209,     0,   259,
+       0,   260,   261,   262,     0,   263,   264,    74,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   385,   386,   387,
+     388,     0,     0,   389,     0,     0,     0,     0,     0,     0,
+       0,   396,     0,     0,   397,     0,   398,     0,   399,   390,
+     391,   392,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   393,   394,     0,   275,   276,     0,
+     277,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   395,     0,     0,     0,     0,     0,     0,
+      75,    76,   154,     0,    77,     0,    78,     0,     0,   175,
+     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,   188,   189,   254,   255,   256,   257,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   194,   195,   196,   261,   262,   263,
-     264,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      75,    76,     0,     0,    77,     0,    78,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   265,   205,   206,   207,
-     208,   209,   210,   211,   212,   213,   214,   215,   216,     0,
-     266,     0,   267,   268,   269,     0,   270,   271,    64,    65,
-       0,   107,    67,    68,    69,    70,    71,    72,    73,     0,
-       1,     2,     0,     3,     4,     5,   112,     0,     0,     0,
-       0,     0,   272,     0,     0,   273,     0,   274,     0,   275,
-     357,     0,     0,     0,     0,     0,     0,     0,     0,    64,
-      65,    74,   107,   158,   159,   160,   161,   162,   163,    73,
-       0,     1,     2,     0,     3,     4,     5,    64,    65,     0,
+       0,    75,    76,     0,     0,    77,     0,    78,     0,     0,
+       0,     0,     0,   258,   198,   199,   200,   201,   202,   203,
+     204,   205,   206,   207,   208,   209,     0,   259,     0,   260,
+     261,   262,     0,   263,   264,    64,    65,     0,   107,    67,
+      68,    69,    70,    71,    72,    73,     0,     1,     2,     0,
+       3,     4,     5,     0,     0,     0,     0,     0,     0,   396,
+       0,     0,   397,     0,   398,     0,   399,   350,     0,     0,
+       0,     0,     0,     0,     0,     0,    64,    65,    74,   107,
+      67,    68,    69,    70,    71,    72,    73,     0,     1,     2,
+       0,     3,     4,     5,    64,    65,     0,   107,    67,    68,
+      69,    70,    71,    72,    73,     0,     1,     2,     0,     3,
+       4,     5,     0,     0,     0,     0,     0,    64,    65,    74,
      107,    67,    68,    69,    70,    71,    72,    73,     0,     1,
-       2,     0,     3,     4,     5,     0,     0,     0,     0,     0,
-       0,     0,    74,     0,     0,     0,     0,     0,     0,   542,
-       0,     0,     0,     0,     0,     0,     0,     0,    64,    65,
-      74,   107,    67,    68,    69,    70,    71,    72,    73,     0,
-       1,     2,     0,     3,     4,     5,     0,     0,     0,    64,
+       2,     0,     3,     4,     5,    64,    65,    74,   107,    67,
+      68,    69,    70,    71,    72,    73,     0,     1,     2,   535,
+       3,     4,     5,     0,     0,     0,     0,     0,     0,     0,
+      74,     0,     0,     0,     0,     0,     0,   629,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    74,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    75,    76,     0,     0,    77,     0,    78,    64,
       65,     0,    66,    67,    68,    69,    70,    71,    72,    73,
-     636,     1,     2,     0,     3,     4,     5,     0,     0,     0,
-       0,    74,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    75,    76,     0,     0,    77,
-       0,    78,    74,    64,    65,     0,   107,   158,   159,   160,
-     161,   162,   163,    73,     0,     1,     2,     0,     3,     4,
-       5,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    75,    76,     0,   482,
-      77,     0,    78,     0,     0,     0,    74,     0,     0,     0,
+       0,     1,     2,     0,     3,     4,     5,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    75,    76,     0,   372,    77,     0,    78,
+       0,     0,    74,     0,     0,     0,     0,     0,     0,     0,
+       0,    75,    76,     0,   475,    77,     0,    78,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,    75,    76,     0,     0,    77,     0,
-      78,    64,    65,     0,   107,    67,    68,    69,    70,    71,
+      78,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    75,    76,     0,     0,    77,     0,    78,    64,
+      65,     0,   107,    67,    68,    69,    70,    71,    72,    73,
+       0,     1,     2,     0,     3,     4,     5,     0,    64,    65,
+       0,   281,    67,    68,    69,    70,    71,    72,    73,     0,
+       1,     2,     0,     3,     4,     5,     0,     0,     0,     0,
+       0,     0,    74,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    75,    76,     0,     0,
+      77,    74,    78,    64,    65,     0,   107,    67,    68,    69,
+      70,    71,    72,    73,     0,     1,     2,     0,     3,     4,
+       5,    64,    65,     0,   107,    67,    68,    69,    70,    71,
       72,    73,     0,     1,     2,     0,     3,     4,     5,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    75,    76,     0,     0,    77,
-       0,    78,     0,     0,    74,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    64,    65,    74,   107,    67,    68,
+      69,    70,    71,    72,   636,     0,     1,     2,     0,     3,
+       4,     5,    64,    65,    74,   107,    67,    68,    69,    70,
+      71,    72,   680,     0,     1,     2,     0,     3,     4,     5,
+       0,     0,     0,     0,     0,     0,     0,    74,     0,     0,
        0,     0,     0,     0,     0,     0,    75,    76,     0,     0,
-      77,     0,    78,     0,    64,    65,     0,   288,    67,    68,
-      69,    70,    71,    72,    73,     0,     1,     2,     0,     3,
-       4,     5,    64,    65,     0,   107,   158,   159,   160,   161,
-     162,   163,    73,     0,     1,     2,     0,     3,     4,     5,
-      75,    76,     0,     0,    77,     0,    78,    74,     0,     0,
-       0,    64,    65,     0,   107,   158,   159,   160,   161,   162,
-     163,    73,     0,     1,     2,    74,     3,     4,     5,    64,
-      65,     0,   107,    67,    68,    69,    70,    71,    72,   643,
-       0,     1,     2,     0,     3,     4,     5,     0,     0,     0,
-       0,     0,     0,     0,    74,     0,     0,     0,    75,    76,
-       0,     0,    77,     0,    78,     0,     0,     0,     0,     0,
-      64,    65,    74,   107,    67,    68,    69,    70,    71,    72,
-     687,     0,     1,     2,     0,     3,     4,     5,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      77,     0,    78,     0,     0,    74,     0,  -216,     0,     0,
+       0,     0,     0,     0,     0,    75,    76,     0,     0,    77,
+       0,    78,     0,     0,     0,   -63,     1,     2,     0,     3,
+       4,     5,     0,     0,     0,     0,     0,     6,     7,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    74,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     8,
+      75,    76,     0,     9,    77,     0,   375,    10,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    75,    76,
+       0,     0,    77,     0,   477,     0,     0,     0,     0,     0,
+       0,     0,     0,   166,     0,     0,     0,     0,     0,     0,
        0,    75,    76,     0,     0,    77,     0,    78,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    75,
-      76,     0,     0,    77,     0,   382,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     173,     0,     0,     0,     0,     0,     0,     0,    75,    76,
-       0,     0,    77,     0,   484,     0,     0,     0,     0,     0,
-       0,   174,   175,     0,     0,     0,    75,    76,     0,     0,
-      77,     0,    78,   176,   177,   178,   179,   180,   181,   182,
+       0,     0,     0,     0,   167,   168,     0,     0,     0,    75,
+      76,     0,     0,    77,     0,    78,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
-     193,   194,   195,   196,   197,   198,   199,   200,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    75,    76,     0,
-       0,    77,     0,    78,     0,     0,     0,     0,   201,   202,
-     203,     0,     0,   204,   205,   206,   207,   208,   209,   210,
-     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
-     221,   222,   223,   224,   225
+     193,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   194,   195,   196,     0,     0,   197,   198,   199,   200,
+     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
+     211,   212,   213,   214,   215,   216,   217,   218
 };
 
 static const yytype_int16 yycheck[] =
 {
-       0,    27,   246,   165,     0,   168,   273,   274,    11,    11,
-     543,    21,    11,     4,    28,   327,   465,    17,   203,    29,
-      55,    17,    34,    55,    55,    55,    55,   166,   179,   295,
-     453,   454,   199,   218,   219,   220,   221,   222,    11,    55,
-      55,   162,    54,   228,   162,    20,    32,    33,    23,    55,
-     171,   663,    78,   171,    55,    54,    53,     7,     8,   200,
-      10,    11,    12,    13,    14,    15,    16,    17,   680,    19,
-      20,    68,    22,    23,    24,   161,   102,   343,   162,   230,
-     106,    54,     3,     4,     5,     6,   112,   171,   162,   162,
-     162,    59,   118,    93,   261,   162,   263,   171,   171,   171,
-      50,    55,   169,   156,   637,    26,    27,   162,   247,   248,
-     643,   644,   165,    11,   169,   382,   142,   143,   541,    17,
-     146,   262,   161,   264,   159,    18,   152,   159,   159,   159,
-     159,   162,   163,   163,   169,   167,   403,   404,   405,   161,
-     589,   162,   168,   159,   159,   165,   167,   162,   163,   165,
-     176,   684,   685,   159,   687,   688,   170,   163,   159,   160,
-     345,   171,   117,   118,   167,   167,   132,   133,   162,   162,
-     619,   704,   705,   167,   167,   201,   202,   203,   204,   170,
-      42,    43,    44,    45,    46,    47,    48,    49,    46,    51,
-      48,   217,   218,   219,   220,   221,   222,   223,   224,   225,
-     226,   227,   228,     0,   516,   159,   160,     7,   156,   157,
-     158,    22,   238,   121,   164,   165,   161,   484,   168,    19,
-     170,   171,    22,   249,    24,   161,   411,    62,    63,    64,
-      65,    66,    67,    42,    43,    44,   289,    21,    47,   292,
-     293,   294,   427,   151,   429,   430,   431,   559,    35,   561,
-      37,    42,   415,    44,   132,   133,    54,     7,     8,    22,
-      10,    11,    12,    13,    14,    15,    16,    17,    22,    19,
-      20,    22,    22,    23,    24,   438,   329,   160,   159,   162,
-     306,   160,     4,   162,   337,   338,   339,   340,   341,   160,
-     286,   162,   114,   115,   156,   157,   158,   323,   324,   325,
-      50,   141,   142,   143,   144,   160,   146,   162,   470,   621,
-     150,   151,     4,   153,   154,   155,   132,   133,   344,   345,
-      84,    85,    37,   121,   122,     7,     8,   166,    10,    11,
-      12,    13,    14,    15,    16,    17,   166,    19,    20,   159,
-      22,    23,    24,   141,   142,   163,   144,   145,     4,   147,
-     148,   149,   160,    22,   162,   599,   382,   161,     7,     8,
-     162,   160,   169,   416,   417,   418,   419,     4,    50,   159,
-      19,    20,   425,    22,    23,    24,     9,   562,   160,     9,
-     565,   566,   567,     9,     9,   411,   439,     9,     9,   415,
-      55,    19,    11,    57,    22,   169,    24,   162,   160,   159,
-     159,   427,   428,   429,   430,   431,    41,    42,    22,   162,
-     162,   437,   438,    48,   164,   165,   159,   470,   168,    54,
-     170,   171,   159,   159,   668,   159,    54,   671,   159,   455,
-     159,   159,   159,    38,     4,    38,   162,   162,   162,   492,
-     159,   162,   159,   159,   497,   159,   499,    22,    34,   502,
-     162,   159,    61,   479,   165,   162,   162,   162,   484,   512,
-     513,   162,   515,   162,   372,   373,   374,   375,   376,   377,
-     378,   162,   162,   162,   162,   162,   162,   162,   162,   387,
-     388,   389,   164,   165,   162,   511,   168,   162,   170,   171,
-     169,   517,    38,   121,   122,    38,    22,    17,    17,   552,
-     553,   162,   555,   556,   557,   558,     4,   162,   162,   162,
-     563,   537,   162,   141,   142,   162,   144,   145,   571,   147,
-     148,   149,   162,   162,   577,    94,    95,    96,    97,    98,
-      99,   100,   101,   102,   103,   162,   562,     4,     4,   565,
-     566,   567,   162,   292,   293,   294,   162,   162,   456,   457,
-     458,   459,   162,    22,   162,   141,   142,   143,   144,   467,
-     146,   614,   162,   169,   150,   151,     4,   153,   154,   155,
-     162,   160,   598,   169,   162,   159,     4,   162,   159,   605,
-     329,    54,   162,   160,   162,    22,   162,   160,   337,   338,
-     339,   340,   341,   160,   620,   169,   162,   597,   141,   142,
-     143,   144,   165,   146,   160,   167,   160,   150,   151,   662,
-     153,   154,   155,   666,   667,   160,   160,    17,   526,   527,
-     528,   529,   160,   531,    26,    27,   167,   535,   536,   160,
-     160,    54,     4,   162,   152,   159,   159,    22,    17,    17,
-     162,    17,    73,   669,    17,   698,   699,    93,   701,   638,
-     703,   659,   112,   106,   707,   238,   249,    17,    90,   659,
-     713,    57,   133,   620,   460,   133,    -1,   416,   417,   418,
-     419,   579,   580,   581,   582,    -1,   425,    -1,    -1,     7,
+       0,    27,   158,   196,    11,    11,     0,   320,   239,   161,
+     458,     4,   446,   447,    55,    28,   159,    17,   211,   212,
+     213,   214,   215,    17,   266,   267,    21,   192,   221,    34,
+     172,    11,    55,   656,    29,    55,   288,   536,    55,   193,
+      11,   162,   162,    55,   162,    55,   162,   161,   169,    54,
+     673,   171,    78,   171,    55,   171,     7,     8,    55,    10,
+      11,    12,    13,    14,    15,    16,    17,    53,    19,    20,
+      55,    22,    23,    24,    54,    59,   102,   156,   162,   158,
+     106,   223,    68,    54,   336,   162,   112,   171,   161,   254,
+       7,   256,   118,    93,   171,   162,    18,   240,   241,    50,
+     534,   255,    19,   257,   171,    22,   162,    24,    41,    42,
+     121,    32,    33,   169,    55,    48,   142,   143,   159,    11,
+     146,    54,    42,    43,    44,    17,   152,    47,   169,    20,
+     161,   630,    23,   375,   582,   161,   159,   636,   637,   159,
+     151,   162,   159,   169,   167,   338,   167,   159,   165,   159,
+      34,   163,   162,   163,   396,   397,   398,   170,   159,   160,
+     167,   167,   159,     0,   612,   162,   163,   165,   194,   195,
+     196,   197,   117,   118,   159,   160,   171,   170,   677,   678,
+     161,   680,   681,   161,   210,   211,   212,   213,   214,   215,
+     216,   217,   218,   219,   220,   221,   509,    19,   697,   698,
+      22,    22,    24,   282,   162,   231,   285,   286,   287,   167,
+      46,   404,    48,   164,   165,    54,   242,   168,   159,   170,
+     171,    21,   163,   162,   156,   157,   158,   420,   167,   422,
+     423,   424,    54,     7,     8,   477,    35,    22,    37,   552,
+      42,   554,    44,   322,    22,    19,    20,    22,    22,    23,
+      24,   330,   331,   332,   333,   334,   408,   141,   142,   143,
+     144,   160,   146,   162,   132,   133,   150,   151,     4,   153,
+     154,   155,   160,   299,   162,   160,   159,   162,   160,   431,
+     162,     4,   121,   122,   160,   279,   162,   132,   133,    37,
+     316,   317,   318,    62,    63,    64,    65,    66,    67,   121,
+     122,   614,   141,   142,   166,   144,   145,   463,   147,   148,
+     149,   337,   338,   132,   133,   166,   114,   115,   159,   141,
+     142,   163,   144,   145,     4,   147,   148,   149,    84,    85,
+     409,   410,   411,   412,   161,    22,   162,   160,   169,   418,
+       4,    42,    43,    44,    45,    46,    47,    48,    49,   375,
+      51,   160,   159,   432,   365,   366,   367,   368,   369,   370,
+     371,   592,   555,    55,    57,   558,   559,   560,    11,   380,
+     381,   382,   169,    22,   160,   159,   159,   159,   404,   159,
+     159,   162,   408,   159,   463,   162,   159,   159,   159,   159,
+      38,     4,    38,   159,   420,   421,   422,   423,   424,   162,
+     162,   162,   162,   162,   430,   431,   485,   159,   159,   159,
+     159,   490,    22,   492,    61,   162,   495,   162,   162,   165,
+     162,   162,   448,   162,   162,   162,   505,   506,   162,   508,
+     661,   162,   162,   664,   162,   162,   162,   169,   449,   450,
+     451,   452,   162,   162,    38,    22,   472,    17,    17,   460,
+     162,   477,   162,   162,   162,   156,   157,   158,   162,     4,
+     162,     4,   162,   162,   162,     4,   545,   546,   162,   548,
+     549,   550,   551,   162,   162,    22,   162,   556,   504,   162,
+      38,   162,     4,   162,   510,   564,   160,   169,   159,   162,
+     162,   570,   169,     4,   159,    54,   162,   160,   285,   286,
+     287,   162,   162,   160,   530,   160,    22,   169,   519,   520,
+     521,   522,   162,   524,   165,   167,   160,   528,   529,   160,
+     160,   160,    17,   160,   160,   167,   160,    54,   607,   555,
+       4,   152,   558,   559,   560,   322,   162,   159,    22,   159,
+      17,    17,    17,   330,   331,   332,   333,   334,    94,    95,
+      96,    97,    98,    99,   100,   101,   102,   103,   162,    73,
+      17,   572,   573,   574,   575,   591,   652,    93,   631,   106,
+     112,    17,   598,   231,   242,    90,   655,    57,   133,   613,
+     659,   660,   453,   141,   142,   143,   144,   613,   146,   133,
+     590,    -1,   150,   151,    -1,   153,   154,   155,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   619,    -1,
+     621,   622,   691,   692,    -1,   694,    -1,   696,    -1,    -1,
+      -1,   700,   409,   410,   411,   412,    -1,   706,    -1,    -1,
+      -1,   418,    -1,    -1,     7,     8,   662,    10,    11,    12,
+      13,    14,    15,    16,    17,   432,    19,    20,    -1,    22,
+      23,    24,   652,    -1,    -1,    -1,     7,     8,    -1,    10,
+      11,    12,    13,    14,    15,    16,    17,    -1,    19,    20,
+      -1,    22,    23,    24,    -1,    -1,    -1,    50,    -1,    -1,
+     141,   142,   143,   144,    -1,   146,    -1,    -1,    39,   150,
+     151,    -1,   153,   154,   155,    -1,    -1,    -1,   485,    50,
+      -1,    -1,    -1,   490,    -1,   492,    -1,    -1,   495,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   505,   506,
+      -1,   508,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,
        8,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
-     439,    19,    20,    -1,    22,    23,    24,    -1,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,    -1,    -1,    -1,     0,    -1,    -1,   626,    -1,
-     628,   629,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    19,    20,    -1,    22,    23,    24,    -1,   545,   546,
+      -1,   548,   549,   550,   551,    -1,    -1,    -1,    -1,   556,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   564,    -1,    -1,
+      -1,    -1,    50,   570,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   164,   165,    -1,    -1,   168,    -1,   170,   171,    -1,
+      -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
+       8,     9,    -1,   164,   165,     0,    -1,   168,    -1,   170,
+     607,    19,    20,    -1,    22,    23,    24,    25,    26,    27,
       -1,    -1,    -1,    18,    19,    20,    -1,    22,    23,    24,
-      -1,    -1,    -1,   492,    -1,    30,    31,    -1,   497,    -1,
-     499,    -1,    -1,   502,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   512,   513,    -1,   515,    52,    -1,    -1,
-      -1,    56,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,     7,     8,    -1,    10,    11,    12,
-      13,    14,    15,    16,    17,    -1,    19,    20,    -1,    22,
-      23,    24,    -1,   552,   553,    -1,   555,   556,   557,   558,
-      -1,    -1,    -1,    -1,   563,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   571,    -1,    -1,    -1,    -1,    50,   577,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   164,   165,    -1,    -1,
-     168,    -1,   170,   171,    -1,    -1,    -1,    -1,    -1,    -1,
-       3,     4,     5,     6,     7,     8,     9,    -1,    -1,     0,
-      -1,    -1,    -1,    -1,    -1,   614,    19,    20,    -1,    22,
-      23,    24,    25,    26,    27,    -1,    -1,    18,    19,    20,
-      -1,    22,    23,    24,    -1,    -1,    -1,    40,    41,    30,
-      31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    54,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,
-      -1,    52,    -1,   662,    -1,    56,    -1,   666,   667,    60,
-      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,   164,   165,    -1,    -1,   168,    -1,   170,   171,   698,
-     699,    -1,   701,    -1,   703,    -1,    -1,    -1,   707,    -1,
-      -1,    -1,    -1,    -1,   713,    -1,   119,   120,   121,   122,
-     123,   124,   125,   126,   127,   128,   129,   130,   131,    -1,
-     133,    -1,   135,   136,   137,    -1,   139,   140,   141,   142,
-      -1,   144,   145,    -1,   147,   148,   149,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
-       9,    -1,   165,    -1,    -1,   168,    -1,   170,    -1,   172,
-      19,    20,    -1,    22,    23,    24,    25,    26,    27,    -1,
+      -1,    -1,    40,    41,    -1,    30,    31,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,
+      -1,    59,    -1,    -1,    -1,    -1,    -1,    52,   655,    -1,
+      -1,    56,   659,   660,    -1,    60,    -1,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,   164,   165,    -1,    -1,
+     168,    -1,   170,   171,   691,   692,    -1,   694,    -1,   696,
+      -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,    -1,   706,
+      -1,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,    -1,   133,    -1,   135,   136,   137,
+      -1,   139,   140,   141,   142,    -1,   144,   145,    -1,   147,
+     148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
+       4,     5,     6,     7,     8,     9,    -1,   165,    -1,    -1,
+     168,    -1,   170,    -1,   172,    19,    20,    -1,    22,    23,
+      24,    25,    26,    27,    26,    27,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,     7,     8,
-      59,    10,    11,    12,    13,    14,    15,    16,    17,    -1,
-      19,    20,    -1,    22,    23,    24,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-      89,    90,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,
-      -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    55,    -1,     7,     8,    59,    10,    11,    12,    13,
+      14,    15,    16,    17,    -1,    19,    20,    -1,    22,    23,
+      24,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+      -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+     112,   113,    -1,    -1,    -1,   119,   120,   121,   122,   123,
+     124,   125,   126,   127,   128,   129,   130,   131,    -1,   133,
+      -1,   135,   136,   137,    -1,   139,   140,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
-     129,   130,   131,    -1,   133,    -1,   135,   136,   137,    -1,
-     139,   140,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,    -1,    -1,
+      -1,   165,    -1,    -1,   168,    -1,   170,    -1,   172,     3,
+       4,     5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    19,    20,    -1,    22,    23,
+      24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,    -1,
+     164,   165,    -1,    -1,   168,    -1,   170,   171,    -1,    -1,
+      -1,    55,     7,     8,    -1,    10,    11,    12,    13,    14,
+      15,    16,    17,    -1,    19,    20,    -1,    22,    23,    24,
+      -1,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+      -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     159,    -1,    -1,    -1,    -1,    -1,   165,    -1,    -1,   168,
-      -1,   170,    -1,   172,     3,     4,     5,     6,     7,     8,
-       9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      19,    20,    -1,    22,    23,    24,    25,    26,    27,    -1,
+      -1,    -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,
+     124,   125,   126,   127,   128,   129,   130,   131,    -1,   133,
+      -1,   135,   136,   137,    -1,   139,   140,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    40,    41,    -1,    -1,   164,   165,    -1,    -1,   168,
-      -1,   170,   171,    -1,    -1,    -1,    -1,    -1,     7,     8,
-      59,    10,    11,    12,    13,    14,    15,    16,    17,    -1,
-      19,    20,    -1,    22,    23,    24,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-      89,    90,    91,    92,    93,    -1,    -1,    -1,    -1,     7,
-       8,    50,    10,    11,    12,    13,    14,    15,    16,    17,
-      -1,    19,    20,    -1,    22,    23,    24,    -1,    -1,    -1,
-     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
-     129,   130,   131,    -1,   133,    -1,   135,   136,   137,    -1,
-     139,   140,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     3,     4,     5,     6,    -1,    -1,     9,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   165,    -1,    -1,   168,
-      -1,   170,    -1,   172,    25,    26,    27,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,
-      41,    -1,   141,   142,    -1,   144,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,
-      -1,    -1,    -1,    -1,    -1,   164,   165,   125,    -1,   168,
-      -1,   170,    -1,    -1,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   164,   165,    -1,    -1,
-     168,    -1,   170,    -1,    -1,    -1,    -1,    -1,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
-     131,    -1,   133,    -1,   135,   136,   137,    -1,   139,   140,
-       7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    19,    20,    -1,    22,    23,    24,    25,    -1,
-      -1,    -1,    -1,    -1,   165,    -1,    -1,   168,    -1,   170,
-      -1,   172,    -1,    40,    41,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,     7,     8,    55,    10,
-      11,    12,    13,    14,    15,    16,    17,    -1,    19,    20,
-      -1,    22,    23,    24,    -1,    -1,    -1,    -1,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    -1,    -1,    50,
-      -1,    -1,    -1,     7,     8,    -1,    10,    11,    12,    13,
-      14,    15,    16,    17,    -1,    19,    20,    -1,    22,    23,
-      24,    -1,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,    39,   133,    -1,   135,   136,
-     137,    -1,   139,   140,    -1,    -1,    50,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,    -1,   163,
+      -1,   165,    -1,    -1,   168,    -1,   170,    -1,   172,     3,
+       4,     5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    19,    20,    -1,    22,    23,
+      24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,   164,
+     165,    -1,    -1,   168,    -1,   170,   171,    -1,    -1,    -1,
+      -1,    55,     7,     8,    -1,    10,    11,    12,    13,    14,
+      15,    16,    17,    -1,    19,    20,    -1,    22,    23,    24,
+      -1,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+      -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   159,    -1,     7,     8,   163,    -1,   165,    -1,
-      -1,   168,    -1,   170,    -1,   172,    19,    20,    -1,    22,
-      23,    24,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,
+      -1,    -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,
+     124,   125,   126,   127,   128,   129,   130,   131,    -1,   133,
+      -1,   135,   136,   137,    -1,   139,   140,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    55,   164,   165,    -1,   167,   168,    -1,   170,
+      -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,    -1,    -1,
+      -1,   165,    -1,    -1,   168,    -1,   170,    -1,   172,     3,
+       4,     5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    19,    20,    -1,    22,    23,
+      24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    -1,   164,
+     165,    -1,    -1,   168,    -1,   170,   171,    -1,    -1,    -1,
+      -1,    -1,    -1,     7,     8,    59,    10,    11,    12,    13,
+      14,    15,    16,    17,    -1,    19,    20,    -1,    22,    23,
+      24,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+      -1,    -1,    -1,    -1,     7,     8,    50,    10,    11,    12,
+      13,    14,    15,    16,    17,    -1,    19,    20,    -1,    22,
+      23,    24,    -1,    -1,    -1,   119,   120,   121,   122,   123,
+     124,   125,   126,   127,   128,   129,   130,   131,    -1,   133,
+      -1,   135,   136,   137,    -1,   139,   140,    50,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
+       6,    -1,    -1,     9,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   165,    -1,    -1,   168,    -1,   170,    -1,   172,    25,
+      26,    27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    40,    41,    -1,   141,   142,    -1,
+     144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,
+     164,   165,   125,    -1,   168,    -1,   170,    -1,    -1,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
+      86,    87,    88,    89,    90,    91,    92,    93,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     164,   165,    -1,    -1,   168,    -1,   170,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   119,   120,   121,   122,
-     123,   124,   125,   126,   127,   128,   129,   130,   131,    -1,
-     133,    -1,   135,   136,   137,    -1,   139,   140,     7,     8,
-      -1,    10,    11,    12,    13,    14,    15,    16,    17,    -1,
-      19,    20,    -1,    22,    23,    24,   159,    -1,    -1,    -1,
-      -1,    -1,   165,    -1,    -1,   168,    -1,   170,    -1,   172,
-      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,
-       8,    50,    10,    11,    12,    13,    14,    15,    16,    17,
-      -1,    19,    20,    -1,    22,    23,    24,     7,     8,    -1,
+      -1,   164,   165,    -1,    -1,   168,    -1,   170,    -1,    -1,
+      -1,    -1,    -1,   119,   120,   121,   122,   123,   124,   125,
+     126,   127,   128,   129,   130,   131,    -1,   133,    -1,   135,
+     136,   137,    -1,   139,   140,     7,     8,    -1,    10,    11,
+      12,    13,    14,    15,    16,    17,    -1,    19,    20,    -1,
+      22,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,   165,
+      -1,    -1,   168,    -1,   170,    -1,   172,    39,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,     7,     8,    50,    10,
+      11,    12,    13,    14,    15,    16,    17,    -1,    19,    20,
+      -1,    22,    23,    24,     7,     8,    -1,    10,    11,    12,
+      13,    14,    15,    16,    17,    -1,    19,    20,    -1,    22,
+      23,    24,    -1,    -1,    -1,    -1,    -1,     7,     8,    50,
       10,    11,    12,    13,    14,    15,    16,    17,    -1,    19,
-      20,    -1,    22,    23,    24,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    39,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     7,     8,
-      50,    10,    11,    12,    13,    14,    15,    16,    17,    -1,
-      19,    20,    -1,    22,    23,    24,    -1,    -1,    -1,     7,
+      20,    -1,    22,    23,    24,     7,     8,    50,    10,    11,
+      12,    13,    14,    15,    16,    17,    -1,    19,    20,    39,
+      22,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      50,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   164,   165,    -1,    -1,   168,    -1,   170,     7,
        8,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
-      39,    19,    20,    -1,    22,    23,    24,    -1,    -1,    -1,
-      -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   164,   165,    -1,    -1,   168,
-      -1,   170,    50,     7,     8,    -1,    10,    11,    12,    13,
-      14,    15,    16,    17,    -1,    19,    20,    -1,    22,    23,
-      24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   164,   165,    -1,   167,
-     168,    -1,   170,    -1,    -1,    -1,    50,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   164,   165,    -1,    -1,   168,    -1,
-     170,     7,     8,    -1,    10,    11,    12,    13,    14,    15,
-      16,    17,    -1,    19,    20,    -1,    22,    23,    24,    -1,
+      -1,    19,    20,    -1,    22,    23,    24,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   164,   165,    -1,    -1,   168,
-      -1,   170,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   164,   165,    -1,   167,   168,    -1,   170,
+      -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   164,   165,    -1,   167,   168,    -1,   170,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   164,   165,    -1,    -1,   168,    -1,
+     170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   164,   165,    -1,    -1,   168,    -1,   170,     7,
+       8,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
+      -1,    19,    20,    -1,    22,    23,    24,    -1,     7,     8,
+      -1,    10,    11,    12,    13,    14,    15,    16,    17,    -1,
+      19,    20,    -1,    22,    23,    24,    -1,    -1,    -1,    -1,
+      -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,   164,   165,    -1,    -1,
-     168,    -1,   170,    -1,     7,     8,    -1,    10,    11,    12,
+     168,    50,   170,     7,     8,    -1,    10,    11,    12,    13,
+      14,    15,    16,    17,    -1,    19,    20,    -1,    22,    23,
+      24,     7,     8,    -1,    10,    11,    12,    13,    14,    15,
+      16,    17,    -1,    19,    20,    -1,    22,    23,    24,    -1,
+      -1,    -1,    -1,    -1,     7,     8,    50,    10,    11,    12,
       13,    14,    15,    16,    17,    -1,    19,    20,    -1,    22,
-      23,    24,     7,     8,    -1,    10,    11,    12,    13,    14,
+      23,    24,     7,     8,    50,    10,    11,    12,    13,    14,
       15,    16,    17,    -1,    19,    20,    -1,    22,    23,    24,
-     164,   165,    -1,    -1,   168,    -1,   170,    50,    -1,    -1,
-      -1,     7,     8,    -1,    10,    11,    12,    13,    14,    15,
-      16,    17,    -1,    19,    20,    50,    22,    23,    24,     7,
-       8,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
-      -1,    19,    20,    -1,    22,    23,    24,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,   164,   165,
-      -1,    -1,   168,    -1,   170,    -1,    -1,    -1,    -1,    -1,
-       7,     8,    50,    10,    11,    12,    13,    14,    15,    16,
-      17,    -1,    19,    20,    -1,    22,    23,    24,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   164,   165,    -1,    -1,
+     168,    -1,   170,    -1,    -1,    50,    -1,     0,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   164,   165,    -1,    -1,   168,
+      -1,   170,    -1,    -1,    -1,    18,    19,    20,    -1,    22,
+      23,    24,    -1,    -1,    -1,    -1,    -1,    30,    31,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    52,
+     164,   165,    -1,    56,   168,    -1,   170,    60,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,   165,
+      -1,    -1,   168,    -1,   170,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,   164,   165,    -1,    -1,   168,    -1,   170,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,
-     165,    -1,    -1,   168,    -1,   170,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    57,    58,    -1,    -1,    -1,   164,
+     165,    -1,    -1,   168,    -1,   170,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,   165,
-      -1,    -1,   168,    -1,   170,    -1,    -1,    -1,    -1,    -1,
-      -1,    57,    58,    -1,    -1,    -1,   164,   165,    -1,    -1,
-     168,    -1,   170,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,   165,    -1,
-      -1,   168,    -1,   170,    -1,    -1,    -1,    -1,   114,   115,
-     116,    -1,    -1,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140
+      -1,   114,   115,   116,    -1,    -1,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -2759,77 +2760,76 @@
 static const yytype_uint16 yystos[] =
 {
        0,    19,    20,    22,    23,    24,    30,    31,    52,    56,
-      60,   180,   183,   185,   186,   187,   221,   222,   223,   225,
-     224,    53,    68,   230,   161,    59,   161,    18,   161,    42,
+      60,   179,   182,   184,   185,   186,   220,   221,   222,   224,
+     223,    53,    68,   229,   161,    59,   161,    18,   161,    42,
       43,    44,    45,    46,    47,    48,    49,    51,   156,   157,
-     158,   188,   189,   190,     0,   223,    46,    48,   191,   240,
-      42,    43,    44,    47,   192,   237,   239,   247,   161,   161,
-     165,   231,    22,   229,     7,     8,    10,    11,    12,    13,
-      14,    15,    16,    17,    50,   164,   165,   168,   170,   180,
-     185,   208,   209,   243,   190,   190,    35,    37,   219,   190,
-     190,    21,   248,   249,    29,   171,   238,   248,    22,    22,
-      22,   232,   159,     4,     4,     4,   170,    10,   171,   209,
-     214,    55,   159,   182,   219,   219,    42,    44,   193,    32,
-      33,   218,    62,    63,    64,    65,    66,    67,   194,   235,
-     235,     7,   183,   184,   252,   162,   167,    39,   209,   210,
-     212,   213,   166,   166,   171,   214,   162,   171,   159,   213,
-     163,   218,   218,    10,   125,   209,   211,   220,    11,    12,
-      13,    14,    15,    16,   179,   209,   215,     4,   198,    28,
-     170,   236,   161,    36,    57,    58,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,   114,   115,   116,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   174,   175,   176,   250,
-     257,   258,   259,   260,   250,   258,    22,   196,   162,   160,
-     209,   209,   169,   171,   209,     4,   160,   215,   209,   159,
-     243,     3,     4,     5,     6,    26,    27,     9,    25,    40,
-      41,    90,    91,    92,    93,   119,   133,   135,   136,   137,
-     139,   140,   165,   168,   170,   172,   174,   175,   176,   216,
-     243,   182,   141,   142,   144,   197,   211,    57,    10,   209,
-     245,   246,    11,    17,    11,   194,    94,    95,    96,    97,
-      98,    99,   100,   101,   102,   103,   177,    26,    27,   100,
-     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   178,   177,   178,   209,   209,   245,   209,
-     209,   253,   245,   245,   245,   245,   245,   209,   209,   209,
-     209,   209,   245,   194,   117,   118,    54,   121,   122,   141,
-     142,   144,   145,   147,   148,   149,   195,    39,   210,   200,
-     167,   169,   169,   160,   200,   182,   182,   220,   177,   178,
-     177,   178,   159,   159,   159,   159,   159,   159,   159,   167,
-     215,   217,   170,   217,   171,   217,    22,   159,   159,   159,
-     226,   185,     3,     4,     5,     6,     9,    25,    26,    27,
-      40,    41,    59,   165,   168,   170,   172,   216,   242,   243,
-     244,   162,   244,   244,   244,   198,   209,   209,   209,   209,
-     162,   203,   162,   203,   244,   165,   162,   162,   162,   162,
-     162,   162,   244,   244,   244,   244,   244,    38,   198,   209,
-     245,     4,   141,   142,   143,   144,   146,   150,   151,   153,
-     154,   155,   199,   227,   228,    38,   159,   159,   159,   159,
-     215,   215,   215,   215,   215,   215,   215,   162,   167,   171,
-     209,   217,   169,   171,   215,   215,   215,   162,   206,   159,
-      61,   241,   167,   217,   170,   217,   171,   217,    22,   245,
-     162,   162,   211,   244,   244,   244,   244,    11,    54,    11,
-     255,   244,   165,   245,   209,   245,   245,   245,   162,   162,
-     256,   162,   162,   162,   209,   211,   244,   162,   206,   206,
-     209,   215,   215,   215,   215,   255,   162,   162,   162,   162,
-     256,   162,   215,   169,   171,   162,   162,    38,    34,    54,
-     204,   207,    39,   209,   233,   234,    22,   167,   171,   217,
-     169,   171,    17,    17,   244,   162,   162,   162,   162,   244,
-       4,   244,   162,   162,   244,   162,   162,   162,     4,     4,
-     162,   209,   244,   244,   244,   162,   203,   209,   160,   162,
-     162,   162,   162,   160,   215,   215,   215,   215,   160,   215,
-     169,   215,   215,   209,    22,     4,   206,   196,   162,   160,
-     162,   169,   171,   244,   244,   159,   244,   244,   244,   244,
-     203,   203,   245,   244,   162,   245,   245,   245,     4,   244,
-     159,   244,   215,   215,   215,   215,   162,   160,   162,   162,
-     256,   160,   160,   160,   180,   181,    39,   209,   200,    22,
-     169,   162,   165,    17,   209,   254,   167,   244,   256,   254,
-     203,   160,   160,   160,   160,   215,   215,   215,   160,   196,
-     204,   205,    17,    11,   167,   251,   196,   196,   160,   162,
-     167,   160,   160,   160,   160,   181,    54,   202,   244,   242,
-      11,   167,   121,   122,   244,   244,   200,    17,   209,   200,
-       4,   152,   201,   162,   242,   196,   196,    38,   196,   196,
-      22,    17,   162,    17,   244,   244,   244,    17,   244,   196,
-     196,   244,    73,    17,   244
+     158,   187,   188,   189,     0,   222,    46,    48,   190,   239,
+      42,    43,    44,    47,   191,   236,   238,   246,   161,   161,
+     165,   230,    22,   228,     7,     8,    10,    11,    12,    13,
+      14,    15,    16,    17,    50,   164,   165,   168,   170,   179,
+     184,   207,   208,   242,   189,   189,    35,    37,   218,   189,
+     189,    21,   247,   248,    29,   171,   237,   247,    22,    22,
+      22,   231,   159,     4,     4,     4,   170,    10,   171,   208,
+     213,    55,   159,   181,   218,   218,    42,    44,   192,    32,
+      33,   217,    62,    63,    64,    65,    66,    67,   193,   234,
+     234,     7,   182,   183,   251,   162,   167,    39,   208,   209,
+     211,   212,   166,   166,   171,   213,   162,   171,   159,   212,
+     163,   217,   217,    10,   125,   208,   210,   219,   208,   214,
+       4,   197,    28,   170,   235,   161,    36,    57,    58,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,   114,   115,   116,   119,   120,   121,
+     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
+     132,   133,   134,   135,   136,   137,   138,   139,   140,   174,
+     175,   176,   249,   256,   257,   258,   259,   249,   257,    22,
+     195,   162,   160,   208,   208,   169,   171,   208,     4,   160,
+     214,   208,   159,   242,     3,     4,     5,     6,     9,    25,
+      26,    27,    40,    41,    90,    91,    92,    93,   119,   133,
+     135,   136,   137,   139,   140,   165,   168,   170,   172,   174,
+     175,   176,   215,   242,   181,   141,   142,   144,   196,   210,
+      57,    10,   208,   244,   245,    11,    17,    11,   193,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   177,
+      26,    27,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   178,   177,   178,   208,
+     208,   244,   208,   208,   252,   244,   244,   244,   244,   244,
+     208,   208,   208,   208,   208,   244,   193,   117,   118,    54,
+     121,   122,   141,   142,   144,   145,   147,   148,   149,   194,
+      39,   209,   199,   167,   169,   169,   160,   199,   181,   181,
+     219,   177,   178,   177,   178,   159,   159,   159,   159,   159,
+     159,   159,   167,   214,   216,   170,   216,   171,   216,    22,
+     159,   159,   159,   225,   184,     3,     4,     5,     6,     9,
+      25,    26,    27,    40,    41,    59,   165,   168,   170,   172,
+     215,   241,   242,   243,   162,   243,   243,   243,   197,   208,
+     208,   208,   208,   162,   202,   162,   202,   243,   165,   162,
+     162,   162,   162,   162,   162,   243,   243,   243,   243,   243,
+      38,   197,   208,   244,     4,   141,   142,   143,   144,   146,
+     150,   151,   153,   154,   155,   198,   226,   227,    38,   159,
+     159,   159,   159,   214,   214,   214,   214,   214,   214,   214,
+     162,   167,   171,   208,   216,   169,   171,   214,   214,   214,
+     162,   205,   159,    61,   240,   167,   216,   170,   216,   171,
+     216,    22,   244,   162,   162,   210,   243,   243,   243,   243,
+      11,    54,    11,   254,   243,   165,   244,   208,   244,   244,
+     244,   162,   162,   255,   162,   162,   162,   208,   210,   243,
+     162,   205,   205,   208,   214,   214,   214,   214,   254,   162,
+     162,   162,   162,   255,   162,   214,   169,   171,   162,   162,
+      38,    34,    54,   203,   206,    39,   208,   232,   233,    22,
+     167,   171,   216,   169,   171,    17,    17,   243,   162,   162,
+     162,   162,   243,     4,   243,   162,   162,   243,   162,   162,
+     162,     4,     4,   162,   208,   243,   243,   243,   162,   202,
+     208,   160,   162,   162,   162,   162,   160,   214,   214,   214,
+     214,   160,   214,   169,   214,   214,   208,    22,     4,   205,
+     195,   162,   160,   162,   169,   171,   243,   243,   159,   243,
+     243,   243,   243,   202,   202,   244,   243,   162,   244,   244,
+     244,     4,   243,   159,   243,   214,   214,   214,   214,   162,
+     160,   162,   162,   255,   160,   160,   160,   179,   180,    39,
+     208,   199,    22,   169,   162,   165,    17,   208,   253,   167,
+     243,   255,   253,   202,   160,   160,   160,   160,   214,   214,
+     214,   160,   195,   203,   204,    17,    11,   167,   250,   195,
+     195,   160,   162,   167,   160,   160,   160,   160,   180,    54,
+     201,   243,   241,    11,   167,   121,   122,   243,   243,   199,
+      17,   208,   199,     4,   152,   200,   162,   241,   195,   195,
+      38,   195,   195,    22,    17,   162,    17,   243,   243,   243,
+      17,   243,   195,   195,   243,    73,    17,   243
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -3773,213 +3773,213 @@
     { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
     break;
 
-  case 64:
-#line 1173 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 59:
+#line 1169 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
-  case 65:
-#line 1175 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 60:
+#line 1171 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal)=(yyvsp[(3) - (4)].UInt64Val); ;}
     break;
 
-  case 66:
-#line 1176 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 61:
+#line 1172 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal)=0; ;}
     break;
 
-  case 67:
-#line 1180 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 62:
+#line 1176 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 68:
-#line 1184 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 63:
+#line 1180 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 69:
-#line 1189 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 64:
+#line 1185 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[(1) - (2)].UIntVal);
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 73:
-#line 1198 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 68:
+#line 1194 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 74:
-#line 1203 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 69:
+#line 1199 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.StrVal) = (yyvsp[(1) - (2)].StrVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 75:
-#line 1209 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 70:
+#line 1205 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
-  case 76:
-#line 1210 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 71:
+#line 1206 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
-  case 77:
-#line 1211 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 72:
+#line 1207 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
-  case 78:
-#line 1212 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 73:
+#line 1208 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
     break;
 
-  case 79:
-#line 1213 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 74:
+#line 1209 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
-  case 80:
-#line 1214 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 75:
+#line 1210 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::CommonLinkage; ;}
     break;
 
-  case 81:
-#line 1218 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 76:
+#line 1214 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
-  case 82:
-#line 1219 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 77:
+#line 1215 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
-  case 83:
-#line 1220 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 78:
+#line 1216 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
-  case 84:
-#line 1224 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 79:
+#line 1220 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::DefaultVisibility;   ;}
     break;
 
-  case 85:
-#line 1225 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 80:
+#line 1221 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::DefaultVisibility;   ;}
     break;
 
-  case 86:
-#line 1226 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 81:
+#line 1222 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::HiddenVisibility;    ;}
     break;
 
-  case 87:
-#line 1227 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 82:
+#line 1223 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Visibility) = GlobalValue::ProtectedVisibility; ;}
     break;
 
-  case 88:
-#line 1231 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 83:
+#line 1227 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
-  case 89:
-#line 1232 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 84:
+#line 1228 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
     break;
 
-  case 90:
-#line 1233 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 85:
+#line 1229 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
     break;
 
-  case 91:
-#line 1237 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 86:
+#line 1233 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
-  case 92:
-#line 1238 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 87:
+#line 1234 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
-  case 93:
-#line 1239 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 88:
+#line 1235 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
     break;
 
-  case 94:
-#line 1240 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 89:
+#line 1236 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
-  case 95:
-#line 1241 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 90:
+#line 1237 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
     break;
 
-  case 96:
-#line 1245 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 91:
+#line 1241 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
     break;
 
-  case 97:
-#line 1246 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 92:
+#line 1242 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
     break;
 
-  case 98:
-#line 1247 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 93:
+#line 1243 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
     break;
 
-  case 99:
-#line 1250 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 94:
+#line 1246 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
-  case 100:
-#line 1251 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 95:
+#line 1247 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::C; ;}
     break;
 
-  case 101:
-#line 1252 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 96:
+#line 1248 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Fast; ;}
     break;
 
-  case 102:
-#line 1253 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 97:
+#line 1249 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::Cold; ;}
     break;
 
-  case 103:
-#line 1254 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 98:
+#line 1250 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
     break;
 
-  case 104:
-#line 1255 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 99:
+#line 1251 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
     break;
 
-  case 105:
-#line 1256 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 100:
+#line 1252 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                    if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) - (2)].UInt64Val))
                      GEN_ERROR("Calling conv too large");
@@ -3988,177 +3988,177 @@
                  ;}
     break;
 
-  case 106:
-#line 1263 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 101:
+#line 1259 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ZExt;      ;}
     break;
 
-  case 107:
-#line 1264 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 102:
+#line 1260 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ZExt;      ;}
     break;
 
-  case 108:
-#line 1265 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 103:
+#line 1261 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::SExt;      ;}
     break;
 
-  case 109:
-#line 1266 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 104:
+#line 1262 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::SExt;      ;}
     break;
 
-  case 110:
-#line 1267 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 105:
+#line 1263 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::InReg;     ;}
     break;
 
-  case 111:
-#line 1268 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 106:
+#line 1264 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::StructRet; ;}
     break;
 
-  case 112:
-#line 1269 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 107:
+#line 1265 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::NoAlias;   ;}
     break;
 
-  case 113:
-#line 1270 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 108:
+#line 1266 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ByVal;     ;}
     break;
 
-  case 114:
-#line 1271 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 109:
+#line 1267 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::Nest;      ;}
     break;
 
-  case 115:
-#line 1272 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 110:
+#line 1268 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) =
                           Attribute::constructAlignmentFromInt((yyvsp[(2) - (2)].UInt64Val));    ;}
     break;
 
-  case 116:
-#line 1276 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 111:
+#line 1272 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::None; ;}
     break;
 
-  case 117:
-#line 1277 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 112:
+#line 1273 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                 (yyval.Attributes) = (yyvsp[(1) - (2)].Attributes) | (yyvsp[(2) - (2)].Attributes);
               ;}
     break;
 
-  case 118:
-#line 1282 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 113:
+#line 1278 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::InReg;     ;}
     break;
 
-  case 119:
-#line 1283 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 114:
+#line 1279 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ZExt;     ;}
     break;
 
-  case 120:
-#line 1284 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 115:
+#line 1280 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::SExt;     ;}
     break;
 
-  case 121:
-#line 1287 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 116:
+#line 1283 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::None; ;}
     break;
 
-  case 122:
-#line 1288 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 117:
+#line 1284 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                (yyval.Attributes) = (yyvsp[(1) - (2)].Attributes) | (yyvsp[(2) - (2)].Attributes);
              ;}
     break;
 
-  case 123:
-#line 1294 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 118:
+#line 1290 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::NoReturn; ;}
     break;
 
-  case 124:
-#line 1295 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 119:
+#line 1291 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::NoUnwind; ;}
     break;
 
-  case 125:
-#line 1296 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 120:
+#line 1292 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::InReg;     ;}
     break;
 
-  case 126:
-#line 1297 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 121:
+#line 1293 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ZExt;     ;}
     break;
 
-  case 127:
-#line 1298 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 122:
+#line 1294 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::SExt;     ;}
     break;
 
-  case 128:
-#line 1299 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 123:
+#line 1295 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ReadNone; ;}
     break;
 
-  case 129:
-#line 1300 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 124:
+#line 1296 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::ReadOnly; ;}
     break;
 
-  case 130:
-#line 1301 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 125:
+#line 1297 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::NoInline; ;}
     break;
 
-  case 131:
-#line 1302 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 126:
+#line 1298 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::AlwaysInline; ;}
     break;
 
-  case 132:
-#line 1303 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 127:
+#line 1299 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::OptimizeForSize; ;}
     break;
 
-  case 133:
-#line 1306 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 128:
+#line 1302 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.Attributes) = Attribute::None; ;}
     break;
 
-  case 134:
-#line 1307 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 129:
+#line 1303 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                 (yyval.Attributes) = (yyvsp[(1) - (2)].Attributes) | (yyvsp[(2) - (2)].Attributes);
               ;}
     break;
 
-  case 135:
-#line 1313 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 130:
+#line 1309 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
-  case 136:
-#line 1314 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 131:
+#line 1310 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
                 (yyval.StrVal) = (yyvsp[(2) - (2)].StrVal);
               ;}
     break;
 
-  case 137:
-#line 1321 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 132:
+#line 1317 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
-  case 138:
-#line 1322 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 133:
+#line 1318 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[(2) - (2)].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -4167,13 +4167,13 @@
 ;}
     break;
 
-  case 139:
-#line 1328 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 134:
+#line 1324 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.UIntVal) = 0; ;}
     break;
 
-  case 140:
-#line 1329 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 135:
+#line 1325 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.UIntVal) = (yyvsp[(3) - (3)].UInt64Val);
   if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
@@ -4182,8 +4182,8 @@
 ;}
     break;
 
-  case 141:
-#line 1338 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 136:
+#line 1334 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   for (unsigned i = 0, e = (yyvsp[(2) - (2)].StrVal)->length(); i != e; ++i)
     if ((*(yyvsp[(2) - (2)].StrVal))[i] == '"' || (*(yyvsp[(2) - (2)].StrVal))[i] == '\\')
@@ -4193,28 +4193,28 @@
 ;}
     break;
 
-  case 142:
-#line 1346 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 137:
+#line 1342 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = 0; ;}
     break;
 
-  case 143:
-#line 1347 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 138:
+#line 1343 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.StrVal) = (yyvsp[(1) - (1)].StrVal); ;}
     break;
 
-  case 144:
-#line 1352 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 139:
+#line 1348 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
-  case 145:
-#line 1353 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 140:
+#line 1349 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {;}
     break;
 
-  case 146:
-#line 1354 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 141:
+#line 1350 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV->setSection(*(yyvsp[(1) - (1)].StrVal));
     delete (yyvsp[(1) - (1)].StrVal);
@@ -4222,8 +4222,8 @@
   ;}
     break;
 
-  case 147:
-#line 1359 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 142:
+#line 1355 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(2) - (2)].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[(2) - (2)].UInt64Val)))
       GEN_ERROR("Alignment must be a power of two");
@@ -4232,24 +4232,24 @@
   ;}
     break;
 
-  case 155:
-#line 1375 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 150:
+#line 1371 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 156:
-#line 1379 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 151:
+#line 1375 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder((yyvsp[(1) - (1)].PrimType));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 157:
-#line 1383 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 152:
+#line 1379 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                             // Pointer type?
     if (*(yyvsp[(1) - (3)].TypeVal) == Type::LabelTy)
       GEN_ERROR("Cannot form a pointer to a basic block");
@@ -4259,8 +4259,8 @@
   ;}
     break;
 
-  case 158:
-#line 1390 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 153:
+#line 1386 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {            // Named types are also simple types...
     const Type* tmp = getTypeVal((yyvsp[(1) - (1)].ValIDVal));
     CHECK_FOR_ERROR
@@ -4268,8 +4268,8 @@
   ;}
     break;
 
-  case 159:
-#line 1395 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 154:
+#line 1391 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                   // Type UpReference
     if ((yyvsp[(2) - (2)].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range");
     OpaqueType *OT = OpaqueType::get();        // Use temporary placeholder
@@ -4280,8 +4280,8 @@
   ;}
     break;
 
-  case 160:
-#line 1403 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 155:
+#line 1399 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Allow but ignore attributes on function types; this permits auto-upgrade.
     // FIXME: remove in LLVM 3.0.
@@ -4319,8 +4319,8 @@
   ;}
     break;
 
-  case 161:
-#line 1438 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 156:
+#line 1434 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Allow but ignore attributes on function types; this permits auto-upgrade.
     // FIXME: remove in LLVM 3.0.
@@ -4353,8 +4353,8 @@
   ;}
     break;
 
-  case 162:
-#line 1469 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 157:
+#line 1465 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {          // Sized array type?
     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[(4) - (5)].TypeVal), (yyvsp[(2) - (5)].UInt64Val))));
     delete (yyvsp[(4) - (5)].TypeVal);
@@ -4362,8 +4362,8 @@
   ;}
     break;
 
-  case 163:
-#line 1474 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 158:
+#line 1470 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {          // Vector type?
      const llvm::Type* ElemTy = (yyvsp[(4) - (5)].TypeVal)->get();
      if ((unsigned)(yyvsp[(2) - (5)].UInt64Val) != (yyvsp[(2) - (5)].UInt64Val))
@@ -4376,8 +4376,8 @@
   ;}
     break;
 
-  case 164:
-#line 1484 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 159:
+#line 1480 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                        // Structure type?
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(2) - (3)].TypeList)->begin(),
@@ -4390,16 +4390,16 @@
   ;}
     break;
 
-  case 165:
-#line 1494 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 160:
+#line 1490 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                                  // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>()));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 166:
-#line 1498 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 161:
+#line 1494 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Elements;
     for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[(3) - (5)].TypeList)->begin(),
@@ -4412,16 +4412,16 @@
   ;}
     break;
 
-  case 167:
-#line 1508 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 162:
+#line 1504 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                         // Empty structure type?
     (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 168:
-#line 1515 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 163:
+#line 1511 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Allow but ignore attributes on function types; this permits auto-upgrade.
     // FIXME: remove in LLVM 3.0.
@@ -4430,8 +4430,8 @@
   ;}
     break;
 
-  case 169:
-#line 1524 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 164:
+#line 1520 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (1)].TypeVal))->getDescription());
@@ -4441,15 +4441,15 @@
   ;}
     break;
 
-  case 170:
-#line 1531 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 165:
+#line 1527 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
   ;}
     break;
 
-  case 171:
-#line 1536 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 166:
+#line 1532 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     (yyval.TypeWithAttrsList)->push_back((yyvsp[(1) - (1)].TypeWithAttrs));
@@ -4457,16 +4457,16 @@
   ;}
     break;
 
-  case 172:
-#line 1541 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 167:
+#line 1537 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList))->push_back((yyvsp[(3) - (3)].TypeWithAttrs));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 174:
-#line 1549 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 169:
+#line 1545 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList)=(yyvsp[(1) - (3)].TypeWithAttrsList);
     TypeWithAttrs TWA; TWA.Attrs = Attribute::None;
@@ -4476,8 +4476,8 @@
   ;}
     break;
 
-  case 175:
-#line 1556 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 170:
+#line 1552 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
     TypeWithAttrs TWA; TWA.Attrs = Attribute::None;
@@ -4487,16 +4487,16 @@
   ;}
     break;
 
-  case 176:
-#line 1563 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 171:
+#line 1559 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 177:
-#line 1571 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 172:
+#line 1567 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TypeList) = new std::list<PATypeHolder>();
     (yyval.TypeList)->push_back(*(yyvsp[(1) - (1)].TypeVal));
@@ -4505,8 +4505,8 @@
   ;}
     break;
 
-  case 178:
-#line 1577 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 173:
+#line 1573 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.TypeList)=(yyvsp[(1) - (3)].TypeList))->push_back(*(yyvsp[(3) - (3)].TypeVal));
     delete (yyvsp[(3) - (3)].TypeVal);
@@ -4514,8 +4514,8 @@
   ;}
     break;
 
-  case 179:
-#line 1589 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 174:
+#line 1585 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (4)].TypeVal))->getDescription());
@@ -4546,8 +4546,8 @@
   ;}
     break;
 
-  case 180:
-#line 1617 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 175:
+#line 1613 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
@@ -4566,8 +4566,8 @@
   ;}
     break;
 
-  case 181:
-#line 1633 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 176:
+#line 1629 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
@@ -4597,8 +4597,8 @@
   ;}
     break;
 
-  case 182:
-#line 1660 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 177:
+#line 1656 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (4)].TypeVal))->getDescription());
@@ -4629,8 +4629,8 @@
   ;}
     break;
 
-  case 183:
-#line 1688 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 178:
+#line 1684 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[(1) - (4)].TypeVal)->get());
     if (STy == 0)
@@ -4659,8 +4659,8 @@
   ;}
     break;
 
-  case 184:
-#line 1714 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 179:
+#line 1710 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
@@ -4683,8 +4683,8 @@
   ;}
     break;
 
-  case 185:
-#line 1734 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 180:
+#line 1730 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = dyn_cast<StructType>((yyvsp[(1) - (6)].TypeVal)->get());
     if (STy == 0)
@@ -4713,8 +4713,8 @@
   ;}
     break;
 
-  case 186:
-#line 1760 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 181:
+#line 1756 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (5)].TypeVal))->getDescription());
@@ -4737,8 +4737,8 @@
   ;}
     break;
 
-  case 187:
-#line 1780 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 182:
+#line 1776 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4753,8 +4753,8 @@
   ;}
     break;
 
-  case 188:
-#line 1792 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 183:
+#line 1788 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4764,8 +4764,8 @@
   ;}
     break;
 
-  case 189:
-#line 1799 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 184:
+#line 1795 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4834,8 +4834,8 @@
   ;}
     break;
 
-  case 190:
-#line 1865 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 185:
+#line 1861 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4848,8 +4848,8 @@
   ;}
     break;
 
-  case 191:
-#line 1875 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 186:
+#line 1871 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -4862,94 +4862,115 @@
   ;}
     break;
 
-  case 192:
-#line 1885 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 187:
+#line 1881 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
-    if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val)))
-      GEN_ERROR("Constant value doesn't fit in type");
-    (yyval.ConstVal) = ConstantInt::get((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].SInt64Val), true);
+    if (IntegerType *IT = dyn_cast<IntegerType>((yyvsp[(1) - (2)].TypeVal)->get())) {
+      if (!ConstantInt::isValueValidForType(IT, (yyvsp[(2) - (2)].SInt64Val)))
+        GEN_ERROR("Constant value doesn't fit in type");
+      (yyval.ConstVal) = ConstantInt::get(IT, (yyvsp[(2) - (2)].SInt64Val), true);
+    } else {
+      GEN_ERROR("integer constant must have integer type");
+    }
+    delete (yyvsp[(1) - (2)].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 193:
-#line 1891 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 188:
+#line 1892 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
-    uint32_t BitWidth = cast<IntegerType>((yyvsp[(1) - (2)].PrimType))->getBitWidth();
-    if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
-      GEN_ERROR("Constant value does not fit in type");
+    if (IntegerType *IT = dyn_cast<IntegerType>((yyvsp[(1) - (2)].TypeVal)->get())) {
+      if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > IT->getBitWidth())
+        GEN_ERROR("Constant value does not fit in type");
+      (yyvsp[(2) - (2)].APIntVal)->sextOrTrunc(IT->getBitWidth());
+      (yyval.ConstVal) = ConstantInt::get(*(yyvsp[(2) - (2)].APIntVal));
+    } else {
+      GEN_ERROR("integer constant must have integer type");
     }
-    (yyvsp[(2) - (2)].APIntVal)->sextOrTrunc(BitWidth);
-    (yyval.ConstVal) = ConstantInt::get(*(yyvsp[(2) - (2)].APIntVal));
+    delete (yyvsp[(1) - (2)].TypeVal);
     delete (yyvsp[(2) - (2)].APIntVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 194:
-#line 1901 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 189:
+#line 1905 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // integral constants
-    if (!ConstantInt::isValueValidForType((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val)))
-      GEN_ERROR("Constant value doesn't fit in type");
-    (yyval.ConstVal) = ConstantInt::get((yyvsp[(1) - (2)].PrimType), (yyvsp[(2) - (2)].UInt64Val), false);
+    if (IntegerType *IT = dyn_cast<IntegerType>((yyvsp[(1) - (2)].TypeVal)->get())) {
+      if (!ConstantInt::isValueValidForType(IT, (yyvsp[(2) - (2)].UInt64Val)))
+        GEN_ERROR("Constant value doesn't fit in type");
+      (yyval.ConstVal) = ConstantInt::get(IT, (yyvsp[(2) - (2)].UInt64Val), false);
+    } else {
+      GEN_ERROR("integer constant must have integer type");
+    }
+    delete (yyvsp[(1) - (2)].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 195:
-#line 1907 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 190:
+#line 1916 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
-    uint32_t BitWidth = cast<IntegerType>((yyvsp[(1) - (2)].PrimType))->getBitWidth();
-    if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > BitWidth) {
-      GEN_ERROR("Constant value does not fit in type");
+    if (IntegerType *IT = dyn_cast<IntegerType>((yyvsp[(1) - (2)].TypeVal)->get())) {
+      if ((yyvsp[(2) - (2)].APIntVal)->getBitWidth() > IT->getBitWidth())
+        GEN_ERROR("Constant value does not fit in type");
+      (yyvsp[(2) - (2)].APIntVal)->zextOrTrunc(IT->getBitWidth());
+      (yyval.ConstVal) = ConstantInt::get(*(yyvsp[(2) - (2)].APIntVal));
+    } else {
+      GEN_ERROR("integer constant must have integer type");
     }
-    (yyvsp[(2) - (2)].APIntVal)->zextOrTrunc(BitWidth);
-    (yyval.ConstVal) = ConstantInt::get(*(yyvsp[(2) - (2)].APIntVal));
+
     delete (yyvsp[(2) - (2)].APIntVal);
+    delete (yyvsp[(1) - (2)].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 196:
-#line 1917 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 191:
+#line 1930 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                      // Boolean constants
-    if (cast<IntegerType>((yyvsp[(1) - (2)].PrimType))->getBitWidth() != 1)
+    if ((yyvsp[(1) - (2)].TypeVal)->get() != Type::Int1Ty)
       GEN_ERROR("Constant true must have type i1");
     (yyval.ConstVal) = ConstantInt::getTrue();
+    delete (yyvsp[(1) - (2)].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 197:
-#line 1923 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 192:
+#line 1937 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                     // Boolean constants
-    if (cast<IntegerType>((yyvsp[(1) - (2)].PrimType))->getBitWidth() != 1)
+    if ((yyvsp[(1) - (2)].TypeVal)->get() != Type::Int1Ty)
       GEN_ERROR("Constant false must have type i1");
     (yyval.ConstVal) = ConstantInt::getFalse();
+    delete (yyvsp[(1) - (2)].TypeVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 198:
-#line 1929 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 193:
+#line 1944 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                   // Floating point constants
-    if (!ConstantFP::isValueValidForType((yyvsp[(1) - (2)].PrimType), *(yyvsp[(2) - (2)].FPVal)))
+    if (!ConstantFP::isValueValidForType((yyvsp[(1) - (2)].TypeVal)->get(), *(yyvsp[(2) - (2)].FPVal)))
       GEN_ERROR("Floating point constant invalid for type");
+      
     // Lexer has no type info, so builds all float and double FP constants
     // as double.  Fix this here.  Long double is done right.
-    if (&(yyvsp[(2) - (2)].FPVal)->getSemantics()==&APFloat::IEEEdouble && (yyvsp[(1) - (2)].PrimType)==Type::FloatTy) {
+    if (&(yyvsp[(2) - (2)].FPVal)->getSemantics()==&APFloat::IEEEdouble && (yyvsp[(1) - (2)].TypeVal)->get()==Type::FloatTy) {
       bool ignored;
       (yyvsp[(2) - (2)].FPVal)->convert(APFloat::IEEEsingle, APFloat::rmNearestTiesToEven,
                   &ignored);
     }
     (yyval.ConstVal) = ConstantFP::get(*(yyvsp[(2) - (2)].FPVal));
+    delete (yyvsp[(1) - (2)].TypeVal);
     delete (yyvsp[(2) - (2)].FPVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 199:
-#line 1945 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 194:
+#line 1962 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) - (6)].TypeVal))->getDescription());
@@ -4964,8 +4985,8 @@
   ;}
     break;
 
-  case 200:
-#line 1957 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 195:
+#line 1974 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[(3) - (5)].ConstVal)->getType()))
       GEN_ERROR("GetElementPtr requires a pointer operand");
@@ -4989,8 +5010,8 @@
   ;}
     break;
 
-  case 201:
-#line 1978 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 196:
+#line 1995 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(3) - (8)].ConstVal)->getType() != Type::Int1Ty)
       GEN_ERROR("Select condition must be of boolean type");
@@ -5001,8 +5022,8 @@
   ;}
     break;
 
-  case 202:
-#line 1986 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 197:
+#line 2003 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType())
       GEN_ERROR("Binary operator types must match");
@@ -5011,8 +5032,8 @@
   ;}
     break;
 
-  case 203:
-#line 1992 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 198:
+#line 2009 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(3) - (6)].ConstVal)->getType() != (yyvsp[(5) - (6)].ConstVal)->getType())
       GEN_ERROR("Logical operator types must match");
@@ -5026,8 +5047,8 @@
   ;}
     break;
 
-  case 204:
-#line 2003 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 199:
+#line 2020 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
       GEN_ERROR("icmp operand types must match");
@@ -5035,8 +5056,8 @@
   ;}
     break;
 
-  case 205:
-#line 2008 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 200:
+#line 2025 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
       GEN_ERROR("fcmp operand types must match");
@@ -5044,8 +5065,8 @@
   ;}
     break;
 
-  case 206:
-#line 2013 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 201:
+#line 2030 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
       GEN_ERROR("vicmp operand types must match");
@@ -5053,8 +5074,8 @@
   ;}
     break;
 
-  case 207:
-#line 2018 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 202:
+#line 2035 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(4) - (7)].ConstVal)->getType() != (yyvsp[(6) - (7)].ConstVal)->getType())
       GEN_ERROR("vfcmp operand types must match");
@@ -5062,8 +5083,8 @@
   ;}
     break;
 
-  case 208:
-#line 2023 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 203:
+#line 2040 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[(3) - (6)].ConstVal), (yyvsp[(5) - (6)].ConstVal)))
       GEN_ERROR("Invalid extractelement operands");
@@ -5072,8 +5093,8 @@
   ;}
     break;
 
-  case 209:
-#line 2029 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 204:
+#line 2046 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)))
       GEN_ERROR("Invalid insertelement operands");
@@ -5082,8 +5103,8 @@
   ;}
     break;
 
-  case 210:
-#line 2035 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 205:
+#line 2052 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[(3) - (8)].ConstVal), (yyvsp[(5) - (8)].ConstVal), (yyvsp[(7) - (8)].ConstVal)))
       GEN_ERROR("Invalid shufflevector operands");
@@ -5092,8 +5113,8 @@
   ;}
     break;
 
-  case 211:
-#line 2041 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 206:
+#line 2058 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<StructType>((yyvsp[(3) - (5)].ConstVal)->getType()) && !isa<ArrayType>((yyvsp[(3) - (5)].ConstVal)->getType()))
       GEN_ERROR("ExtractValue requires an aggregate operand");
@@ -5104,8 +5125,8 @@
   ;}
     break;
 
-  case 212:
-#line 2049 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 207:
+#line 2066 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<StructType>((yyvsp[(3) - (7)].ConstVal)->getType()) && !isa<ArrayType>((yyvsp[(3) - (7)].ConstVal)->getType()))
       GEN_ERROR("InsertValue requires an aggregate operand");
@@ -5116,16 +5137,16 @@
   ;}
     break;
 
-  case 213:
-#line 2060 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 208:
+#line 2077 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.ConstVector) = (yyvsp[(1) - (3)].ConstVector))->push_back((yyvsp[(3) - (3)].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 214:
-#line 2064 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 209:
+#line 2081 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstVector) = new std::vector<Constant*>();
     (yyval.ConstVector)->push_back((yyvsp[(1) - (1)].ConstVal));
@@ -5133,28 +5154,28 @@
   ;}
     break;
 
-  case 215:
-#line 2072 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 210:
+#line 2089 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
-  case 216:
-#line 2072 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 211:
+#line 2089 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
-  case 217:
-#line 2075 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 212:
+#line 2092 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = true; ;}
     break;
 
-  case 218:
-#line 2075 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 213:
+#line 2092 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.BoolVal) = false; ;}
     break;
 
-  case 219:
-#line 2078 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 214:
+#line 2095 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const Type* VTy = (yyvsp[(1) - (2)].TypeVal)->get();
     Value *V = getVal(VTy, (yyvsp[(2) - (2)].ValIDVal));
@@ -5169,8 +5190,8 @@
    ;}
     break;
 
-  case 220:
-#line 2090 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 215:
+#line 2107 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     Constant *Val = (yyvsp[(3) - (6)].ConstVal);
     const Type *DestTy = (yyvsp[(5) - (6)].TypeVal)->get();
@@ -5185,8 +5206,8 @@
    ;}
     break;
 
-  case 221:
-#line 2111 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 216:
+#line 2128 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -5194,8 +5215,8 @@
   ;}
     break;
 
-  case 222:
-#line 2116 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 217:
+#line 2133 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
@@ -5203,40 +5224,40 @@
   ;}
     break;
 
-  case 225:
-#line 2129 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 220:
+#line 2146 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = false; ;}
     break;
 
-  case 226:
-#line 2129 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 221:
+#line 2146 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.FunctionDone();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 227:
-#line 2133 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 222:
+#line 2150 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { CurFun.isDeclare = true; ;}
     break;
 
-  case 228:
-#line 2133 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 223:
+#line 2150 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 229:
-#line 2136 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 224:
+#line 2153 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 230:
-#line 2139 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 225:
+#line 2156 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (3)].TypeVal))->getDescription());
@@ -5263,8 +5284,8 @@
   ;}
     break;
 
-  case 231:
-#line 2163 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 226:
+#line 2180 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ResolveTypeTo((yyvsp[(1) - (3)].StrVal), (yyvsp[(3) - (3)].PrimType));
 
@@ -5278,8 +5299,8 @@
   ;}
     break;
 
-  case 232:
-#line 2175 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 227:
+#line 2192 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     /* "Externally Visible" Linkage */
     if ((yyvsp[(5) - (6)].ConstVal) == 0)
@@ -5290,15 +5311,15 @@
   ;}
     break;
 
-  case 233:
-#line 2182 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 228:
+#line 2199 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
-  case 234:
-#line 2186 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 229:
+#line 2203 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if ((yyvsp[(6) - (7)].ConstVal) == 0)
       GEN_ERROR("Global value initializer is not a constant");
@@ -5307,15 +5328,15 @@
   ;}
     break;
 
-  case 235:
-#line 2191 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 230:
+#line 2208 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
   ;}
     break;
 
-  case 236:
-#line 2195 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 231:
+#line 2212 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(6) - (7)].TypeVal))->getDescription());
@@ -5325,16 +5346,16 @@
   ;}
     break;
 
-  case 237:
-#line 2201 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 232:
+#line 2218 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurGV = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 238:
-#line 2205 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 233:
+#line 2222 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     std::string Name;
     if ((yyvsp[(1) - (5)].StrVal)) {
@@ -5377,22 +5398,22 @@
   ;}
     break;
 
-  case 239:
-#line 2245 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 234:
+#line 2262 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 240:
-#line 2248 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 235:
+#line 2265 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 241:
-#line 2254 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 236:
+#line 2271 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
   if (AsmSoFar.empty())
@@ -5404,24 +5425,24 @@
 ;}
     break;
 
-  case 242:
-#line 2264 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 237:
+#line 2281 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setTargetTriple(*(yyvsp[(3) - (3)].StrVal));
     delete (yyvsp[(3) - (3)].StrVal);
   ;}
     break;
 
-  case 243:
-#line 2268 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 238:
+#line 2285 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurModule.CurrentModule->setDataLayout(*(yyvsp[(3) - (3)].StrVal));
     delete (yyvsp[(3) - (3)].StrVal);
   ;}
     break;
 
-  case 245:
-#line 2275 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 240:
+#line 2292 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary(*(yyvsp[(3) - (3)].StrVal));
           delete (yyvsp[(3) - (3)].StrVal);
@@ -5429,8 +5450,8 @@
         ;}
     break;
 
-  case 246:
-#line 2280 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 241:
+#line 2297 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
           CurModule.CurrentModule->addLibrary(*(yyvsp[(1) - (1)].StrVal));
           delete (yyvsp[(1) - (1)].StrVal);
@@ -5438,15 +5459,15 @@
         ;}
     break;
 
-  case 247:
-#line 2285 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 242:
+#line 2302 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
           CHECK_FOR_ERROR
         ;}
     break;
 
-  case 248:
-#line 2294 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 243:
+#line 2311 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (5)].TypeVal))->getDescription());
@@ -5459,8 +5480,8 @@
   ;}
     break;
 
-  case 249:
-#line 2304 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 244:
+#line 2321 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (3)].TypeVal))->getDescription());
@@ -5473,16 +5494,16 @@
   ;}
     break;
 
-  case 250:
-#line 2315 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 245:
+#line 2332 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[(1) - (1)].ArgList);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 251:
-#line 2319 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 246:
+#line 2336 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = (yyvsp[(1) - (3)].ArgList);
     struct ArgListEntry E;
@@ -5494,8 +5515,8 @@
   ;}
     break;
 
-  case 252:
-#line 2328 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 247:
+#line 2345 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = new ArgListType;
     struct ArgListEntry E;
@@ -5507,16 +5528,16 @@
   ;}
     break;
 
-  case 253:
-#line 2337 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 248:
+#line 2354 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ArgList) = 0;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 254:
-#line 2343 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 249:
+#line 2360 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   std::string FunctionName(*(yyvsp[(4) - (11)].StrVal));
   delete (yyvsp[(4) - (11)].StrVal);  // Free strdup'd memory!
@@ -5666,8 +5687,8 @@
 ;}
     break;
 
-  case 257:
-#line 2493 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 252:
+#line 2510 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = CurFun.CurrentFunction;
 
@@ -5678,16 +5699,16 @@
 ;}
     break;
 
-  case 260:
-#line 2504 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 255:
+#line 2521 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
   CHECK_FOR_ERROR
 ;}
     break;
 
-  case 261:
-#line 2509 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 256:
+#line 2526 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CurFun.CurrentFunction->setLinkage((yyvsp[(1) - (3)].Linkage));
     CurFun.CurrentFunction->setVisibility((yyvsp[(2) - (3)].Visibility));
@@ -5697,40 +5718,40 @@
   ;}
     break;
 
-  case 262:
-#line 2521 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 257:
+#line 2538 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 263:
-#line 2525 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 258:
+#line 2542 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 264:
-#line 2530 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 259:
+#line 2547 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {    // A reference to a direct constant
     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].SInt64Val));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 265:
-#line 2534 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 260:
+#line 2551 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].UInt64Val));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 266:
-#line 2538 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 261:
+#line 2555 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     (yyval.ValIDVal) = ValID::create(*(yyvsp[(1) - (1)].APIntVal), true);
     delete (yyvsp[(1) - (1)].APIntVal);
@@ -5738,8 +5759,8 @@
   ;}
     break;
 
-  case 267:
-#line 2543 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 262:
+#line 2560 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {      // arbitrary precision integer constants
     (yyval.ValIDVal) = ValID::create(*(yyvsp[(1) - (1)].APIntVal), false);
     delete (yyvsp[(1) - (1)].APIntVal);
@@ -5747,56 +5768,56 @@
   ;}
     break;
 
-  case 268:
-#line 2548 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 263:
+#line 2565 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                     // Perhaps it's an FP constant?
     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].FPVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 269:
-#line 2552 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 264:
+#line 2569 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 270:
-#line 2556 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 265:
+#line 2573 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 271:
-#line 2560 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 266:
+#line 2577 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createNull();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 272:
-#line 2564 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 267:
+#line 2581 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createUndef();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 273:
-#line 2568 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 268:
+#line 2585 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {     // A vector zero constant.
     (yyval.ValIDVal) = ValID::createZeroInit();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 274:
-#line 2572 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 269:
+#line 2589 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized packed vector
     const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
     unsigned NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
@@ -5821,8 +5842,8 @@
   ;}
     break;
 
-  case 275:
-#line 2594 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 270:
+#line 2611 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Nonempty unsized arr
     const Type *ETy = (*(yyvsp[(2) - (3)].ConstVector))[0]->getType();
     uint64_t NumElements = (yyvsp[(2) - (3)].ConstVector)->size();
@@ -5847,8 +5868,8 @@
   ;}
     break;
 
-  case 276:
-#line 2616 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 271:
+#line 2633 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Use undef instead of an array because it's inconvenient to determine
     // the element type at this point, there being no elements to examine.
@@ -5857,8 +5878,8 @@
   ;}
     break;
 
-  case 277:
-#line 2622 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 272:
+#line 2639 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     uint64_t NumElements = (yyvsp[(2) - (2)].StrVal)->length();
     const Type *ETy = Type::Int8Ty;
@@ -5874,8 +5895,8 @@
   ;}
     break;
 
-  case 278:
-#line 2635 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 273:
+#line 2652 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Elements((yyvsp[(2) - (3)].ConstVector)->size());
     for (unsigned i = 0, e = (yyvsp[(2) - (3)].ConstVector)->size(); i != e; ++i)
@@ -5890,8 +5911,8 @@
   ;}
     break;
 
-  case 279:
-#line 2647 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 274:
+#line 2664 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = StructType::get(std::vector<const Type*>());
     (yyval.ValIDVal) = ValID::create(ConstantStruct::get(STy, std::vector<Constant*>()));
@@ -5899,8 +5920,8 @@
   ;}
     break;
 
-  case 280:
-#line 2652 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 275:
+#line 2669 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     std::vector<const Type*> Elements((yyvsp[(3) - (5)].ConstVector)->size());
     for (unsigned i = 0, e = (yyvsp[(3) - (5)].ConstVector)->size(); i != e; ++i)
@@ -5915,8 +5936,8 @@
   ;}
     break;
 
-  case 281:
-#line 2664 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 276:
+#line 2681 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const StructType *STy = StructType::get(std::vector<const Type*>(),
                                             /*isPacked=*/true);
@@ -5925,16 +5946,16 @@
   ;}
     break;
 
-  case 282:
-#line 2670 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 277:
+#line 2687 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::create((yyvsp[(1) - (1)].ConstVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 283:
-#line 2674 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 278:
+#line 2691 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createInlineAsm(*(yyvsp[(3) - (5)].StrVal), *(yyvsp[(5) - (5)].StrVal), (yyvsp[(2) - (5)].BoolVal));
     delete (yyvsp[(3) - (5)].StrVal);
@@ -5943,24 +5964,24 @@
   ;}
     break;
 
-  case 284:
-#line 2684 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 279:
+#line 2701 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {  // Is it an integer reference...?
     (yyval.ValIDVal) = ValID::createLocalID((yyvsp[(1) - (1)].UIntVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 285:
-#line 2688 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 280:
+#line 2705 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValIDVal) = ValID::createGlobalID((yyvsp[(1) - (1)].UIntVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 286:
-#line 2692 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 281:
+#line 2709 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::createLocalName(*(yyvsp[(1) - (1)].StrVal));
     delete (yyvsp[(1) - (1)].StrVal);
@@ -5968,8 +5989,8 @@
   ;}
     break;
 
-  case 287:
-#line 2697 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 282:
+#line 2714 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                   // Is it a named reference...?
     (yyval.ValIDVal) = ValID::createGlobalName(*(yyvsp[(1) - (1)].StrVal));
     delete (yyvsp[(1) - (1)].StrVal);
@@ -5977,8 +5998,8 @@
   ;}
     break;
 
-  case 290:
-#line 2710 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 285:
+#line 2727 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (2)].TypeVal))->getDescription());
@@ -5988,8 +6009,8 @@
   ;}
     break;
 
-  case 291:
-#line 2719 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 286:
+#line 2736 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValueList) = new std::vector<Value *>();
     (yyval.ValueList)->push_back((yyvsp[(1) - (1)].ValueVal));
@@ -5997,32 +6018,32 @@
   ;}
     break;
 
-  case 292:
-#line 2724 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 287:
+#line 2741 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     ((yyval.ValueList)=(yyvsp[(1) - (3)].ValueList))->push_back((yyvsp[(3) - (3)].ValueVal));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 293:
-#line 2729 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 288:
+#line 2746 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 294:
-#line 2733 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 289:
+#line 2750 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Do not allow functions with 0 basic blocks
     (yyval.FunctionVal) = (yyvsp[(1) - (2)].FunctionVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 295:
-#line 2742 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 290:
+#line 2759 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     setValueName((yyvsp[(3) - (3)].TermInstVal), (yyvsp[(2) - (3)].StrVal));
     CHECK_FOR_ERROR
@@ -6033,8 +6054,8 @@
   ;}
     break;
 
-  case 296:
-#line 2751 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 291:
+#line 2768 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
   CHECK_FOR_ERROR
   int ValNum = InsertValue((yyvsp[(3) - (3)].TermInstVal));
@@ -6048,8 +6069,8 @@
 ;}
     break;
 
-  case 297:
-#line 2764 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 292:
+#line 2781 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[(2) - (2)].InstVal)))
       if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
@@ -6061,16 +6082,16 @@
   ;}
     break;
 
-  case 298:
-#line 2773 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 293:
+#line 2790 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {          // Empty space between instruction lists
     (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalID(CurFun.NextValNum));
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 299:
-#line 2777 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 294:
+#line 2794 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {             // Labelled (named) basic block
     (yyval.BasicBlockVal) = defineBBVal(ValID::createLocalName(*(yyvsp[(1) - (1)].StrVal)));
     delete (yyvsp[(1) - (1)].StrVal);
@@ -6079,8 +6100,8 @@
   ;}
     break;
 
-  case 300:
-#line 2785 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 295:
+#line 2802 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { // Return with a result...
     ValueList &VL = *(yyvsp[(2) - (2)].ValueList);
     assert(!VL.empty() && "Invalid ret operands!");
@@ -6103,16 +6124,16 @@
   ;}
     break;
 
-  case 301:
-#line 2805 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 296:
+#line 2822 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                                    // Return with no result...
     (yyval.TermInstVal) = ReturnInst::Create();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 302:
-#line 2809 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 297:
+#line 2826 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {                           // Unconditional Branch...
     BasicBlock* tmpBB = getBBVal((yyvsp[(3) - (3)].ValIDVal));
     CHECK_FOR_ERROR
@@ -6120,8 +6141,8 @@
   ;}
     break;
 
-  case 303:
-#line 2814 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 298:
+#line 2831 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (cast<IntegerType>((yyvsp[(2) - (9)].PrimType))->getBitWidth() != 1)
       GEN_ERROR("Branch condition must have type i1");
@@ -6135,8 +6156,8 @@
   ;}
     break;
 
-  case 304:
-#line 2825 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 299:
+#line 2842 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[(2) - (9)].PrimType), (yyvsp[(3) - (9)].ValIDVal));
     CHECK_FOR_ERROR
@@ -6158,8 +6179,8 @@
   ;}
     break;
 
-  case 305:
-#line 2844 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 300:
+#line 2861 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     Value* tmpVal = getVal((yyvsp[(2) - (8)].PrimType), (yyvsp[(3) - (8)].ValIDVal));
     CHECK_FOR_ERROR
@@ -6171,8 +6192,8 @@
   ;}
     break;
 
-  case 306:
-#line 2854 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 301:
+#line 2871 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
@@ -6278,24 +6299,24 @@
   ;}
     break;
 
-  case 307:
-#line 2957 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 302:
+#line 2974 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnwindInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 308:
-#line 2961 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 303:
+#line 2978 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.TermInstVal) = new UnreachableInst();
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 309:
-#line 2968 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 304:
+#line 2985 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = (yyvsp[(1) - (6)].JumpTable);
     Constant *V = cast<Constant>(getExistingVal((yyvsp[(2) - (6)].PrimType), (yyvsp[(3) - (6)].ValIDVal)));
@@ -6309,8 +6330,8 @@
   ;}
     break;
 
-  case 310:
-#line 2979 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 305:
+#line 2996 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
     Constant *V = cast<Constant>(getExistingVal((yyvsp[(1) - (5)].PrimType), (yyvsp[(2) - (5)].ValIDVal)));
@@ -6325,8 +6346,8 @@
   ;}
     break;
 
-  case 311:
-#line 2992 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 306:
+#line 3009 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // Is this definition named?? if so, assign the name...
     setValueName((yyvsp[(2) - (2)].InstVal), (yyvsp[(1) - (2)].StrVal));
@@ -6337,8 +6358,8 @@
   ;}
     break;
 
-  case 312:
-#line 3001 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 307:
+#line 3018 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     CHECK_FOR_ERROR
     int ValNum = InsertValue((yyvsp[(2) - (2)].InstVal));
@@ -6352,8 +6373,8 @@
   ;}
     break;
 
-  case 313:
-#line 3014 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 308:
+#line 3031 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {    // Used for PHI nodes
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(1) - (6)].TypeVal))->getDescription());
@@ -6367,8 +6388,8 @@
   ;}
     break;
 
-  case 314:
-#line 3025 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 309:
+#line 3042 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.PHIList) = (yyvsp[(1) - (7)].PHIList);
     Value* tmpVal = getVal((yyvsp[(1) - (7)].PHIList)->front().first->getType(), (yyvsp[(4) - (7)].ValIDVal));
@@ -6379,8 +6400,8 @@
   ;}
     break;
 
-  case 315:
-#line 3035 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 310:
+#line 3052 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // FIXME: Remove trailing OptAttributes in LLVM 3.0, it was a mistake in 2.0
     if (!UpRefs.empty())
@@ -6394,8 +6415,8 @@
   ;}
     break;
 
-  case 316:
-#line 3046 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 311:
+#line 3063 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // FIXME: Remove trailing OptAttributes in LLVM 3.0, it was a mistake in 2.0
     // Labels are only valid in ASMs
@@ -6406,8 +6427,8 @@
   ;}
     break;
 
-  case 317:
-#line 3054 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 312:
+#line 3071 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // FIXME: Remove trailing OptAttributes in LLVM 3.0, it was a mistake in 2.0
     if (!UpRefs.empty())
@@ -6420,8 +6441,8 @@
   ;}
     break;
 
-  case 318:
-#line 3064 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 313:
+#line 3081 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     // FIXME: Remove trailing OptAttributes in LLVM 3.0, it was a mistake in 2.0
     (yyval.ParamList) = (yyvsp[(1) - (6)].ParamList);
@@ -6431,18 +6452,18 @@
   ;}
     break;
 
-  case 319:
-#line 3071 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 314:
+#line 3088 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ParamList) = new ParamList(); ;}
     break;
 
-  case 320:
-#line 3074 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 315:
+#line 3091 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     { (yyval.ValueList) = new std::vector<Value*>(); ;}
     break;
 
-  case 321:
-#line 3075 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 316:
+#line 3092 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ValueList) = (yyvsp[(1) - (3)].ValueList);
     (yyval.ValueList)->push_back((yyvsp[(3) - (3)].ValueVal));
@@ -6450,8 +6471,8 @@
   ;}
     break;
 
-  case 322:
-#line 3083 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 317:
+#line 3100 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstantList) = new std::vector<unsigned>();
     if ((unsigned)(yyvsp[(2) - (2)].UInt64Val) != (yyvsp[(2) - (2)].UInt64Val))
@@ -6460,8 +6481,8 @@
   ;}
     break;
 
-  case 323:
-#line 3089 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 318:
+#line 3106 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.ConstantList) = (yyvsp[(1) - (3)].ConstantList);
     if ((unsigned)(yyvsp[(3) - (3)].UInt64Val) != (yyvsp[(3) - (3)].UInt64Val))
@@ -6471,24 +6492,24 @@
   ;}
     break;
 
-  case 324:
-#line 3098 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 319:
+#line 3115 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 325:
-#line 3102 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 320:
+#line 3119 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 326:
-#line 3107 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 321:
+#line 3124 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (5)].TypeVal))->getDescription());
@@ -6507,8 +6528,8 @@
   ;}
     break;
 
-  case 327:
-#line 3123 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 322:
+#line 3140 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (5)].TypeVal))->getDescription());
@@ -6528,8 +6549,8 @@
   ;}
     break;
 
-  case 328:
-#line 3140 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 323:
+#line 3157 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (6)].TypeVal))->getDescription());
@@ -6544,8 +6565,8 @@
   ;}
     break;
 
-  case 329:
-#line 3152 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 324:
+#line 3169 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (6)].TypeVal))->getDescription());
@@ -6560,8 +6581,8 @@
   ;}
     break;
 
-  case 330:
-#line 3164 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 325:
+#line 3181 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (6)].TypeVal))->getDescription());
@@ -6578,8 +6599,8 @@
   ;}
     break;
 
-  case 331:
-#line 3178 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 326:
+#line 3195 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (6)].TypeVal))->getDescription());
@@ -6596,8 +6617,8 @@
   ;}
     break;
 
-  case 332:
-#line 3192 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 327:
+#line 3209 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) - (4)].TypeVal))->getDescription());
@@ -6612,8 +6633,8 @@
   ;}
     break;
 
-  case 333:
-#line 3204 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 328:
+#line 3221 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (isa<VectorType>((yyvsp[(2) - (6)].ValueVal)->getType())) {
       // vector select
@@ -6637,8 +6658,8 @@
   ;}
     break;
 
-  case 334:
-#line 3225 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 329:
+#line 3242 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(4) - (4)].TypeVal))->getDescription());
@@ -6648,8 +6669,8 @@
   ;}
     break;
 
-  case 335:
-#line 3232 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 330:
+#line 3249 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ExtractElementInst::isValidOperands((yyvsp[(2) - (4)].ValueVal), (yyvsp[(4) - (4)].ValueVal)))
       GEN_ERROR("Invalid extractelement operands");
@@ -6658,8 +6679,8 @@
   ;}
     break;
 
-  case 336:
-#line 3238 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 331:
+#line 3255 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!InsertElementInst::isValidOperands((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)))
       GEN_ERROR("Invalid insertelement operands");
@@ -6668,8 +6689,8 @@
   ;}
     break;
 
-  case 337:
-#line 3244 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 332:
+#line 3261 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!ShuffleVectorInst::isValidOperands((yyvsp[(2) - (6)].ValueVal), (yyvsp[(4) - (6)].ValueVal), (yyvsp[(6) - (6)].ValueVal)))
       GEN_ERROR("Invalid shufflevector operands");
@@ -6678,8 +6699,8 @@
   ;}
     break;
 
-  case 338:
-#line 3250 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 333:
+#line 3267 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     const Type *Ty = (yyvsp[(2) - (2)].PHIList)->front().first->getType();
     if (!Ty->isFirstClassType())
@@ -6697,8 +6718,8 @@
   ;}
     break;
 
-  case 339:
-#line 3266 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 334:
+#line 3283 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
 
     // Handle the short syntax
@@ -6810,32 +6831,32 @@
   ;}
     break;
 
-  case 340:
-#line 3375 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 335:
+#line 3392 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.InstVal) = (yyvsp[(1) - (1)].InstVal);
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 341:
-#line 3380 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 336:
+#line 3397 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 342:
-#line 3384 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 337:
+#line 3401 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
   ;}
     break;
 
-  case 343:
-#line 3391 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 338:
+#line 3408 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (3)].TypeVal))->getDescription());
@@ -6845,8 +6866,8 @@
   ;}
     break;
 
-  case 344:
-#line 3398 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 339:
+#line 3415 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (6)].TypeVal))->getDescription());
@@ -6859,8 +6880,8 @@
   ;}
     break;
 
-  case 345:
-#line 3408 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 340:
+#line 3425 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (3)].TypeVal))->getDescription());
@@ -6870,8 +6891,8 @@
   ;}
     break;
 
-  case 346:
-#line 3415 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 341:
+#line 3432 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (6)].TypeVal))->getDescription());
@@ -6884,8 +6905,8 @@
   ;}
     break;
 
-  case 347:
-#line 3425 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 342:
+#line 3442 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!isa<PointerType>((yyvsp[(2) - (2)].ValueVal)->getType()))
       GEN_ERROR("Trying to free nonpointer type " +
@@ -6895,8 +6916,8 @@
   ;}
     break;
 
-  case 348:
-#line 3433 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 343:
+#line 3450 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(3) - (5)].TypeVal))->getDescription());
@@ -6913,8 +6934,8 @@
   ;}
     break;
 
-  case 349:
-#line 3447 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 344:
+#line 3464 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(5) - (7)].TypeVal))->getDescription());
@@ -6934,8 +6955,8 @@
   ;}
     break;
 
-  case 350:
-#line 3464 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 345:
+#line 3481 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (5)].TypeVal))->getDescription());
@@ -6952,8 +6973,8 @@
   ;}
     break;
 
-  case 351:
-#line 3478 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 346:
+#line 3495 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (4)].TypeVal))->getDescription());
@@ -6971,8 +6992,8 @@
   ;}
     break;
 
-  case 352:
-#line 3493 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 347:
+#line 3510 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (4)].TypeVal))->getDescription());
@@ -6990,8 +7011,8 @@
   ;}
     break;
 
-  case 353:
-#line 3508 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+  case 348:
+#line 3525 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
     {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[(2) - (7)].TypeVal))->getDescription());
@@ -7013,7 +7034,7 @@
 
 
 /* Line 1267 of yacc.c.  */
-#line 7017 "llvmAsmParser.tab.c"
+#line 7038 "llvmAsmParser.tab.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -7227,7 +7248,7 @@
 }
 
 
-#line 3527 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
+#line 3544 "/Users/sabre/llvm/lib/AsmParser/llvmAsmParser.y"
 
 
 // common code from the two 'RunVMAsmParser' functions

Modified: llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs?rev=57561&r1=57560&r2=57561&view=diff

==============================================================================
--- llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs (original)
+++ llvm/trunk/lib/AsmParser/llvmAsmParser.y.cvs Wed Oct 15 01:16:57 2008
@@ -1071,7 +1071,7 @@
 
 // Built in types...
 %type  <TypeVal> Types ResultTypes
-%type  <PrimType> FPType PrimType           // Classifications
+%type  <PrimType> PrimType           // Classifications
 %token <PrimType> VOID INTTYPE
 %token <PrimType> FLOAT DOUBLE X86_FP80 FP128 PPC_FP128 LABEL
 %token TYPE
@@ -1165,10 +1165,6 @@
   | FALSETOK { $$ = FCmpInst::FCMP_FALSE; }
   ;
 
-// These are some types that allow classification if we only want a particular
-// thing... for example, only a signed, unsigned, or integral type.
-FPType   : FLOAT | DOUBLE | PPC_FP128 | FP128 | X86_FP80;
-
 LocalName : LOCALVAR | STRINGCONSTANT | PCTSTRINGCONSTANT ;
 OptLocalName : LocalName | /*empty*/ { $$ = 0; };
 
@@ -1882,61 +1878,82 @@
     delete $1;
     CHECK_FOR_ERROR
   }
-  | INTTYPE ESINT64VAL {      // integral constants
-    if (!ConstantInt::isValueValidForType($1, $2))
-      GEN_ERROR("Constant value doesn't fit in type");
-    $$ = ConstantInt::get($1, $2, true);
+  | Types ESINT64VAL {      // integral constants
+    if (IntegerType *IT = dyn_cast<IntegerType>($1->get())) {
+      if (!ConstantInt::isValueValidForType(IT, $2))
+        GEN_ERROR("Constant value doesn't fit in type");
+      $$ = ConstantInt::get(IT, $2, true);
+    } else {
+      GEN_ERROR("integer constant must have integer type");
+    }
+    delete $1;
     CHECK_FOR_ERROR
   }
-  | INTTYPE ESAPINTVAL {      // arbitrary precision integer constants
-    uint32_t BitWidth = cast<IntegerType>($1)->getBitWidth();
-    if ($2->getBitWidth() > BitWidth) {
-      GEN_ERROR("Constant value does not fit in type");
+  | Types ESAPINTVAL {      // arbitrary precision integer constants
+    if (IntegerType *IT = dyn_cast<IntegerType>($1->get())) {
+      if ($2->getBitWidth() > IT->getBitWidth())
+        GEN_ERROR("Constant value does not fit in type");
+      $2->sextOrTrunc(IT->getBitWidth());
+      $$ = ConstantInt::get(*$2);
+    } else {
+      GEN_ERROR("integer constant must have integer type");
     }
-    $2->sextOrTrunc(BitWidth);
-    $$ = ConstantInt::get(*$2);
+    delete $1;
     delete $2;
     CHECK_FOR_ERROR
   }
-  | INTTYPE EUINT64VAL {      // integral constants
-    if (!ConstantInt::isValueValidForType($1, $2))
-      GEN_ERROR("Constant value doesn't fit in type");
-    $$ = ConstantInt::get($1, $2, false);
+  | Types EUINT64VAL {      // integral constants
+    if (IntegerType *IT = dyn_cast<IntegerType>($1->get())) {
+      if (!ConstantInt::isValueValidForType(IT, $2))
+        GEN_ERROR("Constant value doesn't fit in type");
+      $$ = ConstantInt::get(IT, $2, false);
+    } else {
+      GEN_ERROR("integer constant must have integer type");
+    }
+    delete $1;
     CHECK_FOR_ERROR
   }
-  | INTTYPE EUAPINTVAL {      // arbitrary precision integer constants
-    uint32_t BitWidth = cast<IntegerType>($1)->getBitWidth();
-    if ($2->getBitWidth() > BitWidth) {
-      GEN_ERROR("Constant value does not fit in type");
+  | Types EUAPINTVAL {      // arbitrary precision integer constants
+    if (IntegerType *IT = dyn_cast<IntegerType>($1->get())) {
+      if ($2->getBitWidth() > IT->getBitWidth())
+        GEN_ERROR("Constant value does not fit in type");
+      $2->zextOrTrunc(IT->getBitWidth());
+      $$ = ConstantInt::get(*$2);
+    } else {
+      GEN_ERROR("integer constant must have integer type");
     }
-    $2->zextOrTrunc(BitWidth);
-    $$ = ConstantInt::get(*$2);
+
     delete $2;
+    delete $1;
     CHECK_FOR_ERROR
   }
-  | INTTYPE TRUETOK {                      // Boolean constants
-    if (cast<IntegerType>($1)->getBitWidth() != 1)
+  | Types TRUETOK {                      // Boolean constants
+    if ($1->get() != Type::Int1Ty)
       GEN_ERROR("Constant true must have type i1");
     $$ = ConstantInt::getTrue();
+    delete $1;
     CHECK_FOR_ERROR
   }
-  | INTTYPE FALSETOK {                     // Boolean constants
-    if (cast<IntegerType>($1)->getBitWidth() != 1)
+  | Types FALSETOK {                     // Boolean constants
+    if ($1->get() != Type::Int1Ty)
       GEN_ERROR("Constant false must have type i1");
     $$ = ConstantInt::getFalse();
+    delete $1;
     CHECK_FOR_ERROR
   }
-  | FPType FPVAL {                   // Floating point constants
-    if (!ConstantFP::isValueValidForType($1, *$2))
+  | Types FPVAL {                   // Floating point constants
+    if (!ConstantFP::isValueValidForType($1->get(), *$2))
       GEN_ERROR("Floating point constant invalid for type");
+      
     // Lexer has no type info, so builds all float and double FP constants
     // as double.  Fix this here.  Long double is done right.
-    if (&$2->getSemantics()==&APFloat::IEEEdouble && $1==Type::FloatTy) {
+    if (&$2->getSemantics()==&APFloat::IEEEdouble && $1->get()==Type::FloatTy) {
       bool ignored;
       $2->convert(APFloat::IEEEsingle, APFloat::rmNearestTiesToEven,
                   &ignored);
     }
     $$ = ConstantFP::get(*$2);
+    delete $1;
     delete $2;
     CHECK_FOR_ERROR
   };





More information about the llvm-commits mailing list