glsl2: Commit generated files changed by previous commit
authorIan Romanick <ian.d.romanick@intel.com>
Mon, 30 Aug 2010 18:59:48 +0000 (11:59 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 30 Aug 2010 19:52:42 +0000 (12:52 -0700)
src/glsl/glsl_lexer.cpp
src/glsl/glsl_parser.cpp
src/glsl/glsl_parser.h

index 3cdce995e2884006c53076c0df22ca4b6132a815..873df609d34899af898b3f8a0971528d5042cfce 100644 (file)
@@ -358,8 +358,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
        *yy_cp = '\0'; \
        yyg->yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 177
-#define YY_END_OF_BUFFER 178
+#define YY_NUM_RULES 183
+#define YY_END_OF_BUFFER 184
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -367,81 +367,86 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[668] =
+static yyconst flex_int16_t yy_accept[708] =
     {   0,
-        0,    0,    9,    9,  178,  176,    1,   14,  176,  176,
-      176,  176,  176,  176,  176,  176,   90,   88,  176,  176,
-      176,  175,  176,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  176,    1,  176,   85,  177,    9,   13,
-      177,   12,   10,   11,    1,   74,   81,   75,   84,   78,
-       69,   80,   70,   87,   92,   79,   93,   90,    0,    0,
-       95,    0,   88,    0,   71,   73,   72,    0,  175,   77,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,   22,  175,  175,  175,  175,  175,  175,  175,
-
-      175,  175,  175,  175,  175,  175,   26,  175,  175,   50,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,   86,   76,    1,    0,    0,    2,    0,    0,    0,
-        0,    9,    8,   12,   11,    0,   92,   91,    0,   93,
-        0,   94,   89,   82,   83,  175,   98,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,   25,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,   19,
-
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-       51,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,    0,    0,
-        0,    0,    8,    0,   92,    0,   91,    0,   93,   94,
-      175,  175,   17,  175,  175,  138,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,   24,  101,  175,  175,  175,
-      175,   57,  175,  175,  106,  120,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  117,  141,   38,
-       39,   40,  175,  175,  175,  175,  175,  175,  175,  175,
-
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  104,   96,  175,  175,  175,  175,  175,  175,
-      175,   35,   36,   37,   67,  175,  175,    0,    0,    0,
-        0,    0,   91,  175,  175,   20,   29,   30,   31,  175,
-       99,  175,   16,  175,  175,  175,  175,  128,  129,  130,
-      175,   97,  175,  121,   18,  131,  132,  133,  143,  125,
-      126,  127,  175,  175,  175,   52,  123,  175,  175,   32,
-       33,   34,  175,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  118,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  100,
-
-      175,  140,  175,  175,   23,    0,    0,    0,    0,  147,
-      175,  175,  145,  175,  175,  175,  119,  114,  150,  175,
-      175,  175,  175,  175,  175,  109,  175,  175,   68,   41,
-       42,   43,   44,   45,   46,   47,   48,   49,  175,  175,
-      175,  175,  124,  105,  175,  175,  112,   28,  175,  175,
-      137,   58,  113,   66,  148,  107,  175,  175,  175,  175,
-      175,  175,  175,    0,    0,    0,    0,  175,  175,  175,
-      108,   27,  175,  175,  175,  175,  175,  175,  151,  152,
-      153,  175,  175,  175,  175,  142,  175,  175,  175,  175,
-      175,  175,  175,  175,  102,  175,  175,  175,  175,  175,
-
-       53,  175,   54,  175,    0,    0,    0,    7,    0,  175,
-       55,   21,  115,  155,  156,  157,  175,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  110,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  103,  159,  160,
-      161,  175,  175,  122,  111,    0,    0,    6,    0,    0,
-        0,    3,   15,  175,  175,  175,  175,  175,  175,  175,
-      175,  175,  154,  116,   56,  139,  175,  146,  144,  174,
-       60,   61,   62,  175,  175,  175,  175,  175,  175,    0,
-        0,    0,    0,  175,  175,  175,  158,  175,  175,  175,
-      175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
-
-      175,  175,  162,    4,    0,    5,    0,    0,    0,  175,
-      175,  175,  175,  175,  175,  175,  171,  175,  175,  175,
-      175,  175,  175,   63,  175,  175,  175,    0,  175,  175,
-      172,  163,  175,  164,  175,  175,  175,  175,  175,  175,
-      175,  175,  175,  173,  165,  166,  169,  170,   59,  175,
-      134,  175,  135,  149,  167,  168,  175,  175,  175,   64,
-      175,   65,  175,  175,  175,  136,    0
+        0,    0,   15,   15,    0,    0,  184,  182,    1,   20,
+      182,  182,  182,  182,  182,  182,  182,  182,   96,   94,
+      182,  182,  182,  181,  182,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  182,    1,  182,   91,  183,
+       15,   19,  183,   18,   16,   17,   13,   12,    1,   80,
+       87,   81,   90,   84,   75,   86,   76,   93,   98,   85,
+       99,   96,    0,    0,  101,    0,   94,    0,   77,   79,
+       78,    0,  181,   83,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,   28,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+       32,  181,  181,   56,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,   92,   82,    1,    0,    0,
+        2,    0,    0,    0,    0,   15,   14,   18,   17,    0,
+       98,   97,    0,   99,    0,  100,   95,   88,   89,  181,
+      104,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,   31,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,   25,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,   57,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,    0,    0,    0,    0,   14,    0,   98,    0,
+       97,    0,   99,  100,  181,  181,   23,  181,  181,  144,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,   30,
+      107,  181,  181,  181,  181,   63,  181,  181,  112,  126,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  123,  147,   44,   45,   46,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  110,  102,  181,  181,
+      181,  181,  181,  181,  181,   41,   42,   43,   73,  181,
+      181,    0,    0,    0,    0,    0,   97,  181,  181,   26,
+       35,   36,   37,  181,  105,  181,   22,  181,  181,  181,
+      181,  134,  135,  136,  181,  103,  181,  127,   24,  137,
+      138,  139,  149,  131,  132,  133,  181,  181,  181,   58,
+      129,  181,  181,   38,   39,   40,  181,  181,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  181,  124,  181,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  106,  181,  146,  181,  181,   29,    0,
+        0,    0,    0,  153,  181,  181,  151,  181,  181,  181,
+      125,  120,  156,  181,  181,  181,  181,  181,  181,  115,
+      181,  181,   74,   47,   48,   49,   50,   51,   52,   53,
+       54,   55,  181,  181,  181,  181,  130,  111,  181,  181,
+      118,   34,  181,  181,  143,   64,  119,   72,  154,  113,
+      181,  181,  181,  181,  181,  181,  181,    0,    0,    0,
+        0,  181,  181,  181,  114,   33,  181,  181,  181,  181,
+      181,  181,  157,  158,  159,  181,  181,  181,  181,  148,
+      181,  181,  181,  181,  181,  181,  181,  181,  108,  181,
+
+      181,  181,  181,  181,   59,  181,   60,  181,    0,    0,
+        0,    0,    0,  181,   61,   27,  121,  161,  162,  163,
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  116,  181,  181,  181,  181,  181,  181,  181,  181,
+      181,  109,  165,  166,  167,  181,  181,  128,  117,    0,
+        0,    6,    0,    0,    0,   11,    3,   21,  181,  181,
+      181,  181,  181,  181,  181,  181,  181,  160,  122,   62,
+      145,  181,  152,  150,  180,   66,   67,   68,  181,  181,
+      181,  181,  181,  181,    0,    0,    0,    0,    0,    0,
+      181,  181,  181,  164,  181,  181,  181,  181,  181,  181,
+
+      181,  181,  181,  181,  181,  181,  181,  181,  181,  168,
+        4,    0,    5,    0,    0,    0,    0,    0,  181,  181,
+      181,  181,  181,  181,  181,  177,  181,  181,  181,  181,
+      181,  181,   69,  181,  181,  181,    0,    0,    0,  181,
+      181,  178,  169,  181,  170,  181,  181,  181,  181,  181,
+      181,  181,  181,  181,  179,    0,    0,  171,  172,  175,
+      176,   65,  181,  140,  181,  141,  155,  173,  174,    0,
+        0,  181,  181,  181,    0,    0,    0,   70,  181,   71,
+        0,    0,    0,  181,    0,    0,    0,  181,    0,    0,
+        7,    0,    0,  181,    0,    8,    0,    0,  142,    0,
+
+        0,    0,    0,    9,    0,   10,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -449,17 +454,17 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    5,    1,    6,    1,    7,    8,    1,    1,
-        1,    9,   10,    1,   11,   12,   13,   14,   15,   16,
-       17,   18,   19,   19,   19,   20,   20,   21,    1,   22,
-       23,   24,    1,    1,   25,   26,   27,   28,   29,   30,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   32,   33,   31,   31,   31,   31,   34,   31,   31,
-        1,    1,    1,   35,   36,    1,   37,   38,   39,   40,
-
-       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
-       51,   52,   31,   53,   54,   55,   56,   57,   58,   59,
-       60,   61,    1,   62,    1,    1,    1,    1,    1,    1,
+        1,    2,    5,    1,    6,    1,    7,    8,    1,    9,
+       10,   11,   12,    1,   13,   14,   15,   16,   17,   18,
+       19,   20,   21,   21,   21,   22,   22,   23,    1,   24,
+       25,   26,    1,    1,   27,   28,   29,   30,   31,   32,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,   34,   35,   33,   33,   33,   33,   36,   33,   33,
+        1,    1,    1,   37,   38,    1,   39,   40,   41,   42,
+
+       43,   44,   45,   46,   47,   48,   49,   50,   51,   52,
+       53,   54,   33,   55,   56,   57,   58,   59,   60,   61,
+       62,   63,    1,   64,    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,
@@ -476,296 +481,314 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int32_t yy_meta[63] =
+static yyconst flex_int32_t yy_meta[65] =
     {   0,
         1,    2,    3,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    4,    4,    4,    4,    4,    4,    5,
-        1,    1,    1,    1,    6,    6,    6,    6,    5,    5,
-        7,    7,    7,    8,    1,    7,    6,    6,    6,    6,
-        5,    5,    7,    7,    7,    7,    7,    7,    7,    7,
-        7,    7,    7,    7,    7,    7,    7,    7,    8,    7,
-        7,    1
+        1,    1,    1,    1,    1,    4,    4,    4,    4,    4,
+        4,    5,    1,    1,    1,    1,    6,    6,    6,    6,
+        5,    5,    7,    7,    7,    8,    1,    7,    6,    6,
+        6,    6,    5,    5,    7,    7,    7,    7,    7,    7,
+        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
+        8,    7,    7,    1
     } ;
 
-static yyconst flex_int16_t yy_base[678] =
+static yyconst flex_int16_t yy_base[719] =
     {   0,
-        0,   61,   84,    0, 1012, 1013,   62, 1013,  988,  987,
-       57,  986,   58,   59,   57,  985,  135,  183,   56,  984,
-      133,    0,  971,  119,  109,  130,  134,  111,  135,  954,
-      151,  165,   32,  152,  131,  948,  153,  170,  182,  176,
-      178,  193,  959,  125,  237,  243,  979, 1013,  214, 1013,
-      988,  233, 1013,    0,  231, 1013, 1013, 1013, 1013, 1013,
-     1013, 1013, 1013, 1013,  225, 1013,  227,  224,  289,  260,
-     1013,    0,    0,  977, 1013, 1013, 1013,  976,    0, 1013,
-      943,  948,  941,  944,  953,  952,  938,  941,  953,  155,
-      947,  934,  931,  945,  931,  928,  928,  934,  213,  222,
-
-      928,  939,  924,  930,  934,  935,    0,  926,  937,  237,
-      932,  912,  232,  916,  930,  920,  241,  913,  257,  926,
-      928,  910,  906,  914,  911,  900,  909,  228,  907,  913,
-      908,  911,  899,  902,  904,  257,  907,  898,  911,  215,
-      904, 1013, 1013,  310,  295,  318, 1013,  889,  902,  893,
-      904,  260,    0,  308,    0,  362, 1013,  303,  373, 1013,
-      380,  387,    0, 1013, 1013,  899,    0,  890,  894,  904,
-      901,  884,  883,  883,  887,  280,  898,  895,  895,  893,
-      890,  881,  888,  874,  872,  885,  870,  887,    0,  884,
-      871,  879,  876,  880,  881,  874,  871,  859,  858,  872,
-
-      875,  872,  859,  866,  856,  321,  862,  865,  855,  863,
-      851,  855,  846,  861,  851,  842,  861,  844,  842,  853,
-      842,  837,  835,  849,  834,  836,  833,  845,  844,  847,
-      298,  838,  832,  821,  337,  840,  842,  830,  822,  826,
-      838,  821,    0,  394,  404,  421, 1013,  433,  440, 1013,
-      816,  827,    0,  824,  340,    0,  817,  815,  817,  812,
-      821,  809,  827,  815,  344,    0,    0,  809,  820,  819,
-      819,    0,  803,  347,    0,    0,  805,  351,  813,  814,
-      804,  798,  797,  798,  797,  409,  793,    0,    0,  789,
-      788,  787,  789,  790,  795,  789,  785,  799,  794,  793,
-
-      792,  783,  786,  786,  778,  781,  776,  785,  790,  775,
-      788,  778,    0,    0,  785,  781,  772,  772,  778,  777,
-      774,    0,    0,    0,    0,  763,  776,  775,  774,  771,
-      759,  447,  457,  771,  773,    0,    0,    0,    0,  759,
-        0,  759,    0,  758,  759,  753,  764,    0,    0,    0,
-      754,    0,  750,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  761,  463,  760,    0,    0,  758,  754,    0,
-        0,    0,  743,  426,  467,  475,  748,  744,  750,  740,
-      738,  752,  736,  736,  750,  738,  750,  745,    0,  743,
-      740,  744,  727,  729,  736,  742,  737,  736,  723,    0,
-
-      725,    0,  724,  728,    0,  722,  769,  721,  724,    0,
-      712,  722,    0,  710,  710,  724,    0,  726,    0,  479,
-      734,  733,  732,  703,  702,    0,  720,  719,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  703,  717,
-      703,  700,    0,    0,  706,  705,    0,    0,  703,  695,
-        0,    0,    0,    0,    0,    0,  692,  704,  485,  696,
-      703,  700,  694,  687,  501,  703,  688,  683,  697,  695,
-        0,    0,  687,  706,  705,  704,  675,  674,  317,  489,
-        0,  687,  690,  688,  676,    0,  686,  683,  682,  671,
-      670,  669,  508,  678,    0,  690,  689,  688,  659,  658,
-
-        0,  673,    0,  671,  666,  495,  524, 1013,  660,  668,
-        0,    0,    0,  683,  682,    0,  664,  667,  651,  659,
-      649,  657,  658,  658,  657,  642,  655,    0,  656,  644,
-      643,  639,  663,  662,  661,  632,  631,    0,  661,  660,
-        0,  642,  645,    0,    0,  631,  543, 1013,  534,    0,
-      553, 1013,    0,  628,  627,  637,  637,  624,  639,  622,
-      637,  632,    0,    0,    0,    0,  617,    0,    0,    0,
-      638,  353,  638,  627,  630,  614,  613,  623,  623,  613,
-      530,  563,  413,  609,  608,  619,    0,  622,  618,  620,
-      616,  602,  609,  605,  607,  603,  598,  596,  596,  575,
-
-      542,  553,    0, 1013,  466, 1013,  582,    0,  588,  556,
-      555,  535,  527,  535,  516,  524,    0,  517,  510,  492,
-      493,  489,  472,    0,  473,  472,  451,  505,  428,  426,
-        0,    0,  423,    0,  387,  392,  390,  373,  334,  316,
-      298,  288,  286,    0,    0,    0,    0,    0,    0,  290,
-      296,  266,    0,    0,    0,    0,  257,  269,  241,    0,
-      250,    0,  202,  133,  105,    0, 1013,  605,  610,  615,
-      617,  619,  625,  632,  637,  642,  647
+        0,   63,   88,    0, 1076, 1075, 1077, 1080,   64, 1080,
+     1051, 1050,   59, 1049,   58,   60,   58, 1048,  139,  187,
+       47, 1047,   56,    0, 1034,  121,  110,  137,  138,  134,
+      163, 1017,  173,  177,  115,  149,  140, 1011,  159,  121,
+      187,  194,  194,  172, 1022,  171,  249,  240, 1042, 1080,
+      250, 1080, 1051,  241, 1080,    0, 1080, 1080,  262, 1080,
+     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,  236, 1080,
+      238,  187,  286,  303, 1080,    0,    0, 1040, 1080, 1080,
+     1080, 1039,    0, 1080, 1006, 1011, 1004, 1007, 1016, 1015,
+     1001, 1004, 1016,   35, 1010,  997,  994, 1008,  994,  991,
+
+      991,  997,  215,  232,  991, 1002,  987,  993,  997,  998,
+        0,  989, 1000,  234,  995,  975,  226,  979,  993,  983,
+      119,  976,  234,  989,  991,  973,  969,  977,  974,  963,
+      972,  256,  970,  976,  971,  974,  962,  965,  967,  245,
+      970,  961,  974,  227,  967, 1080, 1080,  308,  294,  324,
+     1080,  952,  965,  956,  967,  329,    0,  338,    0,  368,
+     1080,  303,  379, 1080,  386,  393,    0, 1080, 1080,  962,
+        0,  953,  957,  967,  964,  947,  946,  946,  950,  216,
+      961,  958,  958,  956,  953,  944,  951,  937,  935,  948,
+      933,  950,    0,  947,  934,  942,  939,  943,  944,  937,
+
+      934,  922,  921,  935,  938,  935,  922,  929,  919,  320,
+      925,  928,  918,  926,  914,  918,  909,  924,  914,  905,
+      924,  907,  905,  916,  905,  900,  898,  912,  897,  899,
+      896,  908,  907,  910,  288,  901,  895,  884,  331,  903,
+      905,  893,  885,  889,  901,  884,    0,  400,  410,  427,
+     1080,  439,  446, 1080,  879,  890,    0,  887,  343,    0,
+      880,  878,  880,  875,  884,  872,  890,  878,  346,    0,
+        0,  872,  883,  882,  882,    0,  866,  350,    0,    0,
+      868,  353,  876,  877,  867,  861,  860,  861,  860,  357,
+      856,    0,    0,  852,  851,  850,  852,  853,  858,  852,
+
+      848,  862,  857,  856,  855,  846,  849,  849,  841,  844,
+      839,  848,  853,  838,  851,  841,    0,    0,  848,  844,
+      835,  835,  841,  840,  837,    0,    0,    0,    0,  826,
+      839,  838,  837,  834,  822,  453,  463,  834,  836,    0,
+        0,    0,    0,  822,    0,  822,    0,  821,  822,  816,
+      827,    0,    0,    0,  817,    0,  813,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  824,  469,  823,    0,
+        0,  821,  817,    0,    0,    0,  806,  415,  432,  473,
+      811,  807,  813,  803,  801,  815,  799,  799,  813,  801,
+      813,  808,    0,  806,  803,  807,  790,  792,  799,  805,
+
+      800,  799,  786,    0,  788,    0,  787,  791,    0,  785,
+      834,  784,  787,    0,  775,  785,    0,  773,  773,  787,
+        0,  789,    0,  482,  797,  796,  795,  766,  765,    0,
+      783,  782,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  766,  780,  766,  763,    0,    0,  769,  768,
+        0,    0,  766,  758,    0,    0,    0,    0,    0,    0,
+      755,  767,  485,  759,  766,  763,  757,  750,  503,  766,
+      751,  746,  760,  758,    0,    0,  750,  769,  768,  767,
+      738,  737,  301,  481,    0,  750,  753,  751,  739,    0,
+      749,  746,  745,  734,  733,  732,  509,  741,    0,  753,
+
+      752,  751,  722,  721,    0,  736,    0,  734,  729,  515,
+      527,  773,  722,  730,    0,    0,    0,  745,  744,    0,
+      726,  729,  713,  721,  711,  719,  720,  720,  719,  704,
+      717,    0,  718,  706,  705,  701,  725,  724,  723,  694,
+      693,    0,  723,  722,    0,  704,  707,    0,    0,  693,
+      537, 1080,  561,    0,  567,  340, 1080,    0,  690,  689,
+      699,  699,  686,  701,  684,  699,  694,    0,    0,    0,
+        0,  679,    0,    0,    0,  700,  389,  700,  689,  692,
+      676,  675,  685,  685,  675,  529,  589,  474,  683,  671,
+      669,  668,  679,    0,  682,  678,  680,  676,  662,  669,
+
+      669,  671,  667,  669,  667,  667,  654,  653,  664,    0,
+     1080,  531, 1080,  596,    0,  616,  666,  648,  665,  664,
+      647,  635,  643,  633,  634,    0,  627,  646,  635,  607,
+      604,  601,    0,  604,  603,  586,  533,  572,  580,  564,
+      563,    0,    0,  564,    0,  540,  554,  552,  516,  530,
+      505,  486,  453,  450,    0,  461,  443,    0,    0,    0,
+        0,    0,  400,  406,  385,    0,    0,    0,    0,  343,
+      389,  319,  267,  249,  487,  341,  235,    0,  200,    0,
+      507,  498,  184,  157,  150,  564,  559,  136,  565,  591,
+     1080,  593,  550,  112,  594, 1080,  569,  576,    0,  123,
+
+      619,  621,  637, 1080,  638, 1080, 1080,  648,  653,  658,
+      663,  665,  667,  673,  680,  685,  690,  695
     } ;
 
-static yyconst flex_int16_t yy_def[678] =
+static yyconst flex_int16_t yy_def[719] =
     {   0,
-      667,    1,  667,    3,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  668,  667,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  669,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  670,  667,  671,   17,  667,  667,
-      667,  672,   18,  667,  667,  667,  667,  667,  668,  667,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  673,  667,  669,  667,  667,  671,  667,  667,
-      667,  667,  672,  667,  667,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  667,  667,
-      667,  667,  673,  667,  667,  667,  667,  667,  667,  667,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  667,  667,  667,
-      667,  667,  667,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-
-      668,  668,  668,  668,  668,  667,  667,  667,  667,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  667,  667,  667,  667,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-
-      668,  668,  668,  668,  667,  674,  667,  667,  667,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  667,  667,  667,  667,  675,
-      667,  667,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  667,
-      676,  667,  675,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-
-      668,  668,  668,  667,  667,  667,  667,  677,  667,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  677,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
-      668,  668,  668,  668,  668,  668,    0,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667
+      707,    1,  707,    3,  708,  708,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  709,  707,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  710,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  711,  707,
+      712,   19,  707,  707,  707,  713,   20,  707,  707,  707,
+      707,  707,  709,  707,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  714,  707,  710,  707,
+      707,  712,  707,  707,  707,  707,  713,  707,  707,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  707,  707,  707,  707,  714,  707,  707,  707,
+      707,  707,  707,  707,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  707,  707,  707,  707,  707,  707,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  707,
+      707,  707,  707,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  707,  707,  707,
+      707,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+
+      709,  709,  709,  709,  709,  709,  709,  709,  707,  715,
+      707,  707,  707,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  707,
+      707,  707,  707,  716,  707,  707,  707,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  707,  717,  707,  716,  707,  707,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      707,  707,  707,  707,  718,  707,  707,  707,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  718,  707,  707,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  707,  707,  709,  709,  709,
+      709,  709,  709,  709,  709,  709,  709,  709,  709,  707,
+      707,  709,  709,  709,  707,  707,  707,  709,  709,  709,
+      707,  707,  707,  709,  707,  707,  707,  709,  707,  707,
+      707,  707,  707,  709,  707,  707,  707,  707,  709,  707,
+
+      707,  707,  707,  707,  707,  707,    0,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707
     } ;
 
-static yyconst flex_int16_t yy_nxt[1076] =
+static yyconst flex_int16_t yy_nxt[1145] =
     {   0,
-        6,    7,    8,    7,    9,    6,   10,   11,   12,   13,
-       14,   15,   16,   17,   18,   18,   18,   18,   18,   18,
-        6,   19,   20,   21,   22,   22,   22,   22,   22,   22,
-       22,   22,   22,   22,   23,   22,   24,   25,   26,   27,
-       28,   29,   30,   31,   32,   22,   22,   33,   34,   35,
-       36,   37,   38,   39,   40,   41,   42,   43,   22,   22,
-       22,   44,   45,   55,   58,   55,   46,   61,  112,   63,
-       65,   65,   65,   65,   65,   65,   65,   74,   75,   59,
-       62,   64,  113,   47,   48,   49,   50,   49,   48,   48,
-       48,   48,   48,   48,   48,   48,   51,   48,   52,   52,
-
-       52,   52,   52,   52,   53,   48,   48,   48,   54,   54,
-       54,   54,   54,   54,   54,   54,   54,   54,   48,   54,
-       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
-       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
-       54,   54,   54,   54,   54,   48,   67,  142,   68,   68,
-       68,   68,   68,   68,   69,   77,   78,   81,   95,   84,
-       96,   85,  666,   70,   71,   86,   87,  116,   72,   97,
-       88,   98,   82,   83,   91,   70,   71,   89,   92,   99,
-       90,  117,  100,  665,   93,  101,  143,  104,  114,  119,
-       94,  102,  115,   72,   67,  105,   73,   73,   73,   73,
-
-       73,   73,   73,  175,  176,  120,  107,  106,  121,  108,
-      122,   70,   71,  109,  110,  152,  131,  152,  124,  132,
-      123,  111,  135,   70,   71,  125,  126,  136,  133,  138,
-      127,  137,   55,  139,   55,  134,  128,  129,  144,  130,
-       55,  664,  145,  140,  146,  147,  154,  154,  154,  154,
-      154,  154,  154,  156,  157,  159,  160,  667,  187,  236,
-      185,  152,  237,  152,  222,  156,  157,  159,  160,  161,
-      161,  186,  188,  162,  162,  162,  162,  162,  162,  162,
-      223,  204,  667,  148,  197,  209,  663,  198,  199,  205,
-      149,  200,  210,  201,  150,  212,  146,  147,  662,  151,
-
-       67,  231,   69,   69,   69,   69,   69,   69,   69,  213,
-      232,  144,  661,   55,  660,  145,  659,   70,   71,  146,
-      147,  154,  154,  154,  154,  154,  154,  154,  658,   70,
-       71,  246,  247,  260,  261,  148,  290,  291,  292,  317,
-      657,  519,  149,  246,  247,  656,  150,  655,  318,  520,
-      654,  151,  322,  323,  324,  337,  338,  339,  148,  348,
-      349,  350,  356,  357,  358,  149,  360,  361,  362,  150,
-      653,  244,  244,  652,  151,  245,  245,  245,  245,  245,
-      245,  245,  248,  248,  595,  596,  249,  249,  249,  249,
-      249,  249,  249,  162,  162,  162,  162,  162,  162,  162,
-
-      162,  162,  162,  162,  162,  162,  162,  245,  245,  245,
-      245,  245,  245,  245,  547,  548,  250,  245,  245,  245,
-      245,  245,  245,  245,  370,  371,  372,  651,  250,  650,
-      332,  332,  649,  157,  333,  333,  333,  333,  333,  333,
-      333,  430,  431,  432,  648,  157,  249,  249,  249,  249,
-      249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
-      333,  333,  333,  333,  333,  333,  333,  605,  606,  160,
-      333,  333,  333,  333,  333,  333,  333,  421,  422,  423,
-      647,  160,  433,  434,  435,  646,  247,  645,  424,  425,
-      436,  437,  438,  474,  475,  476,  547,  548,  247,  496,
-
-      497,  498,  465,  644,  477,  478,  605,  606,  643,  642,
-      499,  500,  641,  521,  506,  507,  507,  507,  507,  507,
-      507,  522,  533,  534,  535,  547,  548,  640,  550,  639,
-      638,  605,  606,  536,  537,  547,  548,  551,  551,  551,
-      551,  551,  551,  551,  547,  548,  637,  549,  549,  549,
-      549,  549,  549,  550,  547,  548,  581,  582,  582,  582,
-      582,  582,  582,  608,  605,  606,  551,  551,  551,  551,
-      551,  551,  551,  636,  635,  634,  609,  609,  609,  609,
-      609,  609,  609,  605,  606,  633,  632,  631,  608,  605,
-      606,  630,  629,  627,  626,  607,  607,  607,  607,  607,
-
-      607,  609,  609,  609,  609,  609,  609,  609,   79,   79,
-       79,   79,   79,  155,  155,  155,  155,  155,   65,   65,
-      158,  158,  163,  163,  163,  243,  243,  625,  243,  243,
-      243,  243,  243,  549,  549,  549,  624,  623,  622,  549,
-      583,  583,  583,  607,  607,  607,  621,  620,  619,  607,
-      628,  628,  628,  618,  617,  616,  615,  614,  613,  612,
-      611,  610,  604,  603,  602,  601,  600,  599,  598,  597,
-      594,  593,  592,  591,  590,  589,  588,  587,  586,  585,
-      584,  580,  579,  578,  577,  576,  575,  574,  573,  572,
-      571,  570,  569,  568,  567,  566,  565,  564,  563,  562,
-
-      561,  560,  559,  558,  557,  556,  555,  554,  553,  552,
-      546,  545,  544,  543,  542,  541,  540,  539,  538,  532,
-      531,  530,  529,  528,  527,  526,  525,  524,  523,  518,
-      517,  516,  515,  514,  513,  512,  511,  510,  509,  508,
-      505,  504,  503,  502,  501,  495,  494,  493,  492,  491,
-      490,  489,  488,  487,  486,  485,  484,  483,  482,  481,
-      480,  479,  473,  472,  471,  470,  469,  468,  467,  466,
-      465,  464,  463,  462,  461,  460,  459,  458,  457,  456,
-      455,  454,  453,  452,  451,  450,  449,  448,  447,  446,
-      445,  444,  443,  442,  441,  440,  439,  429,  428,  427,
-
-      426,  420,  419,  418,  417,  416,  415,  414,  413,  412,
-      411,  410,  409,  408,  407,  406,  405,  404,  403,  402,
-      401,  400,  399,  398,  397,  396,  395,  394,  393,  392,
-      391,  390,  389,  388,  387,  386,  385,  384,  383,  382,
-      381,  380,  379,  378,  377,  376,  375,  374,  373,  369,
-      368,  367,  366,  365,  364,  363,  359,  355,  354,  353,
-      352,  351,  347,  346,  345,  344,  343,  342,  341,  340,
-      336,  335,  334,  331,  330,  329,  328,  327,  326,  325,
-      321,  320,  319,  316,  315,  314,  313,  312,  311,  310,
-      309,  308,  307,  306,  305,  304,  303,  302,  301,  300,
-
-      299,  298,  297,  296,  295,  294,  293,  289,  288,  287,
-      286,  285,  284,  283,  282,  281,  280,  279,  278,  277,
-      276,  275,  274,  273,  272,  271,  270,  269,  268,  267,
-      266,  265,  264,  263,  262,  259,  258,  257,  256,  255,
-      254,  253,  252,  251,  242,  241,  240,  239,  238,  235,
-      234,  233,  230,  229,  228,  227,  226,  225,  224,  221,
-      220,  219,  218,  217,  216,  215,  214,  211,  208,  207,
-      206,  203,  202,  196,  195,  194,  193,  192,  191,  190,
-      189,  184,  183,  182,  181,  180,  179,  178,  177,  174,
-      173,  172,  171,  170,  169,  168,  167,  166,  165,  164,
-
-      153,   76,  141,  118,  103,   80,   76,   66,   60,   57,
-       56,  667,    5,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667
+        8,    9,   10,    9,   11,    8,   12,   13,    8,    8,
+       14,   15,   16,   17,   18,   19,   20,   20,   20,   20,
+       20,   20,    8,   21,   22,   23,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   25,   24,   26,   27,
+       28,   29,   30,   31,   32,   33,   34,   24,   24,   35,
+       36,   37,   38,   39,   40,   41,   42,   43,   44,   45,
+       24,   24,   24,   46,   47,   59,   62,   59,   48,   65,
+       78,   79,   67,   69,   69,   69,   69,   69,   69,   69,
+       81,   82,   66,   63,   68,  179,  180,   49,   50,   51,
+       52,   51,   50,   50,   50,   50,   50,   50,   50,   50,
+
+       50,   50,   53,   50,   54,   54,   54,   54,   54,   54,
+       55,   50,   50,   50,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   50,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   50,   71,  116,   72,   72,   72,   72,   72,   72,
+       73,   85,   88,  126,   89,  213,  702,  117,   90,   74,
+       75,  699,  214,  127,   76,   91,   86,   87,  120,   92,
+       95,   74,   75,   99,   96,  100,   93,  118,  694,   94,
+       97,  119,  121,  689,  101,  146,   98,  123,  688,   76,
+
+       71,  102,   77,   77,   77,   77,   77,   77,   77,  103,
+      142,  108,  104,  124,  143,  105,  125,   74,   75,  109,
+      111,  106,  707,  112,  144,  128,  687,  113,  114,   74,
+       75,  110,  129,  130,  147,  115,  135,  131,  684,  136,
+      139,  150,  151,  132,  133,  140,  134,  707,  137,  141,
+      148,  156,   59,  156,  149,  138,  158,  158,  158,  158,
+      158,  158,  158,   59,  189,   59,  160,  161,  163,  164,
+      191,  264,  265,  240,  216,  190,  241,  208,  160,  161,
+      163,  164,  152,  201,  192,  209,  202,  203,  217,  153,
+      204,  235,  205,  154,  226,  150,  151,  683,  155,   71,
+
+      236,   73,   73,   73,   73,   73,   73,   73,  680,  148,
+      227,   59,  679,  149,  165,  165,   74,   75,  166,  166,
+      166,  166,  166,  166,  166,  150,  151,  523,   74,   75,
+      156,  321,  156,  250,  251,  524,  152,  294,  295,  296,
+      322,  556,  681,  153,  675,  250,  251,  154,  326,  327,
+      328,  676,  155,  158,  158,  158,  158,  158,  158,  158,
+      341,  342,  343,  352,  353,  354,  152,  360,  361,  362,
+      364,  365,  366,  153,  374,  375,  376,  154,  678,  248,
+      248,  589,  155,  249,  249,  249,  249,  249,  249,  249,
+      252,  252,  590,  682,  253,  253,  253,  253,  253,  253,
+
+      253,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  249,  249,  249,  249,  249,
+      249,  249,  602,  603,  254,  249,  249,  249,  249,  249,
+      249,  249,  434,  435,  436,  677,  254,  674,  336,  336,
+      673,  161,  337,  337,  337,  337,  337,  337,  337,  437,
+      438,  439,  672,  161,  253,  253,  253,  253,  253,  253,
+      253,  253,  253,  253,  253,  253,  253,  253,  337,  337,
+      337,  337,  337,  337,  337,  551,  552,  164,  337,  337,
+      337,  337,  337,  337,  337,  425,  426,  427,  675,  164,
+      440,  441,  442,  671,  251,  676,  428,  429,  478,  479,
+
+      480,  500,  501,  502,  469,  670,  251,  525,  681,  481,
+      482,  669,  503,  504,  668,  526,  551,  552,  510,  511,
+      511,  511,  511,  511,  511,  537,  538,  539,  551,  552,
+      612,  613,  612,  613,  612,  613,  540,  541,  551,  552,
+      667,  685,  555,  555,  555,  555,  555,  555,  555,  686,
+      554,  697,  586,  587,  587,  587,  587,  587,  587,  682,
+      692,  666,  551,  552,  615,  690,  695,  693,  551,  552,
+      697,  665,  664,  691,  696,  554,  553,  553,  553,  553,
+      553,  553,  555,  555,  555,  555,  555,  555,  555,  615,
+      612,  613,  690,  663,  692,  695,  662,  612,  613,  661,
+
+      691,  693,  698,  696,  616,  616,  616,  616,  616,  616,
+      616,  614,  614,  614,  614,  614,  614,  612,  613,  700,
+      703,  698,  705,  660,  659,  658,  657,  701,  704,  656,
+      706,  616,  616,  616,  616,  616,  616,  616,  703,  705,
+      655,  654,  653,  652,  651,  650,  704,  706,   57,   57,
+       57,   57,   57,   57,   57,   57,   83,   83,   83,   83,
+       83,  159,  159,  159,  159,  159,   69,   69,  162,  162,
+      167,  167,  167,  247,  247,  649,  247,  247,  247,  247,
+      247,  553,  553,  553,  648,  647,  646,  553,  588,  588,
+      588,  614,  614,  614,  645,  644,  643,  614,  637,  637,
+
+      637,  642,  641,  640,  639,  638,  636,  635,  634,  633,
+      632,  631,  630,  629,  628,  627,  626,  625,  624,  623,
+      622,  621,  620,  619,  618,  617,  611,  610,  609,  608,
+      607,  606,  605,  604,  601,  600,  599,  598,  597,  596,
+      595,  594,  593,  592,  591,  585,  584,  583,  582,  581,
+      580,  579,  578,  577,  576,  575,  574,  573,  572,  571,
+      570,  569,  568,  567,  566,  565,  564,  563,  562,  561,
+      560,  559,  558,  557,  556,  550,  549,  548,  547,  546,
+      545,  544,  543,  542,  536,  535,  534,  533,  532,  531,
+      530,  529,  528,  527,  522,  521,  520,  519,  518,  517,
+
+      516,  515,  514,  513,  512,  509,  508,  507,  506,  505,
+      499,  498,  497,  496,  495,  494,  493,  492,  491,  490,
+      489,  488,  487,  486,  485,  484,  483,  477,  476,  475,
+      474,  473,  472,  471,  470,  469,  468,  467,  466,  465,
+      464,  463,  462,  461,  460,  459,  458,  457,  456,  455,
+      454,  453,  452,  451,  450,  449,  448,  447,  446,  445,
+      444,  443,  433,  432,  431,  430,  424,  423,  422,  421,
+      420,  419,  418,  417,  416,  415,  414,  413,  412,  411,
+      410,  409,  408,  407,  406,  405,  404,  403,  402,  401,
+      400,  399,  398,  397,  396,  395,  394,  393,  392,  391,
+
+      390,  389,  388,  387,  386,  385,  384,  383,  382,  381,
+      380,  379,  378,  377,  373,  372,  371,  370,  369,  368,
+      367,  363,  359,  358,  357,  356,  355,  351,  350,  349,
+      348,  347,  346,  345,  344,  340,  339,  338,  335,  334,
+      333,  332,  331,  330,  329,  325,  324,  323,  320,  319,
+      318,  317,  316,  315,  314,  313,  312,  311,  310,  309,
+      308,  307,  306,  305,  304,  303,  302,  301,  300,  299,
+      298,  297,  293,  292,  291,  290,  289,  288,  287,  286,
+      285,  284,  283,  282,  281,  280,  279,  278,  277,  276,
+      275,  274,  273,  272,  271,  270,  269,  268,  267,  266,
+
+      263,  262,  261,  260,  259,  258,  257,  256,  255,  246,
+      245,  244,  243,  242,  239,  238,  237,  234,  233,  232,
+      231,  230,  229,  228,  225,  224,  223,  222,  221,  220,
+      219,  218,  215,  212,  211,  210,  207,  206,  200,  199,
+      198,  197,  196,  195,  194,  193,  188,  187,  186,  185,
+      184,  183,  182,  181,  178,  177,  176,  175,  174,  173,
+      172,  171,  170,  169,  168,  157,   80,  145,  122,  107,
+       84,   80,   70,   64,   61,   60,  707,   58,   58,    7,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707
     } ;
 
-static yyconst flex_int16_t yy_chk[1076] =
+static yyconst flex_int16_t yy_chk[1145] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -773,118 +796,126 @@ static yyconst flex_int16_t yy_chk[1076] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    2,    7,   11,    7,    2,   13,   33,   14,
-       15,   15,   15,   15,   15,   15,   15,   19,   19,   11,
-       13,   14,   33,    2,    3,    3,    3,    3,    3,    3,
+        1,    1,    1,    1,    2,    9,   13,    9,    2,   15,
+       21,   21,   16,   17,   17,   17,   17,   17,   17,   17,
+       23,   23,   15,   13,   16,   94,   94,    2,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,   17,   44,   17,   17,
-       17,   17,   17,   17,   17,   21,   21,   24,   28,   25,
-       28,   25,  665,   17,   17,   25,   26,   35,   17,   28,
-       26,   29,   24,   24,   27,   17,   17,   26,   27,   29,
-       26,   35,   29,  664,   27,   29,   44,   31,   34,   37,
-       27,   29,   34,   17,   18,   31,   18,   18,   18,   18,
-
-       18,   18,   18,   90,   90,   37,   32,   31,   37,   32,
-       38,   18,   18,   32,   32,   49,   40,   49,   39,   40,
-       38,   32,   41,   18,   18,   39,   39,   41,   40,   42,
-       39,   41,   55,   42,   55,   40,   39,   39,   45,   39,
-       45,  663,   45,   42,   46,   46,   52,   52,   52,   52,
-       52,   52,   52,   65,   65,   67,   67,   68,  100,  140,
-       99,  152,  140,  152,  128,   65,   65,   67,   67,   70,
-       70,   99,  100,   70,   70,   70,   70,   70,   70,   70,
-      128,  113,   68,   46,  110,  117,  661,  110,  110,  113,
-       46,  110,  117,  110,   46,  119,  145,  145,  659,   46,
-
-       69,  136,   69,   69,   69,   69,   69,   69,   69,  119,
-      136,  144,  658,  144,  657,  144,  652,   69,   69,  146,
-      146,  154,  154,  154,  154,  154,  154,  154,  651,   69,
-       69,  158,  158,  176,  176,  145,  206,  206,  206,  231,
-      650,  479,  145,  158,  158,  643,  145,  642,  231,  479,
-      641,  145,  235,  235,  235,  255,  255,  255,  146,  265,
-      265,  265,  274,  274,  274,  146,  278,  278,  278,  146,
-      640,  156,  156,  639,  146,  156,  156,  156,  156,  156,
-      156,  156,  159,  159,  572,  572,  159,  159,  159,  159,
-      159,  159,  159,  161,  161,  161,  161,  161,  161,  161,
-
-      162,  162,  162,  162,  162,  162,  162,  244,  244,  244,
-      244,  244,  244,  244,  583,  583,  162,  245,  245,  245,
-      245,  245,  245,  245,  286,  286,  286,  638,  162,  637,
-      246,  246,  636,  245,  246,  246,  246,  246,  246,  246,
-      246,  374,  374,  374,  635,  245,  248,  248,  248,  248,
-      248,  248,  248,  249,  249,  249,  249,  249,  249,  249,
-      332,  332,  332,  332,  332,  332,  332,  605,  605,  249,
-      333,  333,  333,  333,  333,  333,  333,  364,  364,  364,
-      633,  249,  375,  375,  375,  630,  333,  629,  364,  364,
-      376,  376,  376,  420,  420,  420,  506,  506,  333,  459,
-
-      459,  459,  465,  627,  420,  420,  628,  628,  626,  625,
-      459,  459,  623,  480,  465,  465,  465,  465,  465,  465,
-      465,  480,  493,  493,  493,  507,  507,  622,  506,  621,
-      620,  581,  581,  493,  493,  549,  549,  507,  507,  507,
-      507,  507,  507,  507,  547,  547,  619,  549,  549,  549,
-      549,  549,  549,  506,  551,  551,  547,  547,  547,  547,
-      547,  547,  547,  581,  582,  582,  551,  551,  551,  551,
-      551,  551,  551,  618,  616,  615,  582,  582,  582,  582,
-      582,  582,  582,  607,  607,  614,  613,  612,  581,  609,
-      609,  611,  610,  602,  601,  607,  607,  607,  607,  607,
-
-      607,  609,  609,  609,  609,  609,  609,  609,  668,  668,
-      668,  668,  668,  669,  669,  669,  669,  669,  670,  670,
-      671,  671,  672,  672,  672,  673,  673,  600,  673,  673,
-      673,  673,  673,  674,  674,  674,  599,  598,  597,  674,
-      675,  675,  675,  676,  676,  676,  596,  595,  594,  676,
-      677,  677,  677,  593,  592,  591,  590,  589,  588,  586,
-      585,  584,  580,  579,  578,  577,  576,  575,  574,  573,
-      571,  567,  562,  561,  560,  559,  558,  557,  556,  555,
-      554,  546,  543,  542,  540,  539,  537,  536,  535,  534,
-      533,  532,  531,  530,  529,  527,  526,  525,  524,  523,
-
-      522,  521,  520,  519,  518,  517,  515,  514,  510,  509,
-      505,  504,  502,  500,  499,  498,  497,  496,  494,  492,
-      491,  490,  489,  488,  487,  485,  484,  483,  482,  478,
-      477,  476,  475,  474,  473,  470,  469,  468,  467,  466,
-      464,  463,  462,  461,  460,  458,  457,  450,  449,  446,
-      445,  442,  441,  440,  439,  428,  427,  425,  424,  423,
-      422,  421,  418,  416,  415,  414,  412,  411,  409,  408,
-      407,  406,  404,  403,  401,  399,  398,  397,  396,  395,
-      394,  393,  392,  391,  390,  388,  387,  386,  385,  384,
-      383,  382,  381,  380,  379,  378,  377,  373,  369,  368,
-
-      365,  363,  353,  351,  347,  346,  345,  344,  342,  340,
-      335,  334,  331,  330,  329,  328,  327,  326,  321,  320,
-      319,  318,  317,  316,  315,  312,  311,  310,  309,  308,
-      307,  306,  305,  304,  303,  302,  301,  300,  299,  298,
-      297,  296,  295,  294,  293,  292,  291,  290,  287,  285,
-      284,  283,  282,  281,  280,  279,  277,  273,  271,  270,
-      269,  268,  264,  263,  262,  261,  260,  259,  258,  257,
-      254,  252,  251,  242,  241,  240,  239,  238,  237,  236,
-      234,  233,  232,  230,  229,  228,  227,  226,  225,  224,
-      223,  222,  221,  220,  219,  218,  217,  216,  215,  214,
-
-      213,  212,  211,  210,  209,  208,  207,  205,  204,  203,
-      202,  201,  200,  199,  198,  197,  196,  195,  194,  193,
-      192,  191,  190,  188,  187,  186,  185,  184,  183,  182,
-      181,  180,  179,  178,  177,  175,  174,  173,  172,  171,
-      170,  169,  168,  166,  151,  150,  149,  148,  141,  139,
-      138,  137,  135,  134,  133,  132,  131,  130,  129,  127,
-      126,  125,  124,  123,  122,  121,  120,  118,  116,  115,
-      114,  112,  111,  109,  108,  106,  105,  104,  103,  102,
-      101,   98,   97,   96,   95,   94,   93,   92,   91,   89,
-       88,   87,   86,   85,   84,   83,   82,   81,   78,   74,
-
-       51,   47,   43,   36,   30,   23,   20,   16,   12,   10,
-        9,    5,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667,  667,  667,  667,  667,  667,
-      667,  667,  667,  667,  667
+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+        3,    3,   19,   35,   19,   19,   19,   19,   19,   19,
+       19,   26,   27,   40,   27,  121,  700,   35,   27,   19,
+       19,  694,  121,   40,   19,   28,   26,   26,   37,   28,
+       29,   19,   19,   30,   29,   30,   28,   36,  688,   28,
+       29,   36,   37,  685,   30,   46,   29,   39,  684,   19,
+
+       20,   31,   20,   20,   20,   20,   20,   20,   20,   31,
+       44,   33,   31,   39,   44,   31,   39,   20,   20,   33,
+       34,   31,   72,   34,   44,   41,  683,   34,   34,   20,
+       20,   33,   41,   41,   46,   34,   42,   41,  679,   42,
+       43,   48,   48,   41,   41,   43,   41,   72,   42,   43,
+       47,   51,   47,   51,   47,   42,   54,   54,   54,   54,
+       54,   54,   54,   59,  103,   59,   69,   69,   71,   71,
+      104,  180,  180,  144,  123,  103,  144,  117,   69,   69,
+       71,   71,   48,  114,  104,  117,  114,  114,  123,   48,
+      114,  140,  114,   48,  132,  149,  149,  677,   48,   73,
+
+      140,   73,   73,   73,   73,   73,   73,   73,  674,  148,
+      132,  148,  673,  148,   74,   74,   73,   73,   74,   74,
+       74,   74,   74,   74,   74,  150,  150,  483,   73,   73,
+      156,  235,  156,  162,  162,  483,  149,  210,  210,  210,
+      235,  556,  676,  149,  670,  162,  162,  149,  239,  239,
+      239,  670,  149,  158,  158,  158,  158,  158,  158,  158,
+      259,  259,  259,  269,  269,  269,  150,  278,  278,  278,
+      282,  282,  282,  150,  290,  290,  290,  150,  672,  160,
+      160,  556,  150,  160,  160,  160,  160,  160,  160,  160,
+      163,  163,  556,  676,  163,  163,  163,  163,  163,  163,
+
+      163,  165,  165,  165,  165,  165,  165,  165,  166,  166,
+      166,  166,  166,  166,  166,  248,  248,  248,  248,  248,
+      248,  248,  577,  577,  166,  249,  249,  249,  249,  249,
+      249,  249,  378,  378,  378,  671,  166,  665,  250,  250,
+      664,  249,  250,  250,  250,  250,  250,  250,  250,  379,
+      379,  379,  663,  249,  252,  252,  252,  252,  252,  252,
+      252,  253,  253,  253,  253,  253,  253,  253,  336,  336,
+      336,  336,  336,  336,  336,  588,  588,  253,  337,  337,
+      337,  337,  337,  337,  337,  368,  368,  368,  675,  253,
+      380,  380,  380,  657,  337,  675,  368,  368,  424,  424,
+
+      424,  463,  463,  463,  469,  656,  337,  484,  681,  424,
+      424,  654,  463,  463,  653,  484,  510,  510,  469,  469,
+      469,  469,  469,  469,  469,  497,  497,  497,  511,  511,
+      586,  586,  612,  612,  637,  637,  497,  497,  551,  551,
+      652,  682,  511,  511,  511,  511,  511,  511,  511,  682,
+      510,  693,  551,  551,  551,  551,  551,  551,  551,  681,
+      687,  651,  553,  553,  586,  686,  689,  687,  555,  555,
+      697,  650,  649,  686,  689,  510,  553,  553,  553,  553,
+      553,  553,  555,  555,  555,  555,  555,  555,  555,  586,
+      587,  587,  690,  648,  692,  695,  647,  614,  614,  646,
+
+      690,  692,  693,  695,  587,  587,  587,  587,  587,  587,
+      587,  614,  614,  614,  614,  614,  614,  616,  616,  698,
+      701,  697,  702,  644,  641,  640,  639,  698,  701,  638,
+      702,  616,  616,  616,  616,  616,  616,  616,  703,  705,
+      636,  635,  634,  632,  631,  630,  703,  705,  708,  708,
+      708,  708,  708,  708,  708,  708,  709,  709,  709,  709,
+      709,  710,  710,  710,  710,  710,  711,  711,  712,  712,
+      713,  713,  713,  714,  714,  629,  714,  714,  714,  714,
+      714,  715,  715,  715,  628,  627,  625,  715,  716,  716,
+      716,  717,  717,  717,  624,  623,  622,  717,  718,  718,
+
+      718,  621,  620,  619,  618,  617,  609,  608,  607,  606,
+      605,  604,  603,  602,  601,  600,  599,  598,  597,  596,
+      595,  593,  592,  591,  590,  589,  585,  584,  583,  582,
+      581,  580,  579,  578,  576,  572,  567,  566,  565,  564,
+      563,  562,  561,  560,  559,  550,  547,  546,  544,  543,
+      541,  540,  539,  538,  537,  536,  535,  534,  533,  531,
+      530,  529,  528,  527,  526,  525,  524,  523,  522,  521,
+      519,  518,  514,  513,  512,  509,  508,  506,  504,  503,
+      502,  501,  500,  498,  496,  495,  494,  493,  492,  491,
+      489,  488,  487,  486,  482,  481,  480,  479,  478,  477,
+
+      474,  473,  472,  471,  470,  468,  467,  466,  465,  464,
+      462,  461,  454,  453,  450,  449,  446,  445,  444,  443,
+      432,  431,  429,  428,  427,  426,  425,  422,  420,  419,
+      418,  416,  415,  413,  412,  411,  410,  408,  407,  405,
+      403,  402,  401,  400,  399,  398,  397,  396,  395,  394,
+      392,  391,  390,  389,  388,  387,  386,  385,  384,  383,
+      382,  381,  377,  373,  372,  369,  367,  357,  355,  351,
+      350,  349,  348,  346,  344,  339,  338,  335,  334,  333,
+      332,  331,  330,  325,  324,  323,  322,  321,  320,  319,
+      316,  315,  314,  313,  312,  311,  310,  309,  308,  307,
+
+      306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
+      296,  295,  294,  291,  289,  288,  287,  286,  285,  284,
+      283,  281,  277,  275,  274,  273,  272,  268,  267,  266,
+      265,  264,  263,  262,  261,  258,  256,  255,  246,  245,
+      244,  243,  242,  241,  240,  238,  237,  236,  234,  233,
+      232,  231,  230,  229,  228,  227,  226,  225,  224,  223,
+      222,  221,  220,  219,  218,  217,  216,  215,  214,  213,
+      212,  211,  209,  208,  207,  206,  205,  204,  203,  202,
+      201,  200,  199,  198,  197,  196,  195,  194,  192,  191,
+      190,  189,  188,  187,  186,  185,  184,  183,  182,  181,
+
+      179,  178,  177,  176,  175,  174,  173,  172,  170,  155,
+      154,  153,  152,  145,  143,  142,  141,  139,  138,  137,
+      136,  135,  134,  133,  131,  130,  129,  128,  127,  126,
+      125,  124,  122,  120,  119,  118,  116,  115,  113,  112,
+      110,  109,  108,  107,  106,  105,  102,  101,  100,   99,
+       98,   97,   96,   95,   93,   92,   91,   90,   89,   88,
+       87,   86,   85,   82,   78,   53,   49,   45,   38,   32,
+       25,   22,   18,   14,   12,   11,    7,    6,    5,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
+      707,  707,  707,  707
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -954,10 +985,11 @@ static yyconst flex_int16_t yy_chk[1076] =
       }                                                                        \
    } while (0)
 
-#line 958 "glsl_lexer.cpp"
+#line 989 "glsl_lexer.cpp"
 
 #define INITIAL 0
 #define PP 1
+#define PRAGMA 2
 
 #define YY_EXTRA_TYPE struct _mesa_glsl_parse_state *
 
@@ -1195,7 +1227,7 @@ YY_DECL
 #line 76 "glsl_lexer.lpp"
 
 
-#line 1199 "glsl_lexer.cpp"
+#line 1231 "glsl_lexer.cpp"
 
     yylval = yylval_param;
 
@@ -1253,13 +1285,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 668 )
+                               if ( yy_current_state >= 708 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 667 );
+               while ( yy_current_state != 707 );
                yy_cp = yyg->yy_last_accepting_cpos;
                yy_current_state = yyg->yy_last_accepting_state;
 
@@ -1349,319 +1381,362 @@ YY_RULE_SETUP
 case 7:
 YY_RULE_SETUP
 #line 113 "glsl_lexer.lpp"
-{ BEGIN PP; return PRAGMA; }
+{
+                                 BEGIN PP;
+                                 return PRAGMA_DEBUG_ON;
+                               }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 114 "glsl_lexer.lpp"
-{ }
+#line 117 "glsl_lexer.lpp"
+{
+                                 BEGIN PP;
+                                 return PRAGMA_DEBUG_OFF;
+                               }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 115 "glsl_lexer.lpp"
-{ }
+#line 121 "glsl_lexer.lpp"
+{
+                                 BEGIN PP;
+                                 return PRAGMA_OPTIMIZE_ON;
+                               }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 116 "glsl_lexer.lpp"
-return COLON;
+#line 125 "glsl_lexer.lpp"
+{
+                                 BEGIN PP;
+                                 return PRAGMA_OPTIMIZE_OFF;
+                               }
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 117 "glsl_lexer.lpp"
+#line 129 "glsl_lexer.lpp"
+{ BEGIN PRAGMA; }
+       YY_BREAK
+case 12:
+/* rule 12 can match eol */
+YY_RULE_SETUP
+#line 131 "glsl_lexer.lpp"
+{ BEGIN 0; yylineno++; yycolumn = 0; }
+       YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 132 "glsl_lexer.lpp"
+{ }
+       YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 134 "glsl_lexer.lpp"
+{ }
+       YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 135 "glsl_lexer.lpp"
+{ }
+       YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 136 "glsl_lexer.lpp"
+return COLON;
+       YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 137 "glsl_lexer.lpp"
 {
                                   yylval->identifier = strdup(yytext);
                                   return IDENTIFIER;
                                }
        YY_BREAK
-case 12:
+case 18:
 YY_RULE_SETUP
-#line 121 "glsl_lexer.lpp"
+#line 141 "glsl_lexer.lpp"
 {
                                    yylval->n = strtol(yytext, NULL, 10);
                                    return INTCONSTANT;
                                }
        YY_BREAK
-case 13:
-/* rule 13 can match eol */
+case 19:
+/* rule 19 can match eol */
 YY_RULE_SETUP
-#line 125 "glsl_lexer.lpp"
+#line 145 "glsl_lexer.lpp"
 { BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
        YY_BREAK
-case 14:
-/* rule 14 can match eol */
+case 20:
+/* rule 20 can match eol */
 YY_RULE_SETUP
-#line 127 "glsl_lexer.lpp"
+#line 147 "glsl_lexer.lpp"
 { yylineno++; yycolumn = 0; }
        YY_BREAK
-case 15:
+case 21:
 YY_RULE_SETUP
-#line 129 "glsl_lexer.lpp"
+#line 149 "glsl_lexer.lpp"
 return ATTRIBUTE;
        YY_BREAK
-case 16:
+case 22:
 YY_RULE_SETUP
-#line 130 "glsl_lexer.lpp"
+#line 150 "glsl_lexer.lpp"
 return CONST_TOK;
        YY_BREAK
-case 17:
+case 23:
 YY_RULE_SETUP
-#line 131 "glsl_lexer.lpp"
+#line 151 "glsl_lexer.lpp"
 return BOOL_TOK;
        YY_BREAK
-case 18:
+case 24:
 YY_RULE_SETUP
-#line 132 "glsl_lexer.lpp"
+#line 152 "glsl_lexer.lpp"
 return FLOAT_TOK;
        YY_BREAK
-case 19:
+case 25:
 YY_RULE_SETUP
-#line 133 "glsl_lexer.lpp"
+#line 153 "glsl_lexer.lpp"
 return INT_TOK;
        YY_BREAK
-case 20:
+case 26:
 YY_RULE_SETUP
-#line 135 "glsl_lexer.lpp"
+#line 155 "glsl_lexer.lpp"
 return BREAK;
        YY_BREAK
-case 21:
+case 27:
 YY_RULE_SETUP
-#line 136 "glsl_lexer.lpp"
+#line 156 "glsl_lexer.lpp"
 return CONTINUE;
        YY_BREAK
-case 22:
+case 28:
 YY_RULE_SETUP
-#line 137 "glsl_lexer.lpp"
+#line 157 "glsl_lexer.lpp"
 return DO;
        YY_BREAK
-case 23:
+case 29:
 YY_RULE_SETUP
-#line 138 "glsl_lexer.lpp"
+#line 158 "glsl_lexer.lpp"
 return WHILE;
        YY_BREAK
-case 24:
+case 30:
 YY_RULE_SETUP
-#line 139 "glsl_lexer.lpp"
+#line 159 "glsl_lexer.lpp"
 return ELSE;
        YY_BREAK
-case 25:
+case 31:
 YY_RULE_SETUP
-#line 140 "glsl_lexer.lpp"
+#line 160 "glsl_lexer.lpp"
 return FOR;
        YY_BREAK
-case 26:
+case 32:
 YY_RULE_SETUP
-#line 141 "glsl_lexer.lpp"
+#line 161 "glsl_lexer.lpp"
 return IF;
        YY_BREAK
-case 27:
+case 33:
 YY_RULE_SETUP
-#line 142 "glsl_lexer.lpp"
+#line 162 "glsl_lexer.lpp"
 return DISCARD;
        YY_BREAK
-case 28:
+case 34:
 YY_RULE_SETUP
-#line 143 "glsl_lexer.lpp"
+#line 163 "glsl_lexer.lpp"
 return RETURN;
        YY_BREAK
-case 29:
+case 35:
 YY_RULE_SETUP
-#line 145 "glsl_lexer.lpp"
+#line 165 "glsl_lexer.lpp"
 return BVEC2;
        YY_BREAK
-case 30:
+case 36:
 YY_RULE_SETUP
-#line 146 "glsl_lexer.lpp"
+#line 166 "glsl_lexer.lpp"
 return BVEC3;
        YY_BREAK
-case 31:
+case 37:
 YY_RULE_SETUP
-#line 147 "glsl_lexer.lpp"
+#line 167 "glsl_lexer.lpp"
 return BVEC4;
        YY_BREAK
-case 32:
+case 38:
 YY_RULE_SETUP
-#line 148 "glsl_lexer.lpp"
+#line 168 "glsl_lexer.lpp"
 return IVEC2;
        YY_BREAK
-case 33:
+case 39:
 YY_RULE_SETUP
-#line 149 "glsl_lexer.lpp"
+#line 169 "glsl_lexer.lpp"
 return IVEC3;
        YY_BREAK
-case 34:
+case 40:
 YY_RULE_SETUP
-#line 150 "glsl_lexer.lpp"
+#line 170 "glsl_lexer.lpp"
 return IVEC4;
        YY_BREAK
-case 35:
+case 41:
 YY_RULE_SETUP
-#line 151 "glsl_lexer.lpp"
+#line 171 "glsl_lexer.lpp"
 return VEC2;
        YY_BREAK
-case 36:
+case 42:
 YY_RULE_SETUP
-#line 152 "glsl_lexer.lpp"
+#line 172 "glsl_lexer.lpp"
 return VEC3;
        YY_BREAK
-case 37:
+case 43:
 YY_RULE_SETUP
-#line 153 "glsl_lexer.lpp"
+#line 173 "glsl_lexer.lpp"
 return VEC4;
        YY_BREAK
-case 38:
+case 44:
 YY_RULE_SETUP
-#line 154 "glsl_lexer.lpp"
+#line 174 "glsl_lexer.lpp"
 return MAT2X2;
        YY_BREAK
-case 39:
+case 45:
 YY_RULE_SETUP
-#line 155 "glsl_lexer.lpp"
+#line 175 "glsl_lexer.lpp"
 return MAT3X3;
        YY_BREAK
-case 40:
+case 46:
 YY_RULE_SETUP
-#line 156 "glsl_lexer.lpp"
+#line 176 "glsl_lexer.lpp"
 return MAT4X4;
        YY_BREAK
-case 41:
+case 47:
 YY_RULE_SETUP
-#line 157 "glsl_lexer.lpp"
+#line 177 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT2X2);
        YY_BREAK
-case 42:
+case 48:
 YY_RULE_SETUP
-#line 158 "glsl_lexer.lpp"
+#line 178 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT2X3);
        YY_BREAK
-case 43:
+case 49:
 YY_RULE_SETUP
-#line 159 "glsl_lexer.lpp"
+#line 179 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT2X4);
        YY_BREAK
-case 44:
+case 50:
 YY_RULE_SETUP
-#line 160 "glsl_lexer.lpp"
+#line 180 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT3X2);
        YY_BREAK
-case 45:
+case 51:
 YY_RULE_SETUP
-#line 161 "glsl_lexer.lpp"
+#line 181 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT3X3);
        YY_BREAK
-case 46:
+case 52:
 YY_RULE_SETUP
-#line 162 "glsl_lexer.lpp"
+#line 182 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT3X4);
        YY_BREAK
-case 47:
+case 53:
 YY_RULE_SETUP
-#line 163 "glsl_lexer.lpp"
+#line 183 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT4X2);
        YY_BREAK
-case 48:
+case 54:
 YY_RULE_SETUP
-#line 164 "glsl_lexer.lpp"
+#line 184 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT4X3);
        YY_BREAK
-case 49:
+case 55:
 YY_RULE_SETUP
-#line 165 "glsl_lexer.lpp"
+#line 185 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MAT4X4);
        YY_BREAK
-case 50:
+case 56:
 YY_RULE_SETUP
-#line 167 "glsl_lexer.lpp"
+#line 187 "glsl_lexer.lpp"
 return IN_TOK;
        YY_BREAK
-case 51:
+case 57:
 YY_RULE_SETUP
-#line 168 "glsl_lexer.lpp"
+#line 188 "glsl_lexer.lpp"
 return OUT_TOK;
        YY_BREAK
-case 52:
+case 58:
 YY_RULE_SETUP
-#line 169 "glsl_lexer.lpp"
+#line 189 "glsl_lexer.lpp"
 return INOUT_TOK;
        YY_BREAK
-case 53:
+case 59:
 YY_RULE_SETUP
-#line 170 "glsl_lexer.lpp"
+#line 190 "glsl_lexer.lpp"
 return UNIFORM;
        YY_BREAK
-case 54:
+case 60:
 YY_RULE_SETUP
-#line 171 "glsl_lexer.lpp"
+#line 191 "glsl_lexer.lpp"
 return VARYING;
        YY_BREAK
-case 55:
+case 61:
 YY_RULE_SETUP
-#line 172 "glsl_lexer.lpp"
+#line 192 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, CENTROID);
        YY_BREAK
-case 56:
+case 62:
 YY_RULE_SETUP
-#line 173 "glsl_lexer.lpp"
+#line 193 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, INVARIANT);
        YY_BREAK
-case 57:
+case 63:
 YY_RULE_SETUP
-#line 175 "glsl_lexer.lpp"
+#line 195 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, FLAT);
        YY_BREAK
-case 58:
+case 64:
 YY_RULE_SETUP
-#line 176 "glsl_lexer.lpp"
+#line 196 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, SMOOTH);
        YY_BREAK
-case 59:
+case 65:
 YY_RULE_SETUP
-#line 177 "glsl_lexer.lpp"
+#line 197 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, NOPERSPECTIVE);
        YY_BREAK
-case 60:
+case 66:
 YY_RULE_SETUP
-#line 179 "glsl_lexer.lpp"
+#line 199 "glsl_lexer.lpp"
 return SAMPLER1D;
        YY_BREAK
-case 61:
+case 67:
 YY_RULE_SETUP
-#line 180 "glsl_lexer.lpp"
+#line 200 "glsl_lexer.lpp"
 return SAMPLER2D;
        YY_BREAK
-case 62:
+case 68:
 YY_RULE_SETUP
-#line 181 "glsl_lexer.lpp"
+#line 201 "glsl_lexer.lpp"
 return SAMPLER3D;
        YY_BREAK
-case 63:
+case 69:
 YY_RULE_SETUP
-#line 182 "glsl_lexer.lpp"
+#line 202 "glsl_lexer.lpp"
 return SAMPLERCUBE;
        YY_BREAK
-case 64:
+case 70:
 YY_RULE_SETUP
-#line 183 "glsl_lexer.lpp"
+#line 203 "glsl_lexer.lpp"
 return SAMPLER1DSHADOW;
        YY_BREAK
-case 65:
+case 71:
 YY_RULE_SETUP
-#line 184 "glsl_lexer.lpp"
+#line 204 "glsl_lexer.lpp"
 return SAMPLER2DSHADOW;
        YY_BREAK
-case 66:
+case 72:
 YY_RULE_SETUP
-#line 186 "glsl_lexer.lpp"
+#line 206 "glsl_lexer.lpp"
 return STRUCT;
        YY_BREAK
-case 67:
+case 73:
 YY_RULE_SETUP
-#line 187 "glsl_lexer.lpp"
+#line 207 "glsl_lexer.lpp"
 return VOID_TOK;
        YY_BREAK
-case 68:
+case 74:
 YY_RULE_SETUP
-#line 189 "glsl_lexer.lpp"
+#line 209 "glsl_lexer.lpp"
 {
                  if ((yyextra->language_version >= 140)
                      || (yyextra->ARB_fragment_coord_conventions_enable)){
@@ -1672,572 +1747,572 @@ YY_RULE_SETUP
                   }
                }
        YY_BREAK
-case 69:
+case 75:
 YY_RULE_SETUP
-#line 199 "glsl_lexer.lpp"
+#line 219 "glsl_lexer.lpp"
 return INC_OP;
        YY_BREAK
-case 70:
+case 76:
 YY_RULE_SETUP
-#line 200 "glsl_lexer.lpp"
+#line 220 "glsl_lexer.lpp"
 return DEC_OP;
        YY_BREAK
-case 71:
+case 77:
 YY_RULE_SETUP
-#line 201 "glsl_lexer.lpp"
+#line 221 "glsl_lexer.lpp"
 return LE_OP;
        YY_BREAK
-case 72:
+case 78:
 YY_RULE_SETUP
-#line 202 "glsl_lexer.lpp"
+#line 222 "glsl_lexer.lpp"
 return GE_OP;
        YY_BREAK
-case 73:
+case 79:
 YY_RULE_SETUP
-#line 203 "glsl_lexer.lpp"
+#line 223 "glsl_lexer.lpp"
 return EQ_OP;
        YY_BREAK
-case 74:
+case 80:
 YY_RULE_SETUP
-#line 204 "glsl_lexer.lpp"
+#line 224 "glsl_lexer.lpp"
 return NE_OP;
        YY_BREAK
-case 75:
+case 81:
 YY_RULE_SETUP
-#line 205 "glsl_lexer.lpp"
+#line 225 "glsl_lexer.lpp"
 return AND_OP;
        YY_BREAK
-case 76:
+case 82:
 YY_RULE_SETUP
-#line 206 "glsl_lexer.lpp"
+#line 226 "glsl_lexer.lpp"
 return OR_OP;
        YY_BREAK
-case 77:
+case 83:
 YY_RULE_SETUP
-#line 207 "glsl_lexer.lpp"
+#line 227 "glsl_lexer.lpp"
 return XOR_OP;
        YY_BREAK
-case 78:
+case 84:
 YY_RULE_SETUP
-#line 209 "glsl_lexer.lpp"
+#line 229 "glsl_lexer.lpp"
 return MUL_ASSIGN;
        YY_BREAK
-case 79:
+case 85:
 YY_RULE_SETUP
-#line 210 "glsl_lexer.lpp"
+#line 230 "glsl_lexer.lpp"
 return DIV_ASSIGN;
        YY_BREAK
-case 80:
+case 86:
 YY_RULE_SETUP
-#line 211 "glsl_lexer.lpp"
+#line 231 "glsl_lexer.lpp"
 return ADD_ASSIGN;
        YY_BREAK
-case 81:
+case 87:
 YY_RULE_SETUP
-#line 212 "glsl_lexer.lpp"
+#line 232 "glsl_lexer.lpp"
 return MOD_ASSIGN;
        YY_BREAK
-case 82:
+case 88:
 YY_RULE_SETUP
-#line 213 "glsl_lexer.lpp"
+#line 233 "glsl_lexer.lpp"
 return LEFT_ASSIGN;
        YY_BREAK
-case 83:
+case 89:
 YY_RULE_SETUP
-#line 214 "glsl_lexer.lpp"
+#line 234 "glsl_lexer.lpp"
 return RIGHT_ASSIGN;
        YY_BREAK
-case 84:
+case 90:
 YY_RULE_SETUP
-#line 215 "glsl_lexer.lpp"
+#line 235 "glsl_lexer.lpp"
 return AND_ASSIGN;
        YY_BREAK
-case 85:
+case 91:
 YY_RULE_SETUP
-#line 216 "glsl_lexer.lpp"
+#line 236 "glsl_lexer.lpp"
 return XOR_ASSIGN;
        YY_BREAK
-case 86:
+case 92:
 YY_RULE_SETUP
-#line 217 "glsl_lexer.lpp"
+#line 237 "glsl_lexer.lpp"
 return OR_ASSIGN;
        YY_BREAK
-case 87:
+case 93:
 YY_RULE_SETUP
-#line 218 "glsl_lexer.lpp"
+#line 238 "glsl_lexer.lpp"
 return SUB_ASSIGN;
        YY_BREAK
-case 88:
+case 94:
 YY_RULE_SETUP
-#line 220 "glsl_lexer.lpp"
+#line 240 "glsl_lexer.lpp"
 {
                            yylval->n = strtol(yytext, NULL, 10);
                            return INTCONSTANT;
                        }
        YY_BREAK
-case 89:
+case 95:
 YY_RULE_SETUP
-#line 224 "glsl_lexer.lpp"
+#line 244 "glsl_lexer.lpp"
 {
                            yylval->n = strtol(yytext + 2, NULL, 16);
                            return INTCONSTANT;
                        }
        YY_BREAK
-case 90:
+case 96:
 YY_RULE_SETUP
-#line 228 "glsl_lexer.lpp"
+#line 248 "glsl_lexer.lpp"
 {
                            yylval->n = strtol(yytext, NULL, 8);
                            return INTCONSTANT;
                        }
        YY_BREAK
-case 91:
+case 97:
 YY_RULE_SETUP
-#line 233 "glsl_lexer.lpp"
+#line 253 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
                        }
        YY_BREAK
-case 92:
+case 98:
 YY_RULE_SETUP
-#line 237 "glsl_lexer.lpp"
+#line 257 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
                        }
        YY_BREAK
-case 93:
+case 99:
 YY_RULE_SETUP
-#line 241 "glsl_lexer.lpp"
+#line 261 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
                        }
        YY_BREAK
-case 94:
+case 100:
 YY_RULE_SETUP
-#line 245 "glsl_lexer.lpp"
+#line 265 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
                        }
        YY_BREAK
-case 95:
+case 101:
 YY_RULE_SETUP
-#line 249 "glsl_lexer.lpp"
+#line 269 "glsl_lexer.lpp"
 {
                            yylval->real = strtod(yytext, NULL);
                            return FLOATCONSTANT;
                        }
        YY_BREAK
-case 96:
+case 102:
 YY_RULE_SETUP
-#line 254 "glsl_lexer.lpp"
+#line 274 "glsl_lexer.lpp"
 {
                            yylval->n = 1;
                            return BOOLCONSTANT;
                        }
        YY_BREAK
-case 97:
+case 103:
 YY_RULE_SETUP
-#line 258 "glsl_lexer.lpp"
+#line 278 "glsl_lexer.lpp"
 {
                            yylval->n = 0;
                            return BOOLCONSTANT;
                        }
        YY_BREAK
 /* Reserved words in GLSL 1.10. */
-case 98:
+case 104:
 YY_RULE_SETUP
-#line 265 "glsl_lexer.lpp"
+#line 285 "glsl_lexer.lpp"
 RESERVED_WORD(999, ASM);
        YY_BREAK
-case 99:
+case 105:
 YY_RULE_SETUP
-#line 266 "glsl_lexer.lpp"
+#line 286 "glsl_lexer.lpp"
 RESERVED_WORD(999, CLASS);
        YY_BREAK
-case 100:
+case 106:
 YY_RULE_SETUP
-#line 267 "glsl_lexer.lpp"
+#line 287 "glsl_lexer.lpp"
 RESERVED_WORD(999, UNION);
        YY_BREAK
-case 101:
+case 107:
 YY_RULE_SETUP
-#line 268 "glsl_lexer.lpp"
+#line 288 "glsl_lexer.lpp"
 RESERVED_WORD(999, ENUM);
        YY_BREAK
-case 102:
+case 108:
 YY_RULE_SETUP
-#line 269 "glsl_lexer.lpp"
+#line 289 "glsl_lexer.lpp"
 RESERVED_WORD(999, TYPEDEF);
        YY_BREAK
-case 103:
+case 109:
 YY_RULE_SETUP
-#line 270 "glsl_lexer.lpp"
+#line 290 "glsl_lexer.lpp"
 RESERVED_WORD(999, TEMPLATE);
        YY_BREAK
-case 104:
+case 110:
 YY_RULE_SETUP
-#line 271 "glsl_lexer.lpp"
+#line 291 "glsl_lexer.lpp"
 RESERVED_WORD(999, THIS);
        YY_BREAK
-case 105:
+case 111:
 YY_RULE_SETUP
-#line 272 "glsl_lexer.lpp"
+#line 292 "glsl_lexer.lpp"
 RESERVED_WORD(999, PACKED_TOK);
        YY_BREAK
-case 106:
+case 112:
 YY_RULE_SETUP
-#line 273 "glsl_lexer.lpp"
+#line 293 "glsl_lexer.lpp"
 RESERVED_WORD(999, GOTO);
        YY_BREAK
-case 107:
+case 113:
 YY_RULE_SETUP
-#line 274 "glsl_lexer.lpp"
+#line 294 "glsl_lexer.lpp"
 RESERVED_WORD(130, SWITCH);
        YY_BREAK
-case 108:
+case 114:
 YY_RULE_SETUP
-#line 275 "glsl_lexer.lpp"
+#line 295 "glsl_lexer.lpp"
 RESERVED_WORD(130, DEFAULT);
        YY_BREAK
-case 109:
+case 115:
 YY_RULE_SETUP
-#line 276 "glsl_lexer.lpp"
+#line 296 "glsl_lexer.lpp"
 RESERVED_WORD(999, INLINE_TOK);
        YY_BREAK
-case 110:
+case 116:
 YY_RULE_SETUP
-#line 277 "glsl_lexer.lpp"
+#line 297 "glsl_lexer.lpp"
 RESERVED_WORD(999, NOINLINE);
        YY_BREAK
-case 111:
+case 117:
 YY_RULE_SETUP
-#line 278 "glsl_lexer.lpp"
+#line 298 "glsl_lexer.lpp"
 RESERVED_WORD(999, VOLATILE);
        YY_BREAK
-case 112:
+case 118:
 YY_RULE_SETUP
-#line 279 "glsl_lexer.lpp"
+#line 299 "glsl_lexer.lpp"
 RESERVED_WORD(999, PUBLIC_TOK);
        YY_BREAK
-case 113:
+case 119:
 YY_RULE_SETUP
-#line 280 "glsl_lexer.lpp"
+#line 300 "glsl_lexer.lpp"
 RESERVED_WORD(999, STATIC);
        YY_BREAK
-case 114:
+case 120:
 YY_RULE_SETUP
-#line 281 "glsl_lexer.lpp"
+#line 301 "glsl_lexer.lpp"
 RESERVED_WORD(999, EXTERN);
        YY_BREAK
-case 115:
+case 121:
 YY_RULE_SETUP
-#line 282 "glsl_lexer.lpp"
+#line 302 "glsl_lexer.lpp"
 RESERVED_WORD(999, EXTERNAL);
        YY_BREAK
-case 116:
+case 122:
 YY_RULE_SETUP
-#line 283 "glsl_lexer.lpp"
+#line 303 "glsl_lexer.lpp"
 RESERVED_WORD(999, INTERFACE);
        YY_BREAK
-case 117:
+case 123:
 YY_RULE_SETUP
-#line 284 "glsl_lexer.lpp"
+#line 304 "glsl_lexer.lpp"
 RESERVED_WORD(999, LONG_TOK);
        YY_BREAK
-case 118:
+case 124:
 YY_RULE_SETUP
-#line 285 "glsl_lexer.lpp"
+#line 305 "glsl_lexer.lpp"
 RESERVED_WORD(999, SHORT_TOK);
        YY_BREAK
-case 119:
+case 125:
 YY_RULE_SETUP
-#line 286 "glsl_lexer.lpp"
+#line 306 "glsl_lexer.lpp"
 RESERVED_WORD(999, DOUBLE_TOK);
        YY_BREAK
-case 120:
+case 126:
 YY_RULE_SETUP
-#line 287 "glsl_lexer.lpp"
+#line 307 "glsl_lexer.lpp"
 RESERVED_WORD(999, HALF);
        YY_BREAK
-case 121:
+case 127:
 YY_RULE_SETUP
-#line 288 "glsl_lexer.lpp"
+#line 308 "glsl_lexer.lpp"
 RESERVED_WORD(999, FIXED_TOK);
        YY_BREAK
-case 122:
+case 128:
 YY_RULE_SETUP
-#line 289 "glsl_lexer.lpp"
+#line 309 "glsl_lexer.lpp"
 RESERVED_WORD(999, UNSIGNED);
        YY_BREAK
-case 123:
+case 129:
 YY_RULE_SETUP
-#line 290 "glsl_lexer.lpp"
+#line 310 "glsl_lexer.lpp"
 RESERVED_WORD(999, INPUT_TOK);
        YY_BREAK
-case 124:
+case 130:
 YY_RULE_SETUP
-#line 291 "glsl_lexer.lpp"
+#line 311 "glsl_lexer.lpp"
 RESERVED_WORD(999, OUTPUT);
        YY_BREAK
-case 125:
+case 131:
 YY_RULE_SETUP
-#line 292 "glsl_lexer.lpp"
+#line 312 "glsl_lexer.lpp"
 RESERVED_WORD(999, HVEC2);
        YY_BREAK
-case 126:
+case 132:
 YY_RULE_SETUP
-#line 293 "glsl_lexer.lpp"
+#line 313 "glsl_lexer.lpp"
 RESERVED_WORD(999, HVEC3);
        YY_BREAK
-case 127:
+case 133:
 YY_RULE_SETUP
-#line 294 "glsl_lexer.lpp"
+#line 314 "glsl_lexer.lpp"
 RESERVED_WORD(999, HVEC4);
        YY_BREAK
-case 128:
+case 134:
 YY_RULE_SETUP
-#line 295 "glsl_lexer.lpp"
+#line 315 "glsl_lexer.lpp"
 RESERVED_WORD(999, DVEC2);
        YY_BREAK
-case 129:
+case 135:
 YY_RULE_SETUP
-#line 296 "glsl_lexer.lpp"
+#line 316 "glsl_lexer.lpp"
 RESERVED_WORD(999, DVEC3);
        YY_BREAK
-case 130:
+case 136:
 YY_RULE_SETUP
-#line 297 "glsl_lexer.lpp"
+#line 317 "glsl_lexer.lpp"
 RESERVED_WORD(999, DVEC4);
        YY_BREAK
-case 131:
+case 137:
 YY_RULE_SETUP
-#line 298 "glsl_lexer.lpp"
+#line 318 "glsl_lexer.lpp"
 RESERVED_WORD(999, FVEC2);
        YY_BREAK
-case 132:
+case 138:
 YY_RULE_SETUP
-#line 299 "glsl_lexer.lpp"
+#line 319 "glsl_lexer.lpp"
 RESERVED_WORD(999, FVEC3);
        YY_BREAK
-case 133:
+case 139:
 YY_RULE_SETUP
-#line 300 "glsl_lexer.lpp"
+#line 320 "glsl_lexer.lpp"
 RESERVED_WORD(999, FVEC4);
        YY_BREAK
-case 134:
+case 140:
 YY_RULE_SETUP
-#line 301 "glsl_lexer.lpp"
+#line 321 "glsl_lexer.lpp"
 return SAMPLER2DRECT;
        YY_BREAK
-case 135:
+case 141:
 YY_RULE_SETUP
-#line 302 "glsl_lexer.lpp"
+#line 322 "glsl_lexer.lpp"
 RESERVED_WORD(999, SAMPLER3DRECT);
        YY_BREAK
-case 136:
+case 142:
 YY_RULE_SETUP
-#line 303 "glsl_lexer.lpp"
+#line 323 "glsl_lexer.lpp"
 return SAMPLER2DRECTSHADOW;
        YY_BREAK
-case 137:
+case 143:
 YY_RULE_SETUP
-#line 304 "glsl_lexer.lpp"
+#line 324 "glsl_lexer.lpp"
 RESERVED_WORD(999, SIZEOF);
        YY_BREAK
-case 138:
+case 144:
 YY_RULE_SETUP
-#line 305 "glsl_lexer.lpp"
+#line 325 "glsl_lexer.lpp"
 RESERVED_WORD(999, CAST);
        YY_BREAK
-case 139:
+case 145:
 YY_RULE_SETUP
-#line 306 "glsl_lexer.lpp"
+#line 326 "glsl_lexer.lpp"
 RESERVED_WORD(999, NAMESPACE);
        YY_BREAK
-case 140:
+case 146:
 YY_RULE_SETUP
-#line 307 "glsl_lexer.lpp"
+#line 327 "glsl_lexer.lpp"
 RESERVED_WORD(999, USING);
        YY_BREAK
 /* Additional reserved words in GLSL 1.20. */
-case 141:
+case 147:
 YY_RULE_SETUP
-#line 310 "glsl_lexer.lpp"
+#line 330 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, LOWP);
        YY_BREAK
-case 142:
+case 148:
 YY_RULE_SETUP
-#line 311 "glsl_lexer.lpp"
+#line 331 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, MEDIUMP);
        YY_BREAK
-case 143:
+case 149:
 YY_RULE_SETUP
-#line 312 "glsl_lexer.lpp"
+#line 332 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, HIGHP);
        YY_BREAK
-case 144:
+case 150:
 YY_RULE_SETUP
-#line 313 "glsl_lexer.lpp"
+#line 333 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(120, PRECISION);
        YY_BREAK
 /* Additional reserved words in GLSL 1.30. */
-case 145:
+case 151:
 YY_RULE_SETUP
-#line 316 "glsl_lexer.lpp"
+#line 336 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, COMMON);
        YY_BREAK
-case 146:
+case 152:
 YY_RULE_SETUP
-#line 317 "glsl_lexer.lpp"
+#line 337 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, PARTITION);
        YY_BREAK
-case 147:
+case 153:
 YY_RULE_SETUP
-#line 318 "glsl_lexer.lpp"
+#line 338 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, ACTIVE);
        YY_BREAK
-case 148:
+case 154:
 YY_RULE_SETUP
-#line 319 "glsl_lexer.lpp"
+#line 339 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, SUPERP);
        YY_BREAK
-case 149:
+case 155:
 YY_RULE_SETUP
-#line 320 "glsl_lexer.lpp"
+#line 340 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, SAMPLERBUFFER);
        YY_BREAK
-case 150:
+case 156:
 YY_RULE_SETUP
-#line 321 "glsl_lexer.lpp"
+#line 341 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, FILTER);
        YY_BREAK
-case 151:
+case 157:
 YY_RULE_SETUP
-#line 322 "glsl_lexer.lpp"
+#line 342 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE1D);
        YY_BREAK
-case 152:
+case 158:
 YY_RULE_SETUP
-#line 323 "glsl_lexer.lpp"
+#line 343 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE2D);
        YY_BREAK
-case 153:
+case 159:
 YY_RULE_SETUP
-#line 324 "glsl_lexer.lpp"
+#line 344 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE3D);
        YY_BREAK
-case 154:
+case 160:
 YY_RULE_SETUP
-#line 325 "glsl_lexer.lpp"
+#line 345 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGECUBE);
        YY_BREAK
-case 155:
+case 161:
 YY_RULE_SETUP
-#line 326 "glsl_lexer.lpp"
+#line 346 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE1D);
        YY_BREAK
-case 156:
+case 162:
 YY_RULE_SETUP
-#line 327 "glsl_lexer.lpp"
+#line 347 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE2D);
        YY_BREAK
-case 157:
+case 163:
 YY_RULE_SETUP
-#line 328 "glsl_lexer.lpp"
+#line 348 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE3D);
        YY_BREAK
-case 158:
+case 164:
 YY_RULE_SETUP
-#line 329 "glsl_lexer.lpp"
+#line 349 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGECUBE);
        YY_BREAK
-case 159:
+case 165:
 YY_RULE_SETUP
-#line 330 "glsl_lexer.lpp"
+#line 350 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE1D);
        YY_BREAK
-case 160:
+case 166:
 YY_RULE_SETUP
-#line 331 "glsl_lexer.lpp"
+#line 351 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE2D);
        YY_BREAK
-case 161:
+case 167:
 YY_RULE_SETUP
-#line 332 "glsl_lexer.lpp"
+#line 352 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE3D);
        YY_BREAK
-case 162:
+case 168:
 YY_RULE_SETUP
-#line 333 "glsl_lexer.lpp"
+#line 353 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGECUBE);
        YY_BREAK
-case 163:
+case 169:
 YY_RULE_SETUP
-#line 334 "glsl_lexer.lpp"
+#line 354 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE1DARRAY);
        YY_BREAK
-case 164:
+case 170:
 YY_RULE_SETUP
-#line 335 "glsl_lexer.lpp"
+#line 355 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE2DARRAY);
        YY_BREAK
-case 165:
+case 171:
 YY_RULE_SETUP
-#line 336 "glsl_lexer.lpp"
+#line 356 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE1DARRAY);
        YY_BREAK
-case 166:
+case 172:
 YY_RULE_SETUP
-#line 337 "glsl_lexer.lpp"
+#line 357 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGE2DARRAY);
        YY_BREAK
-case 167:
+case 173:
 YY_RULE_SETUP
-#line 338 "glsl_lexer.lpp"
+#line 358 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE1DARRAY);
        YY_BREAK
-case 168:
+case 174:
 YY_RULE_SETUP
-#line 339 "glsl_lexer.lpp"
+#line 359 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGE2DARRAY);
        YY_BREAK
-case 169:
+case 175:
 YY_RULE_SETUP
-#line 340 "glsl_lexer.lpp"
+#line 360 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE1DSHADOW);
        YY_BREAK
-case 170:
+case 176:
 YY_RULE_SETUP
-#line 341 "glsl_lexer.lpp"
+#line 361 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGE2DSHADOW);
        YY_BREAK
-case 171:
+case 177:
 YY_RULE_SETUP
-#line 342 "glsl_lexer.lpp"
+#line 362 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IMAGEBUFFER);
        YY_BREAK
-case 172:
+case 178:
 YY_RULE_SETUP
-#line 343 "glsl_lexer.lpp"
+#line 363 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, IIMAGEBUFFER);
        YY_BREAK
-case 173:
+case 179:
 YY_RULE_SETUP
-#line 344 "glsl_lexer.lpp"
+#line 364 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, UIMAGEBUFFER);
        YY_BREAK
-case 174:
+case 180:
 YY_RULE_SETUP
-#line 345 "glsl_lexer.lpp"
+#line 365 "glsl_lexer.lpp"
 TOKEN_OR_IDENTIFIER(130, ROW_MAJOR);
        YY_BREAK
-case 175:
+case 181:
 YY_RULE_SETUP
-#line 347 "glsl_lexer.lpp"
+#line 367 "glsl_lexer.lpp"
 {
                            struct _mesa_glsl_parse_state *state = yyextra;
                            void *ctx = state;  
@@ -2245,19 +2320,20 @@ YY_RULE_SETUP
                            return IDENTIFIER;
                        }
        YY_BREAK
-case 176:
+case 182:
 YY_RULE_SETUP
-#line 354 "glsl_lexer.lpp"
+#line 374 "glsl_lexer.lpp"
 { return yytext[0]; }
        YY_BREAK
-case 177:
+case 183:
 YY_RULE_SETUP
-#line 356 "glsl_lexer.lpp"
+#line 376 "glsl_lexer.lpp"
 ECHO;
        YY_BREAK
-#line 2259 "glsl_lexer.cpp"
+#line 2334 "glsl_lexer.cpp"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(PP):
+case YY_STATE_EOF(PRAGMA):
        yyterminate();
 
        case YY_END_OF_BUFFER:
@@ -2552,7 +2628,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 668 )
+                       if ( yy_current_state >= 708 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2581,11 +2657,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 668 )
+               if ( yy_current_state >= 708 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 667);
+       yy_is_jam = (yy_current_state == 707);
 
        return yy_is_jam ? 0 : yy_current_state;
 }
@@ -3397,7 +3473,7 @@ void _mesa_glsl_free (void * ptr , yyscan_t yyscanner)
 
 #define YYTABLES_NAME "yytables"
 
-#line 356 "glsl_lexer.lpp"
+#line 376 "glsl_lexer.lpp"
 
 
 
index 188d128526dc3b88f6b26c4d2ddeded50c74d461..e36bb03c434d658d81fbb7b211131dac4b41f2ab 100644 (file)
@@ -1,9 +1,10 @@
-/* A Bison parser, made by GNU Bison 2.4.3.  */
+
+/* A Bison parser, made by GNU Bison 2.4.1.  */
 
 /* Skeleton implementation for Bison's Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2009, 2010 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -45,7 +46,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.4.3"
+#define YYBISON_VERSION "2.4.1"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 
 
 /* Line 189 of yacc.c  */
-#line 117 "glsl_parser.cpp"
+#line 118 "glsl_parser.cpp"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
      VERSION = 364,
      EXTENSION = 365,
      LINE = 366,
-     PRAGMA = 367,
-     COLON = 368,
-     EOL = 369,
-     INTERFACE = 370,
-     OUTPUT = 371,
-     LAYOUT_TOK = 372,
-     ASM = 373,
-     CLASS = 374,
-     UNION = 375,
-     ENUM = 376,
-     TYPEDEF = 377,
-     TEMPLATE = 378,
-     THIS = 379,
-     PACKED_TOK = 380,
-     GOTO = 381,
-     INLINE_TOK = 382,
-     NOINLINE = 383,
-     VOLATILE = 384,
-     PUBLIC_TOK = 385,
-     STATIC = 386,
-     EXTERN = 387,
-     EXTERNAL = 388,
-     LONG_TOK = 389,
-     SHORT_TOK = 390,
-     DOUBLE_TOK = 391,
-     HALF = 392,
-     FIXED_TOK = 393,
-     UNSIGNED = 394,
-     INPUT_TOK = 395,
-     OUPTUT = 396,
-     HVEC2 = 397,
-     HVEC3 = 398,
-     HVEC4 = 399,
-     DVEC2 = 400,
-     DVEC3 = 401,
-     DVEC4 = 402,
-     FVEC2 = 403,
-     FVEC3 = 404,
-     FVEC4 = 405,
-     SAMPLER2DRECT = 406,
-     SAMPLER3DRECT = 407,
-     SAMPLER2DRECTSHADOW = 408,
-     SIZEOF = 409,
-     CAST = 410,
-     NAMESPACE = 411,
-     USING = 412,
-     ERROR_TOK = 413,
-     COMMON = 414,
-     PARTITION = 415,
-     ACTIVE = 416,
-     SAMPLERBUFFER = 417,
-     FILTER = 418,
-     IMAGE1D = 419,
-     IMAGE2D = 420,
-     IMAGE3D = 421,
-     IMAGECUBE = 422,
-     IMAGE1DARRAY = 423,
-     IMAGE2DARRAY = 424,
-     IIMAGE1D = 425,
-     IIMAGE2D = 426,
-     IIMAGE3D = 427,
-     IIMAGECUBE = 428,
-     IIMAGE1DARRAY = 429,
-     IIMAGE2DARRAY = 430,
-     UIMAGE1D = 431,
-     UIMAGE2D = 432,
-     UIMAGE3D = 433,
-     UIMAGECUBE = 434,
-     UIMAGE1DARRAY = 435,
-     UIMAGE2DARRAY = 436,
-     IMAGE1DSHADOW = 437,
-     IMAGE2DSHADOW = 438,
-     IMAGEBUFFER = 439,
-     IIMAGEBUFFER = 440,
-     UIMAGEBUFFER = 441,
-     ROW_MAJOR = 442
+     COLON = 367,
+     EOL = 368,
+     INTERFACE = 369,
+     OUTPUT = 370,
+     PRAGMA_DEBUG_ON = 371,
+     PRAGMA_DEBUG_OFF = 372,
+     PRAGMA_OPTIMIZE_ON = 373,
+     PRAGMA_OPTIMIZE_OFF = 374,
+     LAYOUT_TOK = 375,
+     ASM = 376,
+     CLASS = 377,
+     UNION = 378,
+     ENUM = 379,
+     TYPEDEF = 380,
+     TEMPLATE = 381,
+     THIS = 382,
+     PACKED_TOK = 383,
+     GOTO = 384,
+     INLINE_TOK = 385,
+     NOINLINE = 386,
+     VOLATILE = 387,
+     PUBLIC_TOK = 388,
+     STATIC = 389,
+     EXTERN = 390,
+     EXTERNAL = 391,
+     LONG_TOK = 392,
+     SHORT_TOK = 393,
+     DOUBLE_TOK = 394,
+     HALF = 395,
+     FIXED_TOK = 396,
+     UNSIGNED = 397,
+     INPUT_TOK = 398,
+     OUPTUT = 399,
+     HVEC2 = 400,
+     HVEC3 = 401,
+     HVEC4 = 402,
+     DVEC2 = 403,
+     DVEC3 = 404,
+     DVEC4 = 405,
+     FVEC2 = 406,
+     FVEC3 = 407,
+     FVEC4 = 408,
+     SAMPLER2DRECT = 409,
+     SAMPLER3DRECT = 410,
+     SAMPLER2DRECTSHADOW = 411,
+     SIZEOF = 412,
+     CAST = 413,
+     NAMESPACE = 414,
+     USING = 415,
+     ERROR_TOK = 416,
+     COMMON = 417,
+     PARTITION = 418,
+     ACTIVE = 419,
+     SAMPLERBUFFER = 420,
+     FILTER = 421,
+     IMAGE1D = 422,
+     IMAGE2D = 423,
+     IMAGE3D = 424,
+     IMAGECUBE = 425,
+     IMAGE1DARRAY = 426,
+     IMAGE2DARRAY = 427,
+     IIMAGE1D = 428,
+     IIMAGE2D = 429,
+     IIMAGE3D = 430,
+     IIMAGECUBE = 431,
+     IIMAGE1DARRAY = 432,
+     IIMAGE2DARRAY = 433,
+     UIMAGE1D = 434,
+     UIMAGE2D = 435,
+     UIMAGE3D = 436,
+     UIMAGECUBE = 437,
+     UIMAGE1DARRAY = 438,
+     UIMAGE2DARRAY = 439,
+     IMAGE1DSHADOW = 440,
+     IMAGE2DSHADOW = 441,
+     IMAGEBUFFER = 442,
+     IIMAGEBUFFER = 443,
+     UIMAGEBUFFER = 444,
+     ROW_MAJOR = 445
    };
 #endif
 
@@ -366,7 +370,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 370 "glsl_parser.cpp"
+#line 374 "glsl_parser.cpp"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -391,7 +395,7 @@ typedef struct YYLTYPE
 
 
 /* Line 264 of yacc.c  */
-#line 395 "glsl_parser.cpp"
+#line 399 "glsl_parser.cpp"
 
 #ifdef short
 # undef short
@@ -441,7 +445,7 @@ typedef short int yytype_int16;
 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
+# if YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -608,20 +612,20 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  5
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   4096
+#define YYLAST   4115
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  212
+#define YYNTOKENS  215
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  89
+#define YYNNTS  90
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  273
+#define YYNRULES  278
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  410
+#define YYNSTATES  419
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   442
+#define YYMAXUTOK   445
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -632,16 +636,16 @@ static const yytype_uint8 yytranslate[] =
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   196,     2,     2,     2,   200,   203,     2,
-     188,   189,   198,   194,   193,   195,   192,   199,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,   207,   209,
-     201,   208,   202,   206,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,   199,     2,     2,     2,   203,   206,     2,
+     191,   192,   201,   197,   196,   198,   195,   202,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,   210,   212,
+     204,   211,   205,   209,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   190,     2,   191,   204,     2,     2,     2,     2,     2,
+       2,   193,     2,   194,   207,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   210,   205,   211,   197,     2,     2,     2,
+       2,     2,     2,   213,   208,   214,   200,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -673,7 +677,7 @@ static const yytype_uint8 yytranslate[] =
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187
+     185,   186,   187,   188,   189,   190
 };
 
 #if YYDEBUG
@@ -681,151 +685,153 @@ static const yytype_uint8 yytranslate[] =
    YYRHS.  */
 static const yytype_uint16 yyprhs[] =
 {
-       0,     0,     3,     4,     9,    10,    14,    15,    18,    24,
-      26,    29,    31,    33,    35,    37,    39,    41,    45,    47,
-      52,    54,    58,    61,    64,    66,    68,    70,    74,    77,
-      80,    83,    85,    88,    92,    95,    97,    99,   101,   103,
-     106,   109,   112,   114,   116,   118,   120,   122,   126,   130,
-     134,   136,   140,   144,   146,   150,   154,   156,   160,   164,
-     168,   172,   174,   178,   182,   184,   188,   190,   194,   196,
-     200,   202,   206,   208,   212,   214,   218,   220,   226,   228,
-     232,   234,   236,   238,   240,   242,   244,   246,   248,   250,
-     252,   254,   256,   260,   262,   265,   268,   273,   276,   278,
-     280,   283,   287,   291,   294,   300,   304,   307,   311,   314,
-     315,   317,   319,   321,   323,   325,   329,   335,   342,   350,
-     359,   365,   367,   370,   375,   381,   388,   396,   401,   404,
-     406,   409,   410,   412,   417,   419,   423,   425,   427,   429,
-     431,   433,   435,   438,   441,   443,   445,   448,   451,   454,
-     456,   459,   462,   464,   466,   469,   471,   475,   480,   482,
-     484,   486,   488,   490,   492,   494,   496,   498,   500,   502,
-     504,   506,   508,   510,   512,   514,   516,   518,   520,   522,
-     524,   526,   528,   530,   532,   534,   536,   538,   540,   542,
-     544,   546,   548,   550,   552,   554,   556,   558,   560,   562,
-     564,   566,   568,   570,   572,   574,   576,   578,   580,   582,
-     584,   586,   588,   590,   592,   594,   600,   605,   607,   610,
-     614,   616,   620,   622,   627,   629,   631,   633,   635,   637,
-     639,   641,   643,   645,   647,   649,   651,   653,   655,   658,
-     662,   664,   666,   669,   673,   675,   678,   680,   683,   691,
-     697,   703,   711,   713,   718,   724,   728,   731,   737,   745,
-     752,   754,   756,   758,   759,   762,   766,   769,   772,   775,
-     779,   782,   784,   786
+       0,     0,     3,     4,     9,    10,    14,    17,    20,    23,
+      26,    27,    30,    36,    38,    41,    43,    45,    47,    49,
+      51,    53,    57,    59,    64,    66,    70,    73,    76,    78,
+      80,    82,    86,    89,    92,    95,    97,   100,   104,   107,
+     109,   111,   113,   115,   118,   121,   124,   126,   128,   130,
+     132,   134,   138,   142,   146,   148,   152,   156,   158,   162,
+     166,   168,   172,   176,   180,   184,   186,   190,   194,   196,
+     200,   202,   206,   208,   212,   214,   218,   220,   224,   226,
+     230,   232,   238,   240,   244,   246,   248,   250,   252,   254,
+     256,   258,   260,   262,   264,   266,   268,   272,   274,   277,
+     280,   285,   288,   290,   292,   295,   299,   303,   306,   312,
+     316,   319,   323,   326,   327,   329,   331,   333,   335,   337,
+     341,   347,   354,   362,   371,   377,   379,   382,   387,   393,
+     400,   408,   413,   416,   418,   421,   422,   424,   429,   431,
+     435,   437,   439,   441,   443,   445,   447,   450,   453,   455,
+     457,   460,   463,   466,   468,   471,   474,   476,   478,   481,
+     483,   487,   492,   494,   496,   498,   500,   502,   504,   506,
+     508,   510,   512,   514,   516,   518,   520,   522,   524,   526,
+     528,   530,   532,   534,   536,   538,   540,   542,   544,   546,
+     548,   550,   552,   554,   556,   558,   560,   562,   564,   566,
+     568,   570,   572,   574,   576,   578,   580,   582,   584,   586,
+     588,   590,   592,   594,   596,   598,   600,   602,   604,   606,
+     612,   617,   619,   622,   626,   628,   632,   634,   639,   641,
+     643,   645,   647,   649,   651,   653,   655,   657,   659,   661,
+     663,   665,   667,   670,   674,   676,   678,   681,   685,   687,
+     690,   692,   695,   703,   709,   715,   723,   725,   730,   736,
+     740,   743,   749,   757,   764,   766,   768,   770,   771,   774,
+     778,   781,   784,   787,   791,   794,   796,   798,   800
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     213,     0,    -1,    -1,   215,   216,   214,   218,    -1,    -1,
-     109,    78,   114,    -1,    -1,   216,   217,    -1,   110,    76,
-     113,    76,   114,    -1,   299,    -1,   218,   299,    -1,    76,
-      -1,   219,    -1,    78,    -1,    79,    -1,    77,    -1,    80,
-      -1,   188,   246,   189,    -1,   220,    -1,   221,   190,   222,
-     191,    -1,   223,    -1,   221,   192,    76,    -1,   221,    84,
-      -1,   221,    85,    -1,   246,    -1,   224,    -1,   225,    -1,
-     221,   192,   225,    -1,   227,   189,    -1,   226,   189,    -1,
-     228,    74,    -1,   228,    -1,   228,   244,    -1,   227,   193,
-     244,    -1,   229,   188,    -1,   268,    -1,    76,    -1,    81,
-      -1,   221,    -1,    84,   230,    -1,    85,   230,    -1,   231,
-     230,    -1,   194,    -1,   195,    -1,   196,    -1,   197,    -1,
-     230,    -1,   232,   198,   230,    -1,   232,   199,   230,    -1,
-     232,   200,   230,    -1,   232,    -1,   233,   194,   232,    -1,
-     233,   195,   232,    -1,   233,    -1,   234,    82,   233,    -1,
-     234,    83,   233,    -1,   234,    -1,   235,   201,   234,    -1,
-     235,   202,   234,    -1,   235,    86,   234,    -1,   235,    87,
-     234,    -1,   235,    -1,   236,    88,   235,    -1,   236,    89,
-     235,    -1,   236,    -1,   237,   203,   236,    -1,   237,    -1,
-     238,   204,   237,    -1,   238,    -1,   239,   205,   238,    -1,
-     239,    -1,   240,    90,   239,    -1,   240,    -1,   241,    92,
-     240,    -1,   241,    -1,   242,    91,   241,    -1,   242,    -1,
-     242,   206,   246,   207,   244,    -1,   243,    -1,   230,   245,
-     244,    -1,   208,    -1,    93,    -1,    94,    -1,    96,    -1,
-      95,    -1,   102,    -1,    97,    -1,    98,    -1,    99,    -1,
-     100,    -1,   101,    -1,   244,    -1,   246,   193,   244,    -1,
-     243,    -1,   249,   209,    -1,   257,   209,    -1,   108,   272,
-     269,   209,    -1,   250,   189,    -1,   252,    -1,   251,    -1,
-     252,   254,    -1,   251,   193,   254,    -1,   259,    76,   188,
-      -1,   268,    76,    -1,   268,    76,   190,   247,   191,    -1,
-     265,   255,   253,    -1,   255,   253,    -1,   265,   255,   256,
-      -1,   255,   256,    -1,    -1,    33,    -1,    34,    -1,    35,
-      -1,   268,    -1,   258,    -1,   257,   193,    76,    -1,   257,
-     193,    76,   190,   191,    -1,   257,   193,    76,   190,   247,
-     191,    -1,   257,   193,    76,   190,   191,   208,   278,    -1,
-     257,   193,    76,   190,   247,   191,   208,   278,    -1,   257,
-     193,    76,   208,   278,    -1,   259,    -1,   259,    76,    -1,
-     259,    76,   190,   191,    -1,   259,    76,   190,   247,   191,
-      -1,   259,    76,   190,   191,   208,   278,    -1,   259,    76,
-     190,   247,   191,   208,   278,    -1,   259,    76,   208,   278,
-      -1,   103,    76,    -1,   268,    -1,   266,   268,    -1,    -1,
-     261,    -1,   117,   188,   262,   189,    -1,   263,    -1,   262,
-     193,   263,    -1,    76,    -1,    40,    -1,    39,    -1,    38,
-      -1,     4,    -1,   267,    -1,   264,   266,    -1,   103,   266,
-      -1,     4,    -1,     3,    -1,   260,    37,    -1,    32,    37,
-      -1,   260,    33,    -1,    34,    -1,    32,    33,    -1,    32,
-      34,    -1,    36,    -1,   269,    -1,   272,   269,    -1,   270,
-      -1,   270,   190,   191,    -1,   270,   190,   247,   191,    -1,
-     271,    -1,   273,    -1,    76,    -1,    74,    -1,     6,    -1,
-       7,    -1,     8,    -1,     5,    -1,    29,    -1,    30,    -1,
-      31,    -1,    20,    -1,    21,    -1,    22,    -1,    23,    -1,
-      24,    -1,    25,    -1,    26,    -1,    27,    -1,    28,    -1,
-      41,    -1,    42,    -1,    43,    -1,    44,    -1,    45,    -1,
-      46,    -1,    47,    -1,    48,    -1,    49,    -1,    50,    -1,
-      51,    -1,   151,    -1,    52,    -1,    53,    -1,    54,    -1,
-      55,    -1,   153,    -1,    56,    -1,    57,    -1,    58,    -1,
-      59,    -1,    60,    -1,    61,    -1,    62,    -1,    63,    -1,
-      64,    -1,    65,    -1,    66,    -1,    67,    -1,    68,    -1,
-      69,    -1,    70,    -1,    71,    -1,    72,    -1,   106,    -1,
-     105,    -1,   104,    -1,    73,    76,   210,   274,   211,    -1,
-      73,   210,   274,   211,    -1,   275,    -1,   274,   275,    -1,
-     268,   276,   209,    -1,   277,    -1,   276,   193,   277,    -1,
-      76,    -1,    76,   190,   247,   191,    -1,   244,    -1,   248,
-      -1,   281,    -1,   282,    -1,   284,    -1,   283,    -1,   290,
-      -1,   279,    -1,   288,    -1,   289,    -1,   292,    -1,   293,
-      -1,   294,    -1,   298,    -1,   210,   211,    -1,   210,   287,
-     211,    -1,   286,    -1,   283,    -1,   210,   211,    -1,   210,
-     287,   211,    -1,   280,    -1,   287,   280,    -1,   209,    -1,
-     246,   209,    -1,    14,   188,   246,   189,   281,    12,   281,
-      -1,    14,   188,   246,   189,   281,    -1,    14,   188,   246,
-     189,   282,    -1,    14,   188,   246,   189,   281,    12,   282,
-      -1,   246,    -1,   259,    76,   208,   278,    -1,    17,   188,
-     246,   189,   284,    -1,    18,   246,   207,    -1,    19,   207,
-      -1,    75,   188,   291,   189,   285,    -1,    11,   280,    75,
-     188,   246,   189,   209,    -1,    13,   188,   295,   297,   189,
-     285,    -1,   288,    -1,   279,    -1,   291,    -1,    -1,   296,
-     209,    -1,   296,   209,   246,    -1,    10,   209,    -1,     9,
-     209,    -1,    16,   209,    -1,    16,   246,   209,    -1,    15,
-     209,    -1,   300,    -1,   248,    -1,   249,   286,    -1
+     216,     0,    -1,    -1,   218,   220,   217,   222,    -1,    -1,
+     109,    78,   113,    -1,   116,   113,    -1,   117,   113,    -1,
+     118,   113,    -1,   119,   113,    -1,    -1,   220,   221,    -1,
+     110,    76,   112,    76,   113,    -1,   303,    -1,   222,   303,
+      -1,    76,    -1,   223,    -1,    78,    -1,    79,    -1,    77,
+      -1,    80,    -1,   191,   250,   192,    -1,   224,    -1,   225,
+     193,   226,   194,    -1,   227,    -1,   225,   195,    76,    -1,
+     225,    84,    -1,   225,    85,    -1,   250,    -1,   228,    -1,
+     229,    -1,   225,   195,   229,    -1,   231,   192,    -1,   230,
+     192,    -1,   232,    74,    -1,   232,    -1,   232,   248,    -1,
+     231,   196,   248,    -1,   233,   191,    -1,   272,    -1,    76,
+      -1,    81,    -1,   225,    -1,    84,   234,    -1,    85,   234,
+      -1,   235,   234,    -1,   197,    -1,   198,    -1,   199,    -1,
+     200,    -1,   234,    -1,   236,   201,   234,    -1,   236,   202,
+     234,    -1,   236,   203,   234,    -1,   236,    -1,   237,   197,
+     236,    -1,   237,   198,   236,    -1,   237,    -1,   238,    82,
+     237,    -1,   238,    83,   237,    -1,   238,    -1,   239,   204,
+     238,    -1,   239,   205,   238,    -1,   239,    86,   238,    -1,
+     239,    87,   238,    -1,   239,    -1,   240,    88,   239,    -1,
+     240,    89,   239,    -1,   240,    -1,   241,   206,   240,    -1,
+     241,    -1,   242,   207,   241,    -1,   242,    -1,   243,   208,
+     242,    -1,   243,    -1,   244,    90,   243,    -1,   244,    -1,
+     245,    92,   244,    -1,   245,    -1,   246,    91,   245,    -1,
+     246,    -1,   246,   209,   250,   210,   248,    -1,   247,    -1,
+     234,   249,   248,    -1,   211,    -1,    93,    -1,    94,    -1,
+      96,    -1,    95,    -1,   102,    -1,    97,    -1,    98,    -1,
+      99,    -1,   100,    -1,   101,    -1,   248,    -1,   250,   196,
+     248,    -1,   247,    -1,   253,   212,    -1,   261,   212,    -1,
+     108,   276,   273,   212,    -1,   254,   192,    -1,   256,    -1,
+     255,    -1,   256,   258,    -1,   255,   196,   258,    -1,   263,
+      76,   191,    -1,   272,    76,    -1,   272,    76,   193,   251,
+     194,    -1,   269,   259,   257,    -1,   259,   257,    -1,   269,
+     259,   260,    -1,   259,   260,    -1,    -1,    33,    -1,    34,
+      -1,    35,    -1,   272,    -1,   262,    -1,   261,   196,    76,
+      -1,   261,   196,    76,   193,   194,    -1,   261,   196,    76,
+     193,   251,   194,    -1,   261,   196,    76,   193,   194,   211,
+     282,    -1,   261,   196,    76,   193,   251,   194,   211,   282,
+      -1,   261,   196,    76,   211,   282,    -1,   263,    -1,   263,
+      76,    -1,   263,    76,   193,   194,    -1,   263,    76,   193,
+     251,   194,    -1,   263,    76,   193,   194,   211,   282,    -1,
+     263,    76,   193,   251,   194,   211,   282,    -1,   263,    76,
+     211,   282,    -1,   103,    76,    -1,   272,    -1,   270,   272,
+      -1,    -1,   265,    -1,   120,   191,   266,   192,    -1,   267,
+      -1,   266,   196,   267,    -1,    76,    -1,    40,    -1,    39,
+      -1,    38,    -1,     4,    -1,   271,    -1,   268,   270,    -1,
+     103,   270,    -1,     4,    -1,     3,    -1,   264,    37,    -1,
+      32,    37,    -1,   264,    33,    -1,    34,    -1,    32,    33,
+      -1,    32,    34,    -1,    36,    -1,   273,    -1,   276,   273,
+      -1,   274,    -1,   274,   193,   194,    -1,   274,   193,   251,
+     194,    -1,   275,    -1,   277,    -1,    76,    -1,    74,    -1,
+       6,    -1,     7,    -1,     8,    -1,     5,    -1,    29,    -1,
+      30,    -1,    31,    -1,    20,    -1,    21,    -1,    22,    -1,
+      23,    -1,    24,    -1,    25,    -1,    26,    -1,    27,    -1,
+      28,    -1,    41,    -1,    42,    -1,    43,    -1,    44,    -1,
+      45,    -1,    46,    -1,    47,    -1,    48,    -1,    49,    -1,
+      50,    -1,    51,    -1,   154,    -1,    52,    -1,    53,    -1,
+      54,    -1,    55,    -1,   156,    -1,    56,    -1,    57,    -1,
+      58,    -1,    59,    -1,    60,    -1,    61,    -1,    62,    -1,
+      63,    -1,    64,    -1,    65,    -1,    66,    -1,    67,    -1,
+      68,    -1,    69,    -1,    70,    -1,    71,    -1,    72,    -1,
+     106,    -1,   105,    -1,   104,    -1,    73,    76,   213,   278,
+     214,    -1,    73,   213,   278,   214,    -1,   279,    -1,   278,
+     279,    -1,   272,   280,   212,    -1,   281,    -1,   280,   196,
+     281,    -1,    76,    -1,    76,   193,   251,   194,    -1,   248,
+      -1,   252,    -1,   285,    -1,   286,    -1,   288,    -1,   287,
+      -1,   294,    -1,   283,    -1,   292,    -1,   293,    -1,   296,
+      -1,   297,    -1,   298,    -1,   302,    -1,   213,   214,    -1,
+     213,   291,   214,    -1,   290,    -1,   287,    -1,   213,   214,
+      -1,   213,   291,   214,    -1,   284,    -1,   291,   284,    -1,
+     212,    -1,   250,   212,    -1,    14,   191,   250,   192,   285,
+      12,   285,    -1,    14,   191,   250,   192,   285,    -1,    14,
+     191,   250,   192,   286,    -1,    14,   191,   250,   192,   285,
+      12,   286,    -1,   250,    -1,   263,    76,   211,   282,    -1,
+      17,   191,   250,   192,   288,    -1,    18,   250,   210,    -1,
+      19,   210,    -1,    75,   191,   295,   192,   289,    -1,    11,
+     284,    75,   191,   250,   192,   212,    -1,    13,   191,   299,
+     301,   192,   289,    -1,   292,    -1,   283,    -1,   295,    -1,
+      -1,   300,   212,    -1,   300,   212,   250,    -1,    10,   212,
+      -1,     9,   212,    -1,    16,   212,    -1,    16,   250,   212,
+      -1,    15,   212,    -1,   304,    -1,   252,    -1,   219,    -1,
+     253,   290,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   209,   209,   208,   217,   221,   239,   241,   245,   254,
-     262,   273,   277,   284,   291,   298,   305,   312,   319,   320,
-     326,   330,   337,   343,   352,   356,   360,   361,   370,   371,
-     375,   376,   380,   386,   398,   402,   408,   415,   426,   427,
-     433,   439,   449,   450,   451,   452,   456,   457,   463,   469,
-     478,   479,   485,   494,   495,   501,   510,   511,   517,   523,
-     529,   538,   539,   545,   554,   555,   564,   565,   574,   575,
-     584,   585,   594,   595,   604,   605,   614,   615,   624,   625,
-     634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
-     644,   648,   652,   668,   672,   676,   680,   694,   698,   699,
-     703,   708,   716,   727,   737,   752,   759,   764,   775,   787,
-     788,   789,   790,   794,   798,   799,   808,   817,   826,   835,
-     844,   857,   868,   877,   886,   895,   904,   913,   922,   936,
-     943,   954,   955,   959,   966,   967,   974,  1008,  1009,  1010,
-    1014,  1018,  1019,  1023,  1031,  1032,  1033,  1034,  1035,  1036,
-    1037,  1038,  1039,  1043,  1044,  1052,  1053,  1059,  1068,  1074,
-    1080,  1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,
-    1098,  1099,  1100,  1101,  1102,  1103,  1104,  1105,  1106,  1107,
-    1108,  1109,  1110,  1111,  1112,  1113,  1114,  1115,  1116,  1117,
-    1118,  1119,  1120,  1121,  1122,  1123,  1124,  1125,  1126,  1127,
-    1128,  1129,  1130,  1131,  1132,  1133,  1134,  1135,  1136,  1137,
-    1138,  1139,  1143,  1154,  1165,  1179,  1185,  1194,  1199,  1207,
-    1222,  1227,  1235,  1241,  1250,  1254,  1260,  1261,  1265,  1266,
-    1270,  1274,  1275,  1276,  1277,  1278,  1279,  1280,  1284,  1290,
-    1299,  1300,  1304,  1310,  1319,  1329,  1341,  1347,  1356,  1365,
-    1371,  1377,  1386,  1390,  1404,  1408,  1409,  1413,  1420,  1427,
-    1437,  1438,  1442,  1444,  1450,  1455,  1464,  1470,  1476,  1482,
-    1488,  1497,  1498,  1502
+       0,   211,   211,   210,   219,   223,   242,   243,   244,   245,
+     248,   250,   254,   263,   271,   282,   286,   293,   300,   307,
+     314,   321,   328,   329,   335,   339,   346,   352,   361,   365,
+     369,   370,   379,   380,   384,   385,   389,   395,   407,   411,
+     417,   424,   435,   436,   442,   448,   458,   459,   460,   461,
+     465,   466,   472,   478,   487,   488,   494,   503,   504,   510,
+     519,   520,   526,   532,   538,   547,   548,   554,   563,   564,
+     573,   574,   583,   584,   593,   594,   603,   604,   613,   614,
+     623,   624,   633,   634,   643,   644,   645,   646,   647,   648,
+     649,   650,   651,   652,   653,   657,   661,   677,   681,   685,
+     689,   703,   707,   708,   712,   717,   725,   736,   746,   761,
+     768,   773,   784,   796,   797,   798,   799,   803,   807,   808,
+     817,   826,   835,   844,   853,   866,   877,   886,   895,   904,
+     913,   922,   931,   945,   952,   963,   964,   968,   975,   976,
+     983,  1017,  1018,  1019,  1023,  1027,  1028,  1032,  1040,  1041,
+    1042,  1043,  1044,  1045,  1046,  1047,  1048,  1052,  1053,  1061,
+    1062,  1068,  1077,  1083,  1089,  1098,  1099,  1100,  1101,  1102,
+    1103,  1104,  1105,  1106,  1107,  1108,  1109,  1110,  1111,  1112,
+    1113,  1114,  1115,  1116,  1117,  1118,  1119,  1120,  1121,  1122,
+    1123,  1124,  1125,  1126,  1127,  1128,  1129,  1130,  1131,  1132,
+    1133,  1134,  1135,  1136,  1137,  1138,  1139,  1140,  1141,  1142,
+    1143,  1144,  1145,  1146,  1147,  1148,  1152,  1163,  1174,  1188,
+    1194,  1203,  1208,  1216,  1231,  1236,  1244,  1250,  1259,  1263,
+    1269,  1270,  1274,  1275,  1279,  1283,  1284,  1285,  1286,  1287,
+    1288,  1289,  1293,  1299,  1308,  1309,  1313,  1319,  1328,  1338,
+    1350,  1356,  1365,  1374,  1380,  1386,  1395,  1399,  1413,  1417,
+    1418,  1422,  1429,  1436,  1446,  1447,  1451,  1453,  1459,  1464,
+    1473,  1479,  1485,  1491,  1497,  1506,  1507,  1508,  1512
 };
 #endif
 
@@ -854,23 +860,25 @@ static const char *const yytname[] =
   "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
   "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT",
   "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION",
-  "EXTENSION", "LINE", "PRAGMA", "COLON", "EOL", "INTERFACE", "OUTPUT",
-  "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE",
-  "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE",
-  "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK",
-  "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT",
-  "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3",
-  "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW",
-  "SIZEOF", "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON",
-  "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D",
-  "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D",
-  "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY",
-  "UIMAGE1D", "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY",
-  "UIMAGE2DARRAY", "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER",
-  "IIMAGEBUFFER", "UIMAGEBUFFER", "ROW_MAJOR", "'('", "')'", "'['", "']'",
-  "'.'", "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'",
-  "'>'", "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'",
-  "$accept", "translation_unit", "$@1", "version_statement",
+  "EXTENSION", "LINE", "COLON", "EOL", "INTERFACE", "OUTPUT",
+  "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON",
+  "PRAGMA_OPTIMIZE_OFF", "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM",
+  "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK",
+  "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL",
+  "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED",
+  "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3",
+  "DVEC4", "FVEC2", "FVEC3", "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT",
+  "SAMPLER2DRECTSHADOW", "SIZEOF", "CAST", "NAMESPACE", "USING",
+  "ERROR_TOK", "COMMON", "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER",
+  "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY",
+  "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE",
+  "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D",
+  "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", "IMAGE1DSHADOW",
+  "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER",
+  "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'", "','", "'+'", "'-'",
+  "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", "'^'", "'|'",
+  "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept", "translation_unit",
+  "$@1", "version_statement", "pragma_statement",
   "extension_statement_list", "extension_statement",
   "external_declaration_list", "variable_identifier", "primary_expression",
   "postfix_expression", "integer_expression", "function_call",
@@ -930,77 +938,77 @@ static const yytype_uint16 yytoknum[] =
      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
-     435,   436,   437,   438,   439,   440,   441,   442,    40,    41,
-      91,    93,    46,    44,    43,    45,    33,   126,    42,    47,
-      37,    60,    62,    38,    94,   124,    63,    58,    61,    59,
-     123,   125
+     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
+     445,    40,    41,    91,    93,    46,    44,    43,    45,    33,
+     126,    42,    47,    37,    60,    62,    38,    94,   124,    63,
+      58,    61,    59,   123,   125
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   212,   214,   213,   215,   215,   216,   216,   217,   218,
-     218,   219,   220,   220,   220,   220,   220,   220,   221,   221,
-     221,   221,   221,   221,   222,   223,   224,   224,   225,   225,
-     226,   226,   227,   227,   228,   229,   229,   229,   230,   230,
-     230,   230,   231,   231,   231,   231,   232,   232,   232,   232,
-     233,   233,   233,   234,   234,   234,   235,   235,   235,   235,
-     235,   236,   236,   236,   237,   237,   238,   238,   239,   239,
-     240,   240,   241,   241,   242,   242,   243,   243,   244,   244,
-     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-     245,   246,   246,   247,   248,   248,   248,   249,   250,   250,
-     251,   251,   252,   253,   253,   254,   254,   254,   254,   255,
-     255,   255,   255,   256,   257,   257,   257,   257,   257,   257,
-     257,   258,   258,   258,   258,   258,   258,   258,   258,   259,
-     259,   260,   260,   261,   262,   262,   263,   264,   264,   264,
-     265,   266,   266,   266,   267,   267,   267,   267,   267,   267,
-     267,   267,   267,   268,   268,   269,   269,   269,   270,   270,
-     270,   271,   271,   271,   271,   271,   271,   271,   271,   271,
-     271,   271,   271,   271,   271,   271,   271,   271,   271,   271,
-     271,   271,   271,   271,   271,   271,   271,   271,   271,   271,
-     271,   271,   271,   271,   271,   271,   271,   271,   271,   271,
-     271,   271,   271,   271,   271,   271,   271,   271,   271,   271,
-     271,   271,   272,   272,   272,   273,   273,   274,   274,   275,
-     276,   276,   277,   277,   278,   279,   280,   280,   281,   281,
-     282,   283,   283,   283,   283,   283,   283,   283,   284,   284,
-     285,   285,   286,   286,   287,   287,   288,   288,   289,   290,
-     290,   290,   291,   291,   292,   293,   293,   294,   294,   294,
-     295,   295,   296,   296,   297,   297,   298,   298,   298,   298,
-     298,   299,   299,   300
+       0,   215,   217,   216,   218,   218,   219,   219,   219,   219,
+     220,   220,   221,   222,   222,   223,   224,   224,   224,   224,
+     224,   224,   225,   225,   225,   225,   225,   225,   226,   227,
+     228,   228,   229,   229,   230,   230,   231,   231,   232,   233,
+     233,   233,   234,   234,   234,   234,   235,   235,   235,   235,
+     236,   236,   236,   236,   237,   237,   237,   238,   238,   238,
+     239,   239,   239,   239,   239,   240,   240,   240,   241,   241,
+     242,   242,   243,   243,   244,   244,   245,   245,   246,   246,
+     247,   247,   248,   248,   249,   249,   249,   249,   249,   249,
+     249,   249,   249,   249,   249,   250,   250,   251,   252,   252,
+     252,   253,   254,   254,   255,   255,   256,   257,   257,   258,
+     258,   258,   258,   259,   259,   259,   259,   260,   261,   261,
+     261,   261,   261,   261,   261,   262,   262,   262,   262,   262,
+     262,   262,   262,   263,   263,   264,   264,   265,   266,   266,
+     267,   268,   268,   268,   269,   270,   270,   270,   271,   271,
+     271,   271,   271,   271,   271,   271,   271,   272,   272,   273,
+     273,   273,   274,   274,   274,   275,   275,   275,   275,   275,
+     275,   275,   275,   275,   275,   275,   275,   275,   275,   275,
+     275,   275,   275,   275,   275,   275,   275,   275,   275,   275,
+     275,   275,   275,   275,   275,   275,   275,   275,   275,   275,
+     275,   275,   275,   275,   275,   275,   275,   275,   275,   275,
+     275,   275,   275,   275,   275,   275,   276,   276,   276,   277,
+     277,   278,   278,   279,   280,   280,   281,   281,   282,   283,
+     284,   284,   285,   285,   286,   287,   287,   287,   287,   287,
+     287,   287,   288,   288,   289,   289,   290,   290,   291,   291,
+     292,   292,   293,   294,   294,   294,   295,   295,   296,   297,
+     297,   298,   298,   298,   299,   299,   300,   300,   301,   301,
+     302,   302,   302,   302,   302,   303,   303,   303,   304
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const yytype_uint8 yyr2[] =
 {
-       0,     2,     0,     4,     0,     3,     0,     2,     5,     1,
-       2,     1,     1,     1,     1,     1,     1,     3,     1,     4,
-       1,     3,     2,     2,     1,     1,     1,     3,     2,     2,
-       2,     1,     2,     3,     2,     1,     1,     1,     1,     2,
-       2,     2,     1,     1,     1,     1,     1,     3,     3,     3,
-       1,     3,     3,     1,     3,     3,     1,     3,     3,     3,
-       3,     1,     3,     3,     1,     3,     1,     3,     1,     3,
-       1,     3,     1,     3,     1,     3,     1,     5,     1,     3,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     3,     1,     2,     2,     4,     2,     1,     1,
-       2,     3,     3,     2,     5,     3,     2,     3,     2,     0,
-       1,     1,     1,     1,     1,     3,     5,     6,     7,     8,
-       5,     1,     2,     4,     5,     6,     7,     4,     2,     1,
-       2,     0,     1,     4,     1,     3,     1,     1,     1,     1,
-       1,     1,     2,     2,     1,     1,     2,     2,     2,     1,
-       2,     2,     1,     1,     2,     1,     3,     4,     1,     1,
+       0,     2,     0,     4,     0,     3,     2,     2,     2,     2,
+       0,     2,     5,     1,     2,     1,     1,     1,     1,     1,
+       1,     3,     1,     4,     1,     3,     2,     2,     1,     1,
+       1,     3,     2,     2,     2,     1,     2,     3,     2,     1,
+       1,     1,     1,     2,     2,     2,     1,     1,     1,     1,
+       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
+       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
+       1,     3,     1,     3,     1,     3,     1,     3,     1,     3,
+       1,     5,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     3,     1,     2,     2,
+       4,     2,     1,     1,     2,     3,     3,     2,     5,     3,
+       2,     3,     2,     0,     1,     1,     1,     1,     1,     3,
+       5,     6,     7,     8,     5,     1,     2,     4,     5,     6,
+       7,     4,     2,     1,     2,     0,     1,     4,     1,     3,
+       1,     1,     1,     1,     1,     1,     2,     2,     1,     1,
+       2,     2,     2,     1,     2,     2,     1,     1,     2,     1,
+       3,     4,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     5,
+       4,     1,     2,     3,     1,     3,     1,     4,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     5,     4,     1,     2,     3,
-       1,     3,     1,     4,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     2,     3,
-       1,     1,     2,     3,     1,     2,     1,     2,     7,     5,
-       5,     7,     1,     4,     5,     3,     2,     5,     7,     6,
-       1,     1,     1,     0,     2,     3,     2,     2,     2,     3,
-       2,     1,     1,     2
+       1,     1,     2,     3,     1,     1,     2,     3,     1,     2,
+       1,     2,     7,     5,     5,     7,     1,     4,     5,     3,
+       2,     5,     7,     6,     1,     1,     1,     0,     2,     3,
+       2,     2,     2,     3,     2,     1,     1,     1,     2
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1008,628 +1016,621 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       4,     0,     0,     6,     0,     1,     2,     5,     0,   131,
-       7,     0,   145,   144,   165,   162,   163,   164,   169,   170,
-     171,   172,   173,   174,   175,   176,   177,   166,   167,   168,
-       0,   149,   152,   139,   138,   137,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   190,   191,   192,
-     193,   195,   196,   197,   198,   199,   200,   201,   202,   203,
-     204,   205,   206,   207,   208,   209,   210,   211,     0,   161,
-     160,   131,   214,   213,   212,     0,     0,   189,   194,   131,
-     272,     0,     0,    99,   109,     0,   114,   121,     0,   132,
-     131,     0,   141,   129,   153,   155,   158,     0,   159,     9,
-     271,     0,   150,   151,   147,     0,     0,   128,   131,   143,
-       0,     0,    10,    94,   131,   273,    97,   109,   140,   110,
-     111,   112,   100,     0,   109,     0,    95,   122,   148,   146,
-     142,   130,     0,   154,     0,     0,     0,     0,   217,     0,
-     136,     0,   134,     0,     0,   131,     0,     0,     0,     0,
-       0,     0,     0,     0,    11,    15,    13,    14,    16,    37,
-       0,     0,     0,    42,    43,    44,    45,   246,   131,   242,
-      12,    18,    38,    20,    25,    26,     0,     0,    31,     0,
-      46,     0,    50,    53,    56,    61,    64,    66,    68,    70,
-      72,    74,    76,    78,    91,     0,   225,     0,   129,   231,
-     244,   226,   227,   229,   228,   131,   232,   233,   230,   234,
-     235,   236,   237,   101,   106,   108,   113,     0,   115,   102,
-       0,     0,   156,    46,    93,     0,    35,     8,     0,   222,
-       0,   220,   216,   218,    96,   133,     0,   267,   266,     0,
-     131,     0,   270,   268,     0,     0,     0,   256,   131,    39,
-      40,     0,   238,   131,    22,    23,     0,     0,    29,    28,
-       0,   161,    32,    34,    81,    82,    84,    83,    86,    87,
-      88,    89,    90,    85,    80,     0,    41,     0,     0,     0,
+       4,     0,     0,    10,     0,     1,     2,     5,     0,   135,
+      11,     0,   149,   148,   169,   166,   167,   168,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   170,   171,   172,
+       0,   153,   156,   143,   142,   141,   182,   183,   184,   185,
+     186,   187,   188,   189,   190,   191,   192,   194,   195,   196,
+     197,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,     0,   165,
+     164,   135,   218,   217,   216,     0,     0,     0,     0,     0,
+       0,   193,   198,   277,   135,   276,     0,     0,   103,   113,
+       0,   118,   125,     0,   136,   135,     0,   145,   133,   157,
+     159,   162,     0,   163,    13,   275,     0,   154,   155,   151,
+       0,     0,   132,   135,   147,     0,     6,     7,     8,     9,
+       0,    14,    98,   135,   278,   101,   113,   144,   114,   115,
+     116,   104,     0,   113,     0,    99,   126,   152,   150,   146,
+     134,     0,   158,     0,     0,     0,     0,   221,     0,   140,
+       0,   138,     0,     0,   135,     0,     0,     0,     0,     0,
+       0,     0,     0,    15,    19,    17,    18,    20,    41,     0,
+       0,     0,    46,    47,    48,    49,   250,   135,   246,    16,
+      22,    42,    24,    29,    30,     0,     0,    35,     0,    50,
+       0,    54,    57,    60,    65,    68,    70,    72,    74,    76,
+      78,    80,    82,    95,     0,   229,     0,   133,   235,   248,
+     230,   231,   233,   232,   135,   236,   237,   234,   238,   239,
+     240,   241,   105,   110,   112,   117,     0,   119,   106,     0,
+       0,   160,    50,    97,     0,    39,    12,     0,   226,     0,
+     224,   220,   222,   100,   137,     0,   271,   270,     0,   135,
+       0,   274,   272,     0,     0,     0,   260,   135,    43,    44,
+       0,   242,   135,    26,    27,     0,     0,    33,    32,     0,
+     165,    36,    38,    85,    86,    88,    87,    90,    91,    92,
+      93,    94,    89,    84,     0,    45,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   247,   243,
-     245,   103,   105,   107,     0,     0,   123,     0,   224,   127,
-     157,   215,     0,     0,   219,   135,     0,   261,   260,   131,
-       0,   269,     0,   255,   252,     0,     0,    17,   239,     0,
-      24,    21,    27,    33,    79,    47,    48,    49,    51,    52,
-      54,    55,    59,    60,    57,    58,    62,    63,    65,    67,
-      69,    71,    73,    75,     0,    92,     0,   116,     0,   120,
-       0,   124,     0,   221,     0,   262,     0,     0,   131,     0,
-       0,   131,    19,     0,     0,     0,   117,   125,     0,   223,
-       0,   264,   131,   249,   250,   254,     0,     0,   241,   257,
-     240,    77,   104,   118,     0,   126,     0,   265,   259,   131,
-     253,     0,   119,   258,   248,   251,     0,   131,     0,   131
+       0,     0,     0,     0,     0,     0,     0,   251,   247,   249,
+     107,   109,   111,     0,     0,   127,     0,   228,   131,   161,
+     219,     0,     0,   223,   139,     0,   265,   264,   135,     0,
+     273,     0,   259,   256,     0,     0,    21,   243,     0,    28,
+      25,    31,    37,    83,    51,    52,    53,    55,    56,    58,
+      59,    63,    64,    61,    62,    66,    67,    69,    71,    73,
+      75,    77,    79,     0,    96,     0,   120,     0,   124,     0,
+     128,     0,   225,     0,   266,     0,     0,   135,     0,     0,
+     135,    23,     0,     0,     0,   121,   129,     0,   227,     0,
+     268,   135,   253,   254,   258,     0,     0,   245,   261,   244,
+      81,   108,   122,     0,   130,     0,   269,   263,   135,   257,
+       0,   123,   262,   252,   255,     0,   135,     0,   135
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     2,     9,     3,     6,    10,    79,   170,   171,   172,
-     329,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   275,   195,   225,   196,   197,    82,    83,
-      84,   214,   122,   123,   215,    85,    86,    87,    88,    89,
-     141,   142,    90,   124,    91,    92,   226,    94,    95,    96,
-      97,    98,   137,   138,   230,   231,   309,   199,   200,   201,
-     202,   203,   204,   389,   390,   205,   206,   207,   208,   326,
-     209,   210,   211,   319,   366,   367,   212,    99,   100
+      -1,     2,     9,     3,    83,     6,    10,    84,   179,   180,
+     181,   338,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   284,   204,   234,   205,   206,    87,
+      88,    89,   223,   131,   132,   224,    90,    91,    92,    93,
+      94,   150,   151,    95,   133,    96,    97,   235,    99,   100,
+     101,   102,   103,   146,   147,   239,   240,   318,   208,   209,
+     210,   211,   212,   213,   398,   399,   214,   215,   216,   217,
+     335,   218,   219,   220,   328,   375,   376,   221,   104,   105
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -345
+#define YYPACT_NINF -367
 static const yytype_int16 yypact[] =
 {
-     -30,    29,   120,  -345,    15,  -345,    22,  -345,    59,  3758,
-    -345,    25,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,
-    -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,
-      79,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,
-    -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,
-    -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,
-    -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,   -71,  -345,
-    -345,   130,  -345,  -345,  -345,   -79,   -42,  -345,  -345,  3642,
-    -345,    -5,   -38,   -32,     4,  -181,  -345,    87,    62,  -345,
-      27,  3871,  -345,  -345,  -345,   -25,  -345,  3943,  -345,  -345,
-    -345,    91,  -345,  -345,  -345,   -37,  3871,  -345,    27,  -345,
-    3943,    95,  -345,  -345,   398,  -345,  -345,    19,  -345,  -345,
-    -345,  -345,  -345,  3871,     0,   119,  -345,  -128,  -345,  -345,
-    -345,  -345,  2752,  -345,    86,  3871,   131,  2153,  -345,    11,
-    -345,   -87,  -345,    21,    23,  1234,    40,    50,    36,  2379,
-      63,  3286,    43,    64,   -73,  -345,  -345,  -345,  -345,  -345,
-    3286,  3286,  3286,  -345,  -345,  -345,  -345,  -345,   607,  -345,
-    -345,  -345,   -67,  -345,  -345,  -345,    78,   -62,  3464,    80,
-     -53,  3286,    -1,    20,   140,   -80,   136,    66,    67,    65,
-     182,   181,   -82,  -345,  -345,  -173,  -345,   103,   125,  -345,
-    -345,  -345,  -345,  -345,  -345,   816,  -345,  -345,  -345,  -345,
-    -345,  -345,  -345,  -345,  -345,  -345,   198,  3871,  -140,  -345,
-    2930,  3286,  -345,  -345,  -345,    84,  -345,  -345,  2266,   124,
-    -137,  -345,  -345,  -345,  -345,  -345,    95,  -345,  -345,   240,
-    1845,  3286,  -345,  -345,  -118,  3286,  -120,  -345,  2574,  -345,
-    -345,   -48,  -345,  1025,  -345,  -345,  3286,   235,  -345,  -345,
-    3286,   128,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,
-    -345,  -345,  -345,  -345,  -345,  3286,  -345,  3286,  3286,  3286,
-    3286,  3286,  3286,  3286,  3286,  3286,  3286,  3286,  3286,  3286,
-    3286,  3286,  3286,  3286,  3286,  3286,  3286,  3286,  -345,  -345,
-    -345,   129,  -345,  -345,  3108,  3286,   110,   132,  -345,  -345,
-    -345,  -345,  3286,   131,  -345,  -345,   133,  -345,  -345,  2040,
-     -46,  -345,   -36,  -345,   127,   246,   135,  -345,  -345,   134,
-     127,   138,  -345,  -345,  -345,  -345,  -345,  -345,    -1,    -1,
-      20,    20,   140,   140,   140,   140,   -80,   -80,   136,    66,
-      67,    65,   182,   181,  -117,  -345,  3286,   121,   137,  -345,
-    3286,   122,   141,  -345,  3286,  -345,   118,   142,  1234,   123,
-     126,  1442,  -345,  3286,   144,  3286,   139,  -345,  3286,  -345,
-     -35,  3286,  1442,   324,  -345,  -345,  3286,   149,  -345,  -345,
-    -345,  -345,  -345,  -345,  3286,  -345,   143,   127,  -345,  1234,
-    -345,  3286,  -345,  -345,  -345,  -345,   -33,  1650,   326,  1650
+     -88,   -21,    24,  -367,   -53,  -367,    -3,  -367,     9,  3699,
+    -367,     0,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,
+    -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,
+     126,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,
+    -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,
+    -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,
+    -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,   -75,  -367,
+    -367,    29,  -367,  -367,  -367,    92,     4,    12,    20,    26,
+     -49,  -367,  -367,  -367,  3580,  -367,  -197,   -45,   -46,     3,
+    -134,  -367,    82,    71,  -367,    52,  3887,  -367,  -367,  -367,
+     -29,  -367,  3959,  -367,  -367,  -367,    97,  -367,  -367,  -367,
+     -19,  3887,  -367,    52,  -367,  3959,  -367,  -367,  -367,  -367,
+     130,  -367,  -367,   282,  -367,  -367,    47,  -367,  -367,  -367,
+    -367,  -367,  3887,   187,   139,  -367,  -162,  -367,  -367,  -367,
+    -367,  2675,  -367,   105,  3887,   154,  2064,  -367,    23,  -367,
+     -62,  -367,    27,    31,  1130,    50,    53,    33,  2296,    55,
+    3218,    37,    58,   -67,  -367,  -367,  -367,  -367,  -367,  3218,
+    3218,  3218,  -367,  -367,  -367,  -367,  -367,   494,  -367,  -367,
+    -367,   -66,  -367,  -367,  -367,    60,   -56,  3399,    64,   -54,
+    3218,    22,     6,   118,   -84,   120,    51,    54,    56,   168,
+     167,   -83,  -367,  -367,  -103,  -367,    48,    72,  -367,  -367,
+    -367,  -367,  -367,  -367,   706,  -367,  -367,  -367,  -367,  -367,
+    -367,  -367,  -367,  -367,  -367,   186,  3887,  -139,  -367,  2856,
+    3218,  -367,  -367,  -367,    73,  -367,  -367,  2180,    75,  -102,
+    -367,  -367,  -367,  -367,  -367,   130,  -367,  -367,   190,  1750,
+    3218,  -367,  -367,   -90,  3218,  -146,  -367,  2494,  -367,  -367,
+     -48,  -367,   918,  -367,  -367,  3218,  3815,  -367,  -367,  3218,
+      74,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,
+    -367,  -367,  -367,  -367,  3218,  -367,  3218,  3218,  3218,  3218,
+    3218,  3218,  3218,  3218,  3218,  3218,  3218,  3218,  3218,  3218,
+    3218,  3218,  3218,  3218,  3218,  3218,  3218,  -367,  -367,  -367,
+      76,  -367,  -367,  3037,  3218,    59,    77,  -367,  -367,  -367,
+    -367,  3218,   154,  -367,  -367,    81,  -367,  -367,  1948,   -40,
+    -367,   -27,  -367,    78,   197,    83,  -367,  -367,    84,    78,
+      85,  -367,  -367,  -367,  -367,  -367,  -367,    22,    22,     6,
+       6,   118,   118,   118,   118,   -84,   -84,   120,    51,    54,
+      56,   168,   167,   -97,  -367,  3218,    66,    86,  -367,  3218,
+      68,    87,  -367,  3218,  -367,    70,    91,  1130,   102,   106,
+    1341,  -367,  3218,    90,  3218,   153,  -367,  3218,  -367,   -26,
+    3218,  1341,   353,  -367,  -367,  3218,   103,  -367,  -367,  -367,
+    -367,  -367,  -367,  3218,  -367,   157,    78,  -367,  1130,  -367,
+    3218,  -367,  -367,  -367,  -367,   -25,  1552,   358,  1552
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,  -345,
-    -345,  -345,  -345,    85,  -345,  -345,  -345,  -345,  -103,  -345,
-     -54,   -47,   -74,   -40,    53,    54,    52,    55,    56,    51,
-    -345,  -110,  -157,  -345,  -147,  -219,     5,     7,  -345,  -345,
-    -345,   146,   232,   227,   147,  -345,  -345,  -238,  -345,  -345,
-    -345,   117,  -345,  -345,   -39,  -345,    -9,   -14,  -345,  -345,
-     279,  -345,   220,  -124,  -345,    44,  -286,   116,  -134,  -257,
-    -344,  -294,   -11,   -22,   280,   197,   145,  -345,  -345,    47,
-    -345,  -345,  -345,  -345,  -345,  -345,  -345,   288,  -345
+    -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,  -367,
+    -367,  -367,  -367,  -367,   107,  -367,  -367,  -367,  -367,  -111,
+    -367,   -63,   -59,   -82,   -60,    79,    80,    88,    89,    69,
+      93,  -367,  -114,  -153,  -367,  -154,  -224,    11,    14,  -367,
+    -367,  -367,   148,   249,   243,   151,  -367,  -367,  -245,  -367,
+    -367,  -367,   134,  -367,  -367,   -43,  -367,    -9,   -89,  -367,
+    -367,   306,  -367,   239,  -136,  -367,    62,  -241,   143,  -143,
+    -342,  -355,  -366,    15,     5,   308,   218,   149,  -367,  -367,
+      94,  -367,  -367,  -367,  -367,  -367,  -367,  -367,   316,  -367
 };
 
 /* 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 -264
+#define YYTABLE_NINF -268
 static const yytype_int16 yytable[] =
 {
-      93,   307,   244,  -160,   246,   105,   284,   285,   118,   295,
-     325,   239,   125,   233,    80,   251,    81,   254,   255,   359,
-     297,   262,   224,   118,   384,    72,    73,    74,   126,   223,
-      12,    13,   109,   119,   120,   121,   298,   119,   120,   121,
-     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
-     304,   130,   119,   120,   121,   405,   313,   249,   250,    30,
-     219,    31,   220,    32,   308,    33,    34,    35,   305,   109,
-      93,   300,   314,   297,   377,   297,   297,   388,   276,     1,
-     221,   325,   131,   133,    80,   358,    81,   323,   388,   393,
-     373,   321,   395,   362,   320,   128,   139,   136,   322,   129,
-     400,   324,   235,   333,   233,   198,   236,     4,   402,   330,
-     224,   383,   102,   103,   216,   -36,   104,   223,   334,   300,
-       5,   286,   287,   256,   296,   257,   136,   259,   136,     7,
-     108,   260,     8,    12,    13,    11,   198,   374,   101,   106,
-     355,   327,   404,   368,    76,   297,   111,   297,   308,   354,
-     408,   116,   404,   369,   396,   274,   407,   297,   297,   198,
-     297,   117,    30,   127,    31,   132,    32,   134,    33,    34,
-      35,   140,   324,   135,   335,   336,   337,   223,   223,   223,
-     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
-     223,   223,   223,   -98,   224,   218,   198,   277,   278,   279,
-     227,   223,   224,   308,   113,   114,   107,   229,   216,   223,
-     342,   343,   344,   345,   280,   281,   391,   380,   308,   136,
-     234,   308,   282,   283,   288,   289,   338,   339,   240,   308,
-     237,   198,   238,   108,   397,   340,   341,   308,   241,   198,
-      14,    15,    16,    17,   198,   242,   224,    76,   346,   347,
-     247,   245,   248,   223,   406,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,   258,   263,   290,
-     292,   291,   293,   294,   301,   310,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-     198,   331,   113,   -35,   312,   316,   159,   -30,   360,   356,
-     297,   364,   370,   361,   371,   372,   -36,   381,   376,   375,
-     378,   382,   379,   168,   386,   392,   399,   401,   409,    72,
-      73,    74,   332,   348,   350,   349,   353,   394,   351,   213,
-     352,   217,   403,   315,   110,   228,   317,   363,   385,   198,
-     398,   115,   198,   302,   303,   253,   365,   112,     0,     0,
-       0,     0,     0,   198,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   318,    77,     0,    78,     0,
-     198,     0,     0,     0,     0,     0,     0,     0,   198,     0,
-     198,    12,    13,    14,    15,    16,    17,   143,   144,   145,
-       0,   146,   147,   148,   149,   150,   151,   152,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,     0,    31,     0,    32,     0,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,   153,   154,   155,   156,   157,   158,   159,
-       0,     0,   160,   161,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    71,    72,    73,    74,     0,    75,     0,     0,     0,
-       0,     0,     0,     0,     0,    76,     0,     0,     0,     0,
+      98,   110,   293,   294,   253,   316,   255,   127,   304,  -164,
+     242,   248,   334,   142,   397,   122,   123,   260,   263,   264,
+      85,     1,   393,    86,     5,   397,   148,   233,   114,   228,
+     232,   229,    12,    13,   271,   392,   128,   129,   130,   273,
+     274,   275,   276,   277,   278,   279,   280,   281,   282,   230,
+     306,   127,   139,   414,   313,    12,    13,     4,   258,   259,
+       7,    30,   134,    31,   332,    32,   413,    33,    34,    35,
+     114,   309,   314,   368,   417,    98,   413,   317,   135,   285,
+     128,   129,   130,   334,    30,    11,    31,   140,    32,   367,
+      33,    34,    35,   306,   322,    85,   329,   371,    86,   306,
+     331,   242,   145,   333,   137,   112,   306,     8,   138,   307,
+     323,   339,   106,   382,   207,   233,   342,   116,   232,   309,
+     295,   296,   330,   225,   -40,   117,   305,   265,   386,   266,
+     244,   343,   113,   118,   245,   145,   268,   145,   111,   119,
+     269,   383,   120,   402,   336,   207,   404,   125,   306,    80,
+     126,   363,   377,   364,   409,   113,   306,   283,   136,   107,
+     108,   317,   411,   109,   141,   378,   405,   416,   207,   306,
+     306,   306,    80,   143,   333,   344,   345,   346,   232,   232,
+     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
+     232,   232,   232,   232,   144,  -102,    72,    73,    74,   233,
+     291,   292,   232,   289,   290,   207,   149,   233,   297,   298,
+     232,   351,   352,   353,   354,   227,   317,   225,   236,   389,
+     128,   129,   130,   286,   287,   288,   347,   348,   145,   400,
+     238,   317,   349,   350,   317,   243,   406,   355,   356,   246,
+     207,   249,   317,   247,   250,   251,   254,   256,   207,   257,
+     317,   233,   267,   207,   232,   272,   415,   299,   302,   303,
+     122,   300,   310,   -39,   301,   325,   -34,   319,   321,   365,
+     369,   370,   373,   379,   306,   380,   -40,   384,   381,   387,
+     385,   388,   390,   391,   401,    12,    13,    14,    15,    16,
+      17,   152,   153,   154,   410,   155,   156,   157,   158,   159,
+     160,   161,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,   177,    31,   395,    32,   207,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,   162,   163,   164,
+     165,   166,   167,   168,   403,   408,   169,   170,   207,   412,
+     418,   207,   361,   341,   311,   222,   226,   312,   357,   324,
+     358,   115,   207,   237,   372,    71,    72,    73,    74,   359,
+      75,   360,   326,   394,   124,   262,   407,   362,   327,   207,
+     121,     0,    80,     0,     0,     0,     0,   207,     0,   207,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   374,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    81,     0,    82,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
-       0,    78,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
-       0,     0,   163,   164,   165,   166,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   167,   168,   169,
-      12,    13,    14,    15,    16,    17,   143,   144,   145,     0,
-     146,   147,   148,   149,   150,   151,   152,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-       0,    31,     0,    32,     0,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,   153,   154,   155,   156,   157,   158,   159,     0,
-       0,   160,   161,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   171,     0,     0,     0,     0,     0,   172,
+     173,   174,   175,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   176,   177,   178,    12,    13,    14,
+      15,    16,    17,   152,   153,   154,     0,   155,   156,   157,
+     158,   159,   160,   161,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,     0,    31,     0,
+      32,     0,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,   162,
+     163,   164,   165,   166,   167,   168,     0,     0,   169,   170,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      71,    72,    73,    74,     0,    75,     0,     0,     0,     0,
-       0,     0,     0,     0,    76,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    71,    72,    73,
+      74,     0,    75,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    80,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    77,     0,
-      78,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
+      82,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   162,     0,     0,     0,     0,
-       0,   163,   164,   165,   166,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   167,   168,   252,    12,
-      13,    14,    15,    16,    17,   143,   144,   145,     0,   146,
-     147,   148,   149,   150,   151,   152,    18,    19,    20,    21,
+       0,     0,     0,     0,     0,   171,     0,     0,     0,     0,
+       0,   172,   173,   174,   175,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   176,   177,   261,    12,
+      13,    14,    15,    16,    17,   152,   153,   154,     0,   155,
+     156,   157,   158,   159,   160,   161,    18,    19,    20,    21,
       22,    23,    24,    25,    26,    27,    28,    29,    30,     0,
       31,     0,    32,     0,    33,    34,    35,    36,    37,    38,
       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,   153,   154,   155,   156,   157,   158,   159,     0,     0,
-     160,   161,     0,     0,     0,     0,     0,     0,     0,     0,
+      69,   162,   163,   164,   165,   166,   167,   168,     0,     0,
+     169,   170,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,    71,
       72,    73,    74,     0,    75,     0,     0,     0,     0,     0,
-       0,     0,     0,    76,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    80,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    77,     0,    78,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      81,     0,    82,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   162,     0,     0,     0,     0,     0,
-     163,   164,   165,   166,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   167,   168,   299,    12,    13,
-      14,    15,    16,    17,   143,   144,   145,     0,   146,   147,
-     148,   149,   150,   151,   152,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,     0,    31,
-       0,    32,     0,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-     153,   154,   155,   156,   157,   158,   159,     0,     0,   160,
-     161,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    71,    72,
-      73,    74,     0,    75,     0,     0,     0,     0,     0,     0,
-       0,     0,    76,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   171,     0,     0,
+       0,     0,     0,   172,   173,   174,   175,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   176,   177,
+     308,    12,    13,    14,    15,    16,    17,   152,   153,   154,
+       0,   155,   156,   157,   158,   159,   160,   161,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,     0,    31,     0,    32,     0,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+      67,    68,    69,   162,   163,   164,   165,   166,   167,   168,
+       0,     0,   169,   170,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    71,    72,    73,    74,     0,    75,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    80,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    77,     0,    78,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    81,     0,    82,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   162,     0,     0,     0,     0,     0,   163,
-     164,   165,   166,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   167,   168,   328,    12,    13,    14,
-      15,    16,    17,   143,   144,   145,     0,   146,   147,   148,
-     149,   150,   151,   152,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,     0,    31,     0,
-      32,     0,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,   153,
-     154,   155,   156,   157,   158,   159,     0,     0,   160,   161,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    71,    72,    73,
-      74,     0,    75,     0,     0,     0,     0,     0,     0,     0,
-       0,    76,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   171,
+       0,     0,     0,     0,     0,   172,   173,   174,   175,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     176,   177,   337,    12,    13,    14,    15,    16,    17,   152,
+     153,   154,     0,   155,   156,   157,   158,   159,   160,   161,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,     0,    31,     0,    32,     0,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,   162,   163,   164,   165,   166,
+     167,   168,     0,     0,   169,   170,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    71,    72,    73,    74,     0,    75,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      80,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    77,     0,    78,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    81,     0,    82,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   162,     0,     0,     0,     0,     0,   163,   164,
-     165,   166,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   167,   168,    12,    13,    14,    15,    16,
-      17,   143,   144,   145,     0,   146,   387,   148,   149,   150,
-     151,   152,    18,    19,    20,    21,    22,    23,    24,    25,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   171,     0,     0,     0,     0,     0,   172,   173,   174,
+     175,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   176,   177,    12,    13,    14,    15,    16,    17,
+     152,   153,   154,     0,   155,   396,   157,   158,   159,   160,
+     161,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,     0,    31,     0,    32,     0,    33,
+      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,   162,   163,   164,   165,
+     166,   167,   168,     0,     0,   169,   170,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    71,    72,    73,    74,     0,    75,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    80,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    81,     0,    82,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   171,     0,     0,     0,     0,     0,   172,   173,
+     174,   175,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   176,   123,    12,    13,    14,    15,    16,
+      17,   152,   153,   154,     0,   155,   396,   157,   158,   159,
+     160,   161,    18,    19,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,    30,     0,    31,     0,    32,     0,
       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,   153,   154,   155,
-     156,   157,   158,   159,     0,     0,   160,   161,     0,     0,
+      63,    64,    65,    66,    67,    68,    69,   162,   163,   164,
+     165,   166,   167,   168,     0,     0,   169,   170,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,    71,    72,    73,    74,     0,
-      75,     0,     0,     0,     0,     0,     0,     0,     0,    76,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      75,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    80,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    77,     0,    78,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    81,     0,    82,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     162,     0,     0,     0,     0,     0,   163,   164,   165,   166,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   167,   114,    12,    13,    14,    15,    16,    17,   143,
-     144,   145,     0,   146,   387,   148,   149,   150,   151,   152,
+       0,     0,     0,   171,     0,     0,     0,     0,     0,   172,
+     173,   174,   175,    12,    13,    14,    15,    16,    17,     0,
+       0,     0,     0,     0,   176,   177,     0,     0,     0,     0,
       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
       28,    29,    30,     0,    31,     0,    32,     0,    33,    34,
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,   153,   154,   155,   156,   157,
-     158,   159,     0,     0,   160,   161,     0,     0,     0,     0,
+      65,    66,    67,    68,    69,     0,   163,   164,   165,   166,
+     167,   168,     0,     0,   169,   170,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    71,    72,    73,    74,     0,    75,     0,
-       0,     0,     0,     0,     0,     0,     0,    76,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      80,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    77,     0,    78,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    81,     0,    82,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   162,     0,
-       0,     0,     0,     0,   163,   164,   165,   166,    12,    13,
-      14,    15,    16,    17,     0,     0,     0,     0,     0,   167,
-     168,     0,     0,     0,     0,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,     0,    31,
-       0,    32,     0,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-       0,   154,   155,   156,   157,   158,   159,     0,     0,   160,
-     161,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    71,    72,
-      73,    74,     0,    75,     0,     0,     0,     0,     0,     0,
-       0,     0,    76,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    77,     0,    78,     0,
+       0,   171,     0,     0,     0,     0,     0,   172,   173,   174,
+     175,    12,    13,    14,    15,    16,    17,     0,     0,     0,
+       0,     0,   176,     0,     0,     0,     0,     0,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,     0,    31,     0,    32,     0,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+      67,    68,    69,     0,   163,   164,   165,   166,   167,   168,
+       0,     0,   169,   170,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   113,    72,    73,    74,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    80,    14,
+      15,    16,    17,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,     0,     0,     0,     0,
+       0,     0,    81,     0,    82,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,   171,
+      70,     0,     0,     0,     0,   172,   173,   174,   175,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    -267,     0,     0,     0,     0,     0,     0,     0,    72,    73,
+      74,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    14,    15,    16,    17,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   162,     0,     0,     0,     0,     0,   163,
-     164,   165,   166,    12,    13,    14,    15,    16,    17,     0,
-       0,     0,     0,     0,   167,     0,     0,     0,     0,     0,
       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,     0,    31,     0,    32,     0,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      28,    29,     0,     0,     0,     0,     0,     0,    81,     0,
+      82,    36,    37,    38,    39,    40,    41,    42,    43,    44,
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,     0,   154,   155,   156,   157,
-     158,   159,     0,     0,   160,   161,     0,     0,     0,     0,
+      65,    66,    67,    68,    69,     0,    70,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   108,    72,    73,    74,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    76,    14,    15,
-      16,    17,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,     0,     0,     0,     0,     0,
-       0,    77,     0,    78,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,   162,    70,
-       0,     0,     0,     0,   163,   164,   165,   166,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  -263,
-       0,     0,     0,     0,     0,     0,     0,    72,    73,    74,
+       0,     0,     0,     0,     0,     0,     0,     0,   241,     0,
+       0,     0,     0,     0,    72,    73,    74,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,    14,    15,    16,    17,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,    18,    19,    20,    21,
       22,    23,    24,    25,    26,    27,    28,    29,     0,     0,
-       0,     0,     0,     0,    77,     0,    78,    36,    37,    38,
+       0,     0,     0,     0,    81,     0,    82,    36,    37,    38,
       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,     0,    70,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   232,     0,     0,     0,     0,     0,
+      69,     0,   163,   164,   165,   166,   167,   168,     0,     0,
+     169,   170,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   320,     0,     0,     0,     0,     0,
       72,    73,    74,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    14,    15,    16,    17,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,     0,     0,     0,     0,     0,     0,    77,     0,    78,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,     0,   154,   155,   156,   157,   158,
-     159,     0,     0,   160,   161,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   311,     0,     0,
-       0,     0,     0,    72,    73,    74,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      77,     0,    78,     0,     0,     0,     0,     0,     0,     0,
+      81,     0,    82,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   162,     0,     0,
-       0,     0,     0,   163,   164,   165,   166,    12,    13,    14,
-      15,    16,    17,     0,     0,     0,     0,     0,   243,     0,
+       0,     0,     0,     0,     0,     0,     0,   171,     0,     0,
+       0,     0,     0,   172,   173,   174,   175,    12,    13,    14,
+      15,    16,    17,     0,     0,     0,     0,     0,   252,     0,
        0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    30,     0,    31,     0,
       32,     0,    33,    34,    35,    36,    37,    38,    39,    40,
       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
       61,    62,    63,    64,    65,    66,    67,    68,    69,     0,
-     154,   155,   156,   157,   158,   159,     0,     0,   160,   161,
+     163,   164,   165,   166,   167,   168,     0,     0,   169,   170,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   108,    72,    73,
+       0,     0,     0,     0,     0,     0,     0,   113,    72,    73,
       74,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    76,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    80,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    77,     0,    78,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    81,     0,
+      82,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    14,    15,    16,
-      17,     0,   162,     0,     0,     0,     0,     0,   163,   164,
-     165,   166,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,     0,   154,   155,
-     156,   157,   158,   159,     0,     0,   160,   161,     0,     0,
+      14,    15,    16,    17,     0,   171,     0,     0,     0,     0,
+       0,   172,   173,   174,   175,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+       0,   163,   164,   165,   166,   167,   168,     0,     0,   169,
+     170,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    72,
+      73,    74,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
+       0,    82,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    72,    73,    74,     0,
+       0,    14,    15,    16,    17,     0,   171,     0,     0,   231,
+       0,     0,   172,   173,   174,   175,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,     0,   163,   164,   165,   166,   167,   168,     0,     0,
+     169,   170,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      72,    73,    74,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    77,     0,    78,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      81,     0,    82,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    14,    15,    16,    17,     0,
-     162,     0,     0,   222,     0,     0,   163,   164,   165,   166,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,     0,   154,   155,   156,   157,
-     158,   159,     0,     0,   160,   161,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    72,    73,    74,     0,     0,     0,
+       0,     0,    14,    15,    16,    17,     0,   171,     0,     0,
+     315,     0,     0,   172,   173,   174,   175,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,     0,   163,   164,   165,   166,   167,   168,     0,
+       0,   169,   170,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    72,    73,    74,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    77,     0,    78,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    81,     0,    82,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    14,    15,    16,    17,     0,   162,     0,
-       0,   306,     0,     0,   163,   164,   165,   166,    18,    19,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    14,    15,    16,    17,     0,   171,     0,
+       0,   366,     0,     0,   172,   173,   174,   175,    18,    19,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,     0,   154,   155,   156,   157,   158,   159,
-       0,     0,   160,   161,     0,     0,     0,     0,     0,     0,
+      67,    68,    69,     0,   163,   164,   165,   166,   167,   168,
+       0,     0,   169,   170,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,    72,    73,    74,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
-       0,    78,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    14,    15,    16,    17,     0,   162,     0,     0,   357,
-       0,     0,   163,   164,   165,   166,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,     0,   154,   155,   156,   157,   158,   159,     0,     0,
-     160,   161,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      72,    73,    74,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    81,     0,    82,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    77,     0,    78,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    14,
-      15,    16,    17,     0,   162,     0,     0,     0,     0,     0,
-     163,   164,   165,   166,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,   261,     0,
-     154,   155,   156,   157,   158,   159,     0,     0,   160,   161,
+       0,     0,     0,     0,    14,    15,    16,    17,     0,   171,
+       0,     0,     0,     0,     0,   172,   173,   174,   175,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,   270,     0,   163,   164,   165,   166,   167,
+     168,     0,     0,   169,   170,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    72,    73,
-      74,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    72,    73,    74,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    77,     0,    78,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    81,     0,    82,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    -3,     0,     0,    12,    13,    14,    15,    16,
-      17,     0,   162,     0,     0,     0,     0,     0,   163,   164,
-     165,   166,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,     0,    31,     0,    32,     0,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,     0,    70,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      -3,     0,     0,    12,    13,    14,    15,    16,    17,     0,
+     171,     0,     0,     0,     0,     0,   172,   173,   174,   175,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,     0,    31,     0,    32,     0,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,     0,    70,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    71,    72,    73,    74,     0,
-      75,     0,     0,     0,     0,     0,     0,     0,     0,    76,
-       0,    12,    13,    14,    15,    16,    17,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,     0,    31,    77,    32,    78,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,     0,    70,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    71,    72,    73,    74,     0,    75,     0,
+       0,     0,     0,     0,     0,     0,    76,    77,    78,    79,
+      80,     0,    12,    13,    14,    15,    16,    17,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,     0,    31,    81,    32,    82,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,     0,    70,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    71,    72,    73,    74,     0,    75,     0,     0,     0,
-       0,     0,     0,     0,     0,    76,    14,    15,    16,    17,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,     0,     0,     0,     0,     0,     0,    77,
-       0,    78,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,     0,    70,    14,    15,
-      16,    17,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    72,    73,    74,     0,     0,
-       0,     0,     0,     0,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,     0,    70,
-       0,     0,    77,     0,    78,     0,     0,     0,     0,     0,
+       0,     0,    71,    72,    73,    74,     0,    75,     0,     0,
+       0,     0,     0,     0,     0,    76,    77,    78,    79,    80,
+      14,    15,    16,    17,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,     0,     0,     0,
+       0,     0,     0,    81,     0,    82,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+       0,   340,    14,    15,    16,    17,   168,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    72,
+      73,    74,     0,     0,     0,     0,     0,     0,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,     0,    70,    14,    15,    16,    17,     0,    81,
+       0,    82,     0,     0,     0,     0,     0,     0,     0,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    72,    73,    74,     0,     0,     0,     0,     0,     0,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,     0,    70,     0,     0,     0,     0,
+       0,    81,     0,    82,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    77,     0,    78
+       0,     0,     0,    81,     0,    82
 };
 
 static const yytype_int16 yycheck[] =
 {
-       9,   220,   149,    76,   151,    76,    86,    87,     4,    91,
-     248,   145,   193,   137,     9,   162,     9,    84,    85,   305,
-     193,   178,   132,     4,   368,   104,   105,   106,   209,   132,
-       3,     4,    71,    33,    34,    35,   209,    33,    34,    35,
-      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-     190,    90,    33,    34,    35,   399,   193,   160,   161,    32,
-     188,    34,   190,    36,   221,    38,    39,    40,   208,   108,
-      79,   205,   209,   193,   360,   193,   193,   371,   181,   109,
-     208,   319,    91,    97,    79,   304,    79,   207,   382,   375,
-     207,   209,   378,   312,   241,    33,   110,   106,   245,    37,
-     386,   248,   189,   260,   228,   114,   193,    78,   394,   256,
-     220,   368,    33,    34,   123,   188,    37,   220,   275,   253,
-       0,   201,   202,   190,   206,   192,   135,   189,   137,   114,
-     103,   193,   110,     3,     4,    76,   145,   356,   113,   210,
-     297,   189,   399,   189,   117,   193,   188,   193,   305,   296,
-     407,   189,   409,   189,   189,   208,   189,   193,   193,   168,
-     193,   193,    32,    76,    34,   190,    36,    76,    38,    39,
-      40,    76,   319,   210,   277,   278,   279,   280,   281,   282,
-     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
-     293,   294,   295,   189,   304,    76,   205,   198,   199,   200,
-     114,   304,   312,   360,   209,   210,    76,    76,   217,   312,
-     284,   285,   286,   287,   194,   195,   373,   364,   375,   228,
-     209,   378,    82,    83,    88,    89,   280,   281,   188,   386,
-     209,   240,   209,   103,   381,   282,   283,   394,   188,   248,
-       5,     6,     7,     8,   253,   209,   356,   117,   288,   289,
-     207,   188,   188,   356,   401,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,   189,   188,   203,
-     205,   204,    90,    92,    76,   191,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-     319,    76,   209,   188,   190,    75,    81,   189,   208,   190,
-     193,   188,    76,   191,   189,   191,   188,   209,   191,   208,
-     208,   189,   191,   210,   208,   191,    12,   188,    12,   104,
-     105,   106,   257,   290,   292,   291,   295,   208,   293,   117,
-     294,   124,   209,   236,    75,   135,   240,   313,   369,   368,
-     382,    81,   371,   217,   217,   168,   319,    79,    -1,    -1,
-      -1,    -1,    -1,   382,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   240,   151,    -1,   153,    -1,
-     399,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   407,    -1,
-     409,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      -1,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    -1,    34,    -1,    36,    -1,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   103,   104,   105,   106,    -1,   108,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,
+       9,    76,    86,    87,   158,   229,   160,     4,    91,    76,
+     146,   154,   257,   102,   380,   212,   213,   171,    84,    85,
+       9,   109,   377,     9,     0,   391,   115,   141,    71,   191,
+     141,   193,     3,     4,   187,   377,    33,    34,    35,    93,
+      94,    95,    96,    97,    98,    99,   100,   101,   102,   211,
+     196,     4,    95,   408,   193,     3,     4,    78,   169,   170,
+     113,    32,   196,    34,   210,    36,   408,    38,    39,    40,
+     113,   214,   211,   314,   416,    84,   418,   230,   212,   190,
+      33,    34,    35,   328,    32,    76,    34,    96,    36,   313,
+      38,    39,    40,   196,   196,    84,   250,   321,    84,   196,
+     254,   237,   111,   257,    33,    76,   196,   110,    37,   212,
+     212,   265,   112,   210,   123,   229,   269,   113,   229,   262,
+     204,   205,   212,   132,   191,   113,   209,   193,   369,   195,
+     192,   284,   103,   113,   196,   144,   192,   146,   213,   113,
+     196,   365,   191,   384,   192,   154,   387,   192,   196,   120,
+     196,   305,   192,   306,   395,   103,   196,   211,    76,    33,
+      34,   314,   403,    37,   193,   192,   192,   192,   177,   196,
+     196,   196,   120,    76,   328,   286,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,   303,   304,   213,   192,   104,   105,   106,   313,
+      82,    83,   313,   197,   198,   214,    76,   321,    88,    89,
+     321,   293,   294,   295,   296,    76,   369,   226,   113,   373,
+      33,    34,    35,   201,   202,   203,   289,   290,   237,   382,
+      76,   384,   291,   292,   387,   212,   390,   297,   298,   212,
+     249,   191,   395,   212,   191,   212,   191,   210,   257,   191,
+     403,   365,   192,   262,   365,   191,   410,   206,    90,    92,
+     212,   207,    76,   191,   208,    75,   192,   194,   193,   193,
+     211,   194,   191,    76,   196,   192,   191,   211,   194,   211,
+     194,   194,   212,   192,   194,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,   191,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,   213,    34,   211,    36,   328,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,   211,    12,    84,    85,   377,   212,
+      12,   380,   303,   266,   226,   126,   133,   226,   299,   245,
+     300,    75,   391,   144,   322,   103,   104,   105,   106,   301,
+     108,   302,   249,   378,    86,   177,   391,   304,   249,   408,
+      84,    -1,   120,    -1,    -1,    -1,    -1,   416,    -1,   418,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,
-      -1,   153,    -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,   188,    -1,    -1,    -1,
-      -1,    -1,   194,   195,   196,   197,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,   210,   211,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      -1,    34,    -1,    36,    -1,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    -1,
-      -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,   197,
+     198,   199,   200,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   212,   213,   214,     3,     4,     5,
+       6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    -1,    34,    -1,
+      36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     103,   104,   105,   106,    -1,   108,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
+     106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   120,    -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,   151,    -1,
-     153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
+     156,    -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,   188,    -1,    -1,    -1,    -1,
-      -1,   194,   195,   196,   197,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   209,   210,   211,     3,
+      -1,    -1,    -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,
+      -1,   197,   198,   199,   200,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   212,   213,   214,     3,
        4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
@@ -1641,58 +1642,80 @@ static const yytype_int16 yycheck[] =
       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
      104,   105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   120,    -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,   151,    -1,   153,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     154,    -1,   156,    -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,   188,    -1,    -1,    -1,    -1,    -1,
-     194,   195,   196,   197,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   209,   210,   211,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
-      -1,    36,    -1,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    -1,    -1,    84,
-      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
-     105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,    -1,
+      -1,    -1,    -1,   197,   198,   199,   200,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   212,   213,
+     214,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+      -1,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    -1,    34,    -1,    36,    -1,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   103,   104,   105,   106,    -1,   108,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   154,    -1,   156,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,   194,
-     195,   196,   197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   209,   210,   211,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    -1,    34,    -1,
-      36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
-     106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,
+      -1,    -1,    -1,    -1,    -1,   197,   198,   199,   200,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     212,   213,   214,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    -1,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    -1,    34,    -1,    36,    -1,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   103,   104,   105,   106,    -1,   108,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     120,    -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,   154,    -1,   156,    -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,   191,    -1,    -1,    -1,    -1,    -1,   197,   198,   199,
+     200,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   212,   213,     3,     4,     5,     6,     7,     8,
+       9,    10,    11,    -1,    13,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    -1,    34,    -1,    36,    -1,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   103,   104,   105,   106,    -1,   108,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   151,    -1,   153,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,   194,   195,
-     196,   197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   209,   210,     3,     4,     5,     6,     7,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,   197,   198,
+     199,   200,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   212,   213,     3,     4,     5,     6,     7,
        8,     9,    10,    11,    -1,    13,    14,    15,    16,    17,
       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
       28,    29,    30,    31,    32,    -1,    34,    -1,    36,    -1,
@@ -1703,110 +1726,91 @@ static const yytype_int16 yycheck[] =
       78,    79,    80,    81,    -1,    -1,    84,    85,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,   103,   104,   105,   106,    -1,
-     108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   120,    -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,   151,    -1,   153,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    -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,
-     188,    -1,    -1,    -1,    -1,    -1,   194,   195,   196,   197,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   209,   210,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    -1,    13,    14,    15,    16,    17,    18,    19,
+      -1,    -1,    -1,   191,    -1,    -1,    -1,    -1,    -1,   197,
+     198,   199,   200,     3,     4,     5,     6,     7,     8,    -1,
+      -1,    -1,    -1,    -1,   212,   213,    -1,    -1,    -1,    -1,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
       30,    31,    32,    -1,    34,    -1,    36,    -1,    38,    39,
       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
       80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,   103,   104,   105,   106,    -1,   108,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     120,    -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,   151,    -1,   153,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   154,    -1,   156,    -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,   188,    -1,
-      -1,    -1,    -1,    -1,   194,   195,   196,   197,     3,     4,
-       5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,   209,
-     210,    -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
-      -1,    36,    -1,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      -1,    76,    77,    78,    79,    80,    81,    -1,    -1,    84,
-      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
-     105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   117,    -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,   151,    -1,   153,    -1,
+      -1,   191,    -1,    -1,    -1,    -1,    -1,   197,   198,   199,
+     200,     3,     4,     5,     6,     7,     8,    -1,    -1,    -1,
+      -1,    -1,   212,    -1,    -1,    -1,    -1,    -1,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    -1,    34,    -1,    36,    -1,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    -1,    76,    77,    78,    79,    80,    81,
+      -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   103,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,     5,
+       6,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
+      -1,    -1,   154,    -1,   156,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,   191,
+      76,    -1,    -1,    -1,    -1,   197,   198,   199,   200,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,
+     106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,   194,
-     195,   196,   197,     3,     4,     5,     6,     7,     8,    -1,
-      -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    -1,    34,    -1,    36,    -1,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
+     156,    41,    42,    43,    44,    45,    46,    47,    48,    49,
       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
-      80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,
+      70,    71,    72,    73,    74,    -1,    76,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   103,   104,   105,   106,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,     5,     6,
-       7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
-      -1,   151,    -1,   153,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,   188,    76,
-      -1,    -1,    -1,    -1,   194,   195,   196,   197,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   214,    -1,
+      -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,     5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    30,    31,    -1,    -1,
-      -1,    -1,    -1,    -1,   151,    -1,   153,    41,    42,    43,
+      -1,    -1,    -1,    -1,   154,    -1,   156,    41,    42,    43,
       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
+      74,    -1,    76,    77,    78,    79,    80,    81,    -1,    -1,
+      84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   214,    -1,    -1,    -1,    -1,    -1,
      104,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    -1,    -1,    -1,    -1,    -1,    -1,   151,    -1,   153,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
-      81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,
-      -1,    -1,    -1,   104,   105,   106,    -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,
-     151,    -1,   153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     154,    -1,   156,    -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,   188,    -1,    -1,
-      -1,    -1,    -1,   194,   195,   196,   197,     3,     4,     5,
-       6,     7,     8,    -1,    -1,    -1,    -1,    -1,   209,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,    -1,
+      -1,    -1,    -1,   197,   198,   199,   200,     3,     4,     5,
+       6,     7,     8,    -1,    -1,    -1,    -1,    -1,   212,    -1,
       -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,    30,    31,    32,    -1,    34,    -1,
       36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
@@ -1817,50 +1821,69 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
      106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   120,    -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,   151,    -1,   153,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
+     156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,
-       8,    -1,   188,    -1,    -1,    -1,    -1,    -1,   194,   195,
-     196,   197,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
-      78,    79,    80,    81,    -1,    -1,    84,    85,    -1,    -1,
+       5,     6,     7,     8,    -1,   191,    -1,    -1,    -1,    -1,
+      -1,   197,   198,   199,   200,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      -1,    76,    77,    78,    79,    80,    81,    -1,    -1,    84,
+      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
+     105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,    -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,   154,
+      -1,   156,    -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,   151,    -1,   153,    -1,    -1,    -1,    -1,
+      -1,     5,     6,     7,     8,    -1,   191,    -1,    -1,   194,
+      -1,    -1,   197,   198,   199,   200,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    -1,    76,    77,    78,    79,    80,    81,    -1,    -1,
+      84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     104,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,
-     188,    -1,    -1,   191,    -1,    -1,   194,   195,   196,   197,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
-      80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     154,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,     5,     6,     7,     8,    -1,   191,    -1,    -1,
+     194,    -1,    -1,   197,   198,   199,   200,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    -1,    76,    77,    78,    79,    80,    81,    -1,
+      -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   151,    -1,   153,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,     5,     6,     7,     8,    -1,   188,    -1,
-      -1,   191,    -1,    -1,   194,   195,   196,   197,    20,    21,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   154,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,     5,     6,     7,     8,    -1,   191,    -1,
+      -1,   194,    -1,    -1,   197,   198,   199,   200,    20,    21,
       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,
       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
@@ -1873,138 +1896,130 @@ static const yytype_int16 yycheck[] =
       -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,   151,
-      -1,   153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,     5,     6,     7,     8,    -1,   188,    -1,    -1,   191,
-      -1,    -1,   194,   195,   196,   197,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    -1,    76,    77,    78,    79,    80,    81,    -1,    -1,
-      84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     104,   105,   106,    -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,   151,    -1,   153,
+      -1,    -1,   154,    -1,   156,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
-       6,     7,     8,    -1,   188,    -1,    -1,    -1,    -1,    -1,
-     194,   195,   196,   197,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
-      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
+      -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,   191,
+      -1,    -1,    -1,    -1,    -1,   197,   198,   199,   200,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
+      81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,
-     106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   104,   105,   106,    -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,   151,    -1,   153,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   154,    -1,   156,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     0,    -1,    -1,     3,     4,     5,     6,     7,
-       8,    -1,   188,    -1,    -1,    -1,    -1,    -1,   194,   195,
-     196,   197,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    -1,    34,    -1,    36,    -1,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    72,    73,    74,    -1,    76,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       0,    -1,    -1,     3,     4,     5,     6,     7,     8,    -1,
+     191,    -1,    -1,    -1,    -1,    -1,   197,   198,   199,   200,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    -1,    34,    -1,    36,    -1,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    -1,    76,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   103,   104,   105,   106,    -1,
-     108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
-      -1,     3,     4,     5,     6,     7,     8,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    -1,    34,   151,    36,   153,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    -1,    76,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   103,   104,   105,   106,    -1,   108,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   116,   117,   118,   119,
+     120,    -1,     3,     4,     5,     6,     7,     8,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    -1,    34,   154,    36,   156,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    -1,    76,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   103,   104,   105,   106,    -1,   108,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   117,     5,     6,     7,     8,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,   151,
-      -1,   153,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    -1,    76,     5,     6,
-       7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,   104,   105,   106,    -1,    -1,
-      -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
-      -1,    -1,   151,    -1,   153,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   103,   104,   105,   106,    -1,   108,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
+       5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
+      -1,    -1,    -1,   154,    -1,   156,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      -1,    76,     5,     6,     7,     8,    81,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,   104,
+     105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    -1,    76,     5,     6,     7,     8,    -1,   154,
+      -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    -1,    76,    -1,    -1,    -1,    -1,
+      -1,   154,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   151,    -1,   153
+      -1,    -1,    -1,   154,    -1,   156
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,   109,   213,   215,    78,     0,   216,   114,   110,   214,
-     217,    76,     3,     4,     5,     6,     7,     8,    20,    21,
+       0,   109,   216,   218,    78,     0,   220,   113,   110,   217,
+     221,    76,     3,     4,     5,     6,     7,     8,    20,    21,
       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
       32,    34,    36,    38,    39,    40,    41,    42,    43,    44,
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      76,   103,   104,   105,   106,   108,   117,   151,   153,   218,
-     248,   249,   250,   251,   252,   257,   258,   259,   260,   261,
-     264,   266,   267,   268,   269,   270,   271,   272,   273,   299,
-     300,   113,    33,    34,    37,    76,   210,    76,   103,   266,
-     272,   188,   299,   209,   210,   286,   189,   193,     4,    33,
-      34,    35,   254,   255,   265,   193,   209,    76,    33,    37,
-     266,   268,   190,   269,    76,   210,   268,   274,   275,   269,
-      76,   262,   263,     9,    10,    11,    13,    14,    15,    16,
-      17,    18,    19,    75,    76,    77,    78,    79,    80,    81,
-      84,    85,   188,   194,   195,   196,   197,   209,   210,   211,
-     219,   220,   221,   223,   224,   225,   226,   227,   228,   229,
-     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-     240,   241,   242,   243,   244,   246,   248,   249,   268,   279,
-     280,   281,   282,   283,   284,   287,   288,   289,   290,   292,
-     293,   294,   298,   254,   253,   256,   268,   255,    76,   188,
-     190,   208,   191,   230,   243,   247,   268,   114,   274,    76,
-     276,   277,   211,   275,   209,   189,   193,   209,   209,   280,
-     188,   188,   209,   209,   246,   188,   246,   207,   188,   230,
-     230,   246,   211,   287,    84,    85,   190,   192,   189,   189,
-     193,    74,   244,   188,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,   102,   208,   245,   230,   198,   199,   200,
-     194,   195,    82,    83,    86,    87,   201,   202,    88,    89,
-     203,   204,   205,    90,    92,    91,   206,   193,   209,   211,
-     280,    76,   253,   256,   190,   208,   191,   247,   244,   278,
-     191,   211,   190,   193,   209,   263,    75,   279,   288,   295,
-     246,   209,   246,   207,   246,   259,   291,   189,   211,   222,
-     246,    76,   225,   244,   244,   230,   230,   230,   232,   232,
-     233,   233,   234,   234,   234,   234,   235,   235,   236,   237,
-     238,   239,   240,   241,   246,   244,   190,   191,   247,   278,
-     208,   191,   247,   277,   188,   291,   296,   297,   189,   189,
-      76,   189,   191,   207,   247,   208,   191,   278,   208,   191,
-     246,   209,   189,   281,   282,   284,   208,    14,   283,   285,
-     286,   244,   191,   278,   208,   278,   189,   246,   285,    12,
-     278,   188,   278,   209,   281,   282,   246,   189,   281,    12
+      76,   103,   104,   105,   106,   108,   116,   117,   118,   119,
+     120,   154,   156,   219,   222,   252,   253,   254,   255,   256,
+     261,   262,   263,   264,   265,   268,   270,   271,   272,   273,
+     274,   275,   276,   277,   303,   304,   112,    33,    34,    37,
+      76,   213,    76,   103,   270,   276,   113,   113,   113,   113,
+     191,   303,   212,   213,   290,   192,   196,     4,    33,    34,
+      35,   258,   259,   269,   196,   212,    76,    33,    37,   270,
+     272,   193,   273,    76,   213,   272,   278,   279,   273,    76,
+     266,   267,     9,    10,    11,    13,    14,    15,    16,    17,
+      18,    19,    75,    76,    77,    78,    79,    80,    81,    84,
+      85,   191,   197,   198,   199,   200,   212,   213,   214,   223,
+     224,   225,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   250,   252,   253,   272,   283,   284,
+     285,   286,   287,   288,   291,   292,   293,   294,   296,   297,
+     298,   302,   258,   257,   260,   272,   259,    76,   191,   193,
+     211,   194,   234,   247,   251,   272,   113,   278,    76,   280,
+     281,   214,   279,   212,   192,   196,   212,   212,   284,   191,
+     191,   212,   212,   250,   191,   250,   210,   191,   234,   234,
+     250,   214,   291,    84,    85,   193,   195,   192,   192,   196,
+      74,   248,   191,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   211,   249,   234,   201,   202,   203,   197,
+     198,    82,    83,    86,    87,   204,   205,    88,    89,   206,
+     207,   208,    90,    92,    91,   209,   196,   212,   214,   284,
+      76,   257,   260,   193,   211,   194,   251,   248,   282,   194,
+     214,   193,   196,   212,   267,    75,   283,   292,   299,   250,
+     212,   250,   210,   250,   263,   295,   192,   214,   226,   250,
+      76,   229,   248,   248,   234,   234,   234,   236,   236,   237,
+     237,   238,   238,   238,   238,   239,   239,   240,   241,   242,
+     243,   244,   245,   250,   248,   193,   194,   251,   282,   211,
+     194,   251,   281,   191,   295,   300,   301,   192,   192,    76,
+     192,   194,   210,   251,   211,   194,   282,   211,   194,   250,
+     212,   192,   285,   286,   288,   211,    14,   287,   289,   290,
+     248,   194,   282,   211,   282,   192,   250,   289,    12,   282,
+     191,   282,   212,   285,   286,   250,   192,   285,    12
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -2019,18 +2034,9 @@ static const yytype_uint16 yystos[] =
 
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  However,
-   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
-   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
-   discussed.  */
+   Once GCC version 2 has supplanted version 1, this can go.  */
 
 #define YYFAIL         goto yyerrlab
-#if defined YYFAIL
-  /* This is here to suppress warnings from the GCC cpp's
-     -Wunused-macros.  Normally we don't worry about that warning, but
-     some users do, and we want to make it easy for users to remove
-     YYFAIL uses, which will produce warnings from Bison 2.5.  */
-#endif
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
@@ -2087,7 +2093,7 @@ while (YYID (0))
    we won't break user code: when these are the locations we know.  */
 
 #ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
+# if YYLTYPE_IS_TRIVIAL
 #  define YY_LOCATION_PRINT(File, Loc)                 \
      fprintf (File, "%d.%d-%d.%d",                     \
              (Loc).first_line, (Loc).first_column,     \
@@ -2629,7 +2635,7 @@ YYLTYPE yylloc;
     YYLTYPE *yylsp;
 
     /* The locations where the error started and ended.  */
-    YYLTYPE yyerror_range[3];
+    YYLTYPE yyerror_range[2];
 
     YYSIZE_T yystacksize;
 
@@ -2676,7 +2682,7 @@ YYLTYPE yylloc;
   yyvsp = yyvs;
   yylsp = yyls;
 
-#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
+#if YYLTYPE_IS_TRIVIAL
   /* Initialize the default location before parsing starts.  */
   yylloc.first_line   = yylloc.last_line   = 1;
   yylloc.first_column = yylloc.last_column = 1;
@@ -2684,7 +2690,7 @@ YYLTYPE yylloc;
 
 /* User initialization code.  */
 
-/* Line 1251 of yacc.c  */
+/* Line 1242 of yacc.c  */
 #line 41 "glsl_parser.ypp"
 {
    yylloc.first_line = 1;
@@ -2694,8 +2700,8 @@ YYLTYPE yylloc;
    yylloc.source = 0;
 }
 
-/* Line 1251 of yacc.c  */
-#line 2699 "glsl_parser.cpp"
+/* Line 1242 of yacc.c  */
+#line 2705 "glsl_parser.cpp"
   yylsp[0] = yylloc;
 
   goto yysetstate;
@@ -2882,8 +2888,8 @@ yyreduce:
     {
         case 2:
 
-/* Line 1464 of yacc.c  */
-#line 209 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 211 "glsl_parser.ypp"
     {
           _mesa_glsl_initialize_types(state);
        ;}
@@ -2891,8 +2897,8 @@ yyreduce:
 
   case 4:
 
-/* Line 1464 of yacc.c  */
-#line 217 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 219 "glsl_parser.ypp"
     {
           state->language_version = 110;
           state->symbols->language_version = 110;
@@ -2901,8 +2907,8 @@ yyreduce:
 
   case 5:
 
-/* Line 1464 of yacc.c  */
-#line 222 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 224 "glsl_parser.ypp"
     {
           switch ((yyvsp[(2) - (3)].n)) {
           case 110:
@@ -2920,10 +2926,10 @@ yyreduce:
        ;}
     break;
 
-  case 8:
+  case 12:
 
-/* Line 1464 of yacc.c  */
-#line 246 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 255 "glsl_parser.ypp"
     {
           if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
              YYERROR;
@@ -2931,10 +2937,10 @@ yyreduce:
        ;}
     break;
 
-  case 9:
+  case 13:
 
-/* Line 1464 of yacc.c  */
-#line 255 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 264 "glsl_parser.ypp"
     {
           /* FINISHME: The NULL test is only required because 'precision'
            * FINISHME: statements are not yet supported.
@@ -2944,10 +2950,10 @@ yyreduce:
        ;}
     break;
 
-  case 10:
+  case 14:
 
-/* Line 1464 of yacc.c  */
-#line 263 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 272 "glsl_parser.ypp"
     {
           /* FINISHME: The NULL test is only required because 'precision'
            * FINISHME: statements are not yet supported.
@@ -2957,10 +2963,10 @@ yyreduce:
        ;}
     break;
 
-  case 12:
+  case 16:
 
-/* Line 1464 of yacc.c  */
-#line 278 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 287 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
@@ -2969,10 +2975,10 @@ yyreduce:
        ;}
     break;
 
-  case 13:
+  case 17:
 
-/* Line 1464 of yacc.c  */
-#line 285 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 294 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
@@ -2981,10 +2987,10 @@ yyreduce:
        ;}
     break;
 
-  case 14:
+  case 18:
 
-/* Line 1464 of yacc.c  */
-#line 292 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 301 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
@@ -2993,10 +2999,10 @@ yyreduce:
        ;}
     break;
 
-  case 15:
+  case 19:
 
-/* Line 1464 of yacc.c  */
-#line 299 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 308 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
@@ -3005,10 +3011,10 @@ yyreduce:
        ;}
     break;
 
-  case 16:
+  case 20:
 
-/* Line 1464 of yacc.c  */
-#line 306 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 315 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
@@ -3017,19 +3023,19 @@ yyreduce:
        ;}
     break;
 
-  case 17:
+  case 21:
 
-/* Line 1464 of yacc.c  */
-#line 313 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 322 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(2) - (3)].expression);
        ;}
     break;
 
-  case 19:
+  case 23:
 
-/* Line 1464 of yacc.c  */
-#line 321 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 330 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
@@ -3037,19 +3043,19 @@ yyreduce:
        ;}
     break;
 
-  case 20:
+  case 24:
 
-/* Line 1464 of yacc.c  */
-#line 327 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 336 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (1)].expression);
        ;}
     break;
 
-  case 21:
+  case 25:
 
-/* Line 1464 of yacc.c  */
-#line 331 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 340 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL);
@@ -3058,10 +3064,10 @@ yyreduce:
        ;}
     break;
 
-  case 22:
+  case 26:
 
-/* Line 1464 of yacc.c  */
-#line 338 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 347 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
@@ -3069,10 +3075,10 @@ yyreduce:
        ;}
     break;
 
-  case 23:
+  case 27:
 
-/* Line 1464 of yacc.c  */
-#line 344 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 353 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
@@ -3080,10 +3086,10 @@ yyreduce:
        ;}
     break;
 
-  case 27:
+  case 31:
 
-/* Line 1464 of yacc.c  */
-#line 362 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 371 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
@@ -3091,10 +3097,10 @@ yyreduce:
        ;}
     break;
 
-  case 32:
+  case 36:
 
-/* Line 1464 of yacc.c  */
-#line 381 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 390 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (2)].expression);
           (yyval.expression)->set_location(yylloc);
@@ -3102,10 +3108,10 @@ yyreduce:
        ;}
     break;
 
-  case 33:
+  case 37:
 
-/* Line 1464 of yacc.c  */
-#line 387 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 396 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (3)].expression);
           (yyval.expression)->set_location(yylloc);
@@ -3113,10 +3119,10 @@ yyreduce:
        ;}
     break;
 
-  case 35:
+  case 39:
 
-/* Line 1464 of yacc.c  */
-#line 403 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 412 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier));
@@ -3124,10 +3130,10 @@ yyreduce:
        ;}
     break;
 
-  case 36:
+  case 40:
 
-/* Line 1464 of yacc.c  */
-#line 409 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 418 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
@@ -3136,10 +3142,10 @@ yyreduce:
        ;}
     break;
 
-  case 37:
+  case 41:
 
-/* Line 1464 of yacc.c  */
-#line 416 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 425 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
@@ -3148,10 +3154,10 @@ yyreduce:
        ;}
     break;
 
-  case 39:
+  case 43:
 
-/* Line 1464 of yacc.c  */
-#line 428 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 437 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3159,10 +3165,10 @@ yyreduce:
        ;}
     break;
 
-  case 40:
+  case 44:
 
-/* Line 1464 of yacc.c  */
-#line 434 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 443 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3170,10 +3176,10 @@ yyreduce:
        ;}
     break;
 
-  case 41:
+  case 45:
 
-/* Line 1464 of yacc.c  */
-#line 440 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 449 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3181,38 +3187,38 @@ yyreduce:
        ;}
     break;
 
-  case 42:
+  case 46:
 
-/* Line 1464 of yacc.c  */
-#line 449 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 458 "glsl_parser.ypp"
     { (yyval.n) = ast_plus; ;}
     break;
 
-  case 43:
+  case 47:
 
-/* Line 1464 of yacc.c  */
-#line 450 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 459 "glsl_parser.ypp"
     { (yyval.n) = ast_neg; ;}
     break;
 
-  case 44:
+  case 48:
 
-/* Line 1464 of yacc.c  */
-#line 451 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 460 "glsl_parser.ypp"
     { (yyval.n) = ast_logic_not; ;}
     break;
 
-  case 45:
+  case 49:
 
-/* Line 1464 of yacc.c  */
-#line 452 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 461 "glsl_parser.ypp"
     { (yyval.n) = ast_bit_not; ;}
     break;
 
-  case 47:
+  case 51:
 
-/* Line 1464 of yacc.c  */
-#line 458 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 467 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3220,10 +3226,10 @@ yyreduce:
        ;}
     break;
 
-  case 48:
+  case 52:
 
-/* Line 1464 of yacc.c  */
-#line 464 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 473 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3231,10 +3237,10 @@ yyreduce:
        ;}
     break;
 
-  case 49:
+  case 53:
 
-/* Line 1464 of yacc.c  */
-#line 470 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 479 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3242,10 +3248,10 @@ yyreduce:
        ;}
     break;
 
-  case 51:
+  case 55:
 
-/* Line 1464 of yacc.c  */
-#line 480 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 489 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3253,10 +3259,10 @@ yyreduce:
        ;}
     break;
 
-  case 52:
+  case 56:
 
-/* Line 1464 of yacc.c  */
-#line 486 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 495 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3264,10 +3270,10 @@ yyreduce:
        ;}
     break;
 
-  case 54:
+  case 58:
 
-/* Line 1464 of yacc.c  */
-#line 496 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 505 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3275,10 +3281,10 @@ yyreduce:
        ;}
     break;
 
-  case 55:
+  case 59:
 
-/* Line 1464 of yacc.c  */
-#line 502 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 511 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3286,10 +3292,10 @@ yyreduce:
        ;}
     break;
 
-  case 57:
+  case 61:
 
-/* Line 1464 of yacc.c  */
-#line 512 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 521 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3297,10 +3303,10 @@ yyreduce:
        ;}
     break;
 
-  case 58:
+  case 62:
 
-/* Line 1464 of yacc.c  */
-#line 518 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 527 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3308,10 +3314,10 @@ yyreduce:
        ;}
     break;
 
-  case 59:
+  case 63:
 
-/* Line 1464 of yacc.c  */
-#line 524 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 533 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3319,10 +3325,10 @@ yyreduce:
        ;}
     break;
 
-  case 60:
+  case 64:
 
-/* Line 1464 of yacc.c  */
-#line 530 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 539 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3330,10 +3336,10 @@ yyreduce:
        ;}
     break;
 
-  case 62:
+  case 66:
 
-/* Line 1464 of yacc.c  */
-#line 540 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 549 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3341,10 +3347,10 @@ yyreduce:
        ;}
     break;
 
-  case 63:
+  case 67:
 
-/* Line 1464 of yacc.c  */
-#line 546 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 555 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3352,10 +3358,10 @@ yyreduce:
        ;}
     break;
 
-  case 65:
+  case 69:
 
-/* Line 1464 of yacc.c  */
-#line 556 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 565 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3363,10 +3369,10 @@ yyreduce:
        ;}
     break;
 
-  case 67:
+  case 71:
 
-/* Line 1464 of yacc.c  */
-#line 566 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 575 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3374,10 +3380,10 @@ yyreduce:
        ;}
     break;
 
-  case 69:
+  case 73:
 
-/* Line 1464 of yacc.c  */
-#line 576 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 585 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3385,10 +3391,10 @@ yyreduce:
        ;}
     break;
 
-  case 71:
+  case 75:
 
-/* Line 1464 of yacc.c  */
-#line 586 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 595 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3396,10 +3402,10 @@ yyreduce:
        ;}
     break;
 
-  case 73:
+  case 77:
 
-/* Line 1464 of yacc.c  */
-#line 596 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 605 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3407,10 +3413,10 @@ yyreduce:
        ;}
     break;
 
-  case 75:
+  case 79:
 
-/* Line 1464 of yacc.c  */
-#line 606 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 615 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3418,10 +3424,10 @@ yyreduce:
        ;}
     break;
 
-  case 77:
+  case 81:
 
-/* Line 1464 of yacc.c  */
-#line 616 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 625 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].expression));
@@ -3429,10 +3435,10 @@ yyreduce:
        ;}
     break;
 
-  case 79:
+  case 83:
 
-/* Line 1464 of yacc.c  */
-#line 626 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 635 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
@@ -3440,96 +3446,96 @@ yyreduce:
        ;}
     break;
 
-  case 80:
+  case 84:
 
-/* Line 1464 of yacc.c  */
-#line 634 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 643 "glsl_parser.ypp"
     { (yyval.n) = ast_assign; ;}
     break;
 
-  case 81:
+  case 85:
 
-/* Line 1464 of yacc.c  */
-#line 635 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 644 "glsl_parser.ypp"
     { (yyval.n) = ast_mul_assign; ;}
     break;
 
-  case 82:
+  case 86:
 
-/* Line 1464 of yacc.c  */
-#line 636 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 645 "glsl_parser.ypp"
     { (yyval.n) = ast_div_assign; ;}
     break;
 
-  case 83:
+  case 87:
 
-/* Line 1464 of yacc.c  */
-#line 637 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 646 "glsl_parser.ypp"
     { (yyval.n) = ast_mod_assign; ;}
     break;
 
-  case 84:
+  case 88:
 
-/* Line 1464 of yacc.c  */
-#line 638 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 647 "glsl_parser.ypp"
     { (yyval.n) = ast_add_assign; ;}
     break;
 
-  case 85:
+  case 89:
 
-/* Line 1464 of yacc.c  */
-#line 639 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 648 "glsl_parser.ypp"
     { (yyval.n) = ast_sub_assign; ;}
     break;
 
-  case 86:
+  case 90:
 
-/* Line 1464 of yacc.c  */
-#line 640 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 649 "glsl_parser.ypp"
     { (yyval.n) = ast_ls_assign; ;}
     break;
 
-  case 87:
+  case 91:
 
-/* Line 1464 of yacc.c  */
-#line 641 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 650 "glsl_parser.ypp"
     { (yyval.n) = ast_rs_assign; ;}
     break;
 
-  case 88:
+  case 92:
 
-/* Line 1464 of yacc.c  */
-#line 642 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 651 "glsl_parser.ypp"
     { (yyval.n) = ast_and_assign; ;}
     break;
 
-  case 89:
+  case 93:
 
-/* Line 1464 of yacc.c  */
-#line 643 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 652 "glsl_parser.ypp"
     { (yyval.n) = ast_xor_assign; ;}
     break;
 
-  case 90:
+  case 94:
 
-/* Line 1464 of yacc.c  */
-#line 644 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 653 "glsl_parser.ypp"
     { (yyval.n) = ast_or_assign; ;}
     break;
 
-  case 91:
+  case 95:
 
-/* Line 1464 of yacc.c  */
-#line 649 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 658 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (1)].expression);
        ;}
     break;
 
-  case 92:
+  case 96:
 
-/* Line 1464 of yacc.c  */
-#line 653 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 662 "glsl_parser.ypp"
     {
           void *ctx = state;
           if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
@@ -3544,28 +3550,28 @@ yyreduce:
        ;}
     break;
 
-  case 94:
+  case 98:
 
-/* Line 1464 of yacc.c  */
-#line 673 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 682 "glsl_parser.ypp"
     {
           (yyval.node) = (yyvsp[(1) - (2)].function);
        ;}
     break;
 
-  case 95:
+  case 99:
 
-/* Line 1464 of yacc.c  */
-#line 677 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 686 "glsl_parser.ypp"
     {
           (yyval.node) = (yyvsp[(1) - (2)].declarator_list);
        ;}
     break;
 
-  case 96:
+  case 100:
 
-/* Line 1464 of yacc.c  */
-#line 681 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 690 "glsl_parser.ypp"
     {
           if (((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_float)
               && ((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_int)) {
@@ -3578,30 +3584,30 @@ yyreduce:
        ;}
     break;
 
-  case 100:
+  case 104:
 
-/* Line 1464 of yacc.c  */
-#line 704 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 713 "glsl_parser.ypp"
     {
           (yyval.function) = (yyvsp[(1) - (2)].function);
           (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link);
        ;}
     break;
 
-  case 101:
+  case 105:
 
-/* Line 1464 of yacc.c  */
-#line 709 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 718 "glsl_parser.ypp"
     {
           (yyval.function) = (yyvsp[(1) - (3)].function);
           (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link);
        ;}
     break;
 
-  case 102:
+  case 106:
 
-/* Line 1464 of yacc.c  */
-#line 717 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 726 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.function) = new(ctx) ast_function();
@@ -3611,10 +3617,10 @@ yyreduce:
        ;}
     break;
 
-  case 103:
+  case 107:
 
-/* Line 1464 of yacc.c  */
-#line 728 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 737 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3626,10 +3632,10 @@ yyreduce:
        ;}
     break;
 
-  case 104:
+  case 108:
 
-/* Line 1464 of yacc.c  */
-#line 738 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 747 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3643,10 +3649,10 @@ yyreduce:
        ;}
     break;
 
-  case 105:
+  case 109:
 
-/* Line 1464 of yacc.c  */
-#line 753 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 762 "glsl_parser.ypp"
     {
           (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i;
 
@@ -3655,20 +3661,20 @@ yyreduce:
        ;}
     break;
 
-  case 106:
+  case 110:
 
-/* Line 1464 of yacc.c  */
-#line 760 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 769 "glsl_parser.ypp"
     {
           (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);
           (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier).q;
        ;}
     break;
 
-  case 107:
+  case 111:
 
-/* Line 1464 of yacc.c  */
-#line 765 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 774 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i;
@@ -3681,10 +3687,10 @@ yyreduce:
        ;}
     break;
 
-  case 108:
+  case 112:
 
-/* Line 1464 of yacc.c  */
-#line 776 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 785 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3695,38 +3701,38 @@ yyreduce:
        ;}
     break;
 
-  case 109:
+  case 113:
 
-/* Line 1464 of yacc.c  */
-#line 787 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 796 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; ;}
     break;
 
-  case 110:
+  case 114:
 
-/* Line 1464 of yacc.c  */
-#line 788 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 797 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;}
     break;
 
-  case 111:
+  case 115:
 
-/* Line 1464 of yacc.c  */
-#line 789 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 798 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;}
     break;
 
-  case 112:
+  case 116:
 
-/* Line 1464 of yacc.c  */
-#line 790 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 799 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; (yyval.type_qualifier).q.out = 1; ;}
     break;
 
-  case 115:
+  case 119:
 
-/* Line 1464 of yacc.c  */
-#line 800 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 809 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL);
@@ -3737,10 +3743,10 @@ yyreduce:
        ;}
     break;
 
-  case 116:
+  case 120:
 
-/* Line 1464 of yacc.c  */
-#line 809 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 818 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL);
@@ -3751,10 +3757,10 @@ yyreduce:
        ;}
     break;
 
-  case 117:
+  case 121:
 
-/* Line 1464 of yacc.c  */
-#line 818 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 827 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL);
@@ -3765,10 +3771,10 @@ yyreduce:
        ;}
     break;
 
-  case 118:
+  case 122:
 
-/* Line 1464 of yacc.c  */
-#line 827 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 836 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression));
@@ -3779,10 +3785,10 @@ yyreduce:
        ;}
     break;
 
-  case 119:
+  case 123:
 
-/* Line 1464 of yacc.c  */
-#line 836 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 845 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].identifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression));
@@ -3793,10 +3799,10 @@ yyreduce:
        ;}
     break;
 
-  case 120:
+  case 124:
 
-/* Line 1464 of yacc.c  */
-#line 845 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 854 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression));
@@ -3807,10 +3813,10 @@ yyreduce:
        ;}
     break;
 
-  case 121:
+  case 125:
 
-/* Line 1464 of yacc.c  */
-#line 858 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 867 "glsl_parser.ypp"
     {
           void *ctx = state;
           if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) {
@@ -3823,10 +3829,10 @@ yyreduce:
        ;}
     break;
 
-  case 122:
+  case 126:
 
-/* Line 1464 of yacc.c  */
-#line 869 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 878 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
@@ -3837,10 +3843,10 @@ yyreduce:
        ;}
     break;
 
-  case 123:
+  case 127:
 
-/* Line 1464 of yacc.c  */
-#line 878 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 887 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL);
@@ -3851,10 +3857,10 @@ yyreduce:
        ;}
     break;
 
-  case 124:
+  case 128:
 
-/* Line 1464 of yacc.c  */
-#line 887 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 896 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL);
@@ -3865,10 +3871,10 @@ yyreduce:
        ;}
     break;
 
-  case 125:
+  case 129:
 
-/* Line 1464 of yacc.c  */
-#line 896 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 905 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression));
@@ -3879,10 +3885,10 @@ yyreduce:
        ;}
     break;
 
-  case 126:
+  case 130:
 
-/* Line 1464 of yacc.c  */
-#line 905 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 914 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].identifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression));
@@ -3893,10 +3899,10 @@ yyreduce:
        ;}
     break;
 
-  case 127:
+  case 131:
 
-/* Line 1464 of yacc.c  */
-#line 914 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 923 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
@@ -3907,10 +3913,10 @@ yyreduce:
        ;}
     break;
 
-  case 128:
+  case 132:
 
-/* Line 1464 of yacc.c  */
-#line 923 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 932 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
@@ -3923,10 +3929,10 @@ yyreduce:
        ;}
     break;
 
-  case 129:
+  case 133:
 
-/* Line 1464 of yacc.c  */
-#line 937 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 946 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
@@ -3935,10 +3941,10 @@ yyreduce:
        ;}
     break;
 
-  case 130:
+  case 134:
 
-/* Line 1464 of yacc.c  */
-#line 944 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 953 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
@@ -3948,35 +3954,35 @@ yyreduce:
        ;}
     break;
 
-  case 131:
+  case 135:
 
-/* Line 1464 of yacc.c  */
-#line 954 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 963 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; ;}
     break;
 
-  case 133:
+  case 137:
 
-/* Line 1464 of yacc.c  */
-#line 960 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 969 "glsl_parser.ypp"
     {
          (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
        ;}
     break;
 
-  case 135:
+  case 139:
 
-/* Line 1464 of yacc.c  */
-#line 968 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 977 "glsl_parser.ypp"
     {
           (yyval.type_qualifier).i = (yyvsp[(1) - (3)].type_qualifier).i | (yyvsp[(3) - (3)].type_qualifier).i;
        ;}
     break;
 
-  case 136:
+  case 140:
 
-/* Line 1464 of yacc.c  */
-#line 975 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 984 "glsl_parser.ypp"
     {
           (yyval.type_qualifier).i = 0;
 
@@ -4009,130 +4015,130 @@ yyreduce:
        ;}
     break;
 
-  case 137:
+  case 141:
 
-/* Line 1464 of yacc.c  */
-#line 1008 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1017 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.smooth = 1; ;}
     break;
 
-  case 138:
+  case 142:
 
-/* Line 1464 of yacc.c  */
-#line 1009 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1018 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.flat = 1; ;}
     break;
 
-  case 139:
+  case 143:
 
-/* Line 1464 of yacc.c  */
-#line 1010 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1019 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.noperspective = 1; ;}
     break;
 
-  case 140:
+  case 144:
 
-/* Line 1464 of yacc.c  */
-#line 1014 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1023 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;}
     break;
 
-  case 142:
+  case 146:
 
-/* Line 1464 of yacc.c  */
-#line 1020 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1029 "glsl_parser.ypp"
     {
           (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i | (yyvsp[(2) - (2)].type_qualifier).i;
        ;}
     break;
 
-  case 143:
+  case 147:
 
-/* Line 1464 of yacc.c  */
-#line 1024 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1033 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
           (yyval.type_qualifier).q.invariant = 1;
        ;}
     break;
 
-  case 144:
+  case 148:
 
-/* Line 1464 of yacc.c  */
-#line 1031 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1040 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;}
     break;
 
-  case 145:
+  case 149:
 
-/* Line 1464 of yacc.c  */
-#line 1032 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1041 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.attribute = 1; ;}
     break;
 
-  case 146:
+  case 150:
 
-/* Line 1464 of yacc.c  */
-#line 1033 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1042 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i; (yyval.type_qualifier).q.varying = 1; ;}
     break;
 
-  case 147:
+  case 151:
 
-/* Line 1464 of yacc.c  */
-#line 1034 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1043 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.varying = 1; ;}
     break;
 
-  case 148:
+  case 152:
 
-/* Line 1464 of yacc.c  */
-#line 1035 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1044 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;}
     break;
 
-  case 149:
+  case 153:
 
-/* Line 1464 of yacc.c  */
-#line 1036 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1045 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;}
     break;
 
-  case 150:
+  case 154:
 
-/* Line 1464 of yacc.c  */
-#line 1037 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1046 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.in = 1; ;}
     break;
 
-  case 151:
+  case 155:
 
-/* Line 1464 of yacc.c  */
-#line 1038 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1047 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.out = 1; ;}
     break;
 
-  case 152:
+  case 156:
 
-/* Line 1464 of yacc.c  */
-#line 1039 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1048 "glsl_parser.ypp"
     { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.uniform = 1; ;}
     break;
 
-  case 154:
+  case 158:
 
-/* Line 1464 of yacc.c  */
-#line 1045 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1054 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
           (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
        ;}
     break;
 
-  case 156:
+  case 160:
 
-/* Line 1464 of yacc.c  */
-#line 1054 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1063 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
           (yyval.type_specifier)->is_array = true;
@@ -4140,10 +4146,10 @@ yyreduce:
        ;}
     break;
 
-  case 157:
+  case 161:
 
-/* Line 1464 of yacc.c  */
-#line 1060 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1069 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
           (yyval.type_specifier)->is_array = true;
@@ -4151,10 +4157,10 @@ yyreduce:
        ;}
     break;
 
-  case 158:
+  case 162:
 
-/* Line 1464 of yacc.c  */
-#line 1069 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1078 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
@@ -4162,10 +4168,10 @@ yyreduce:
        ;}
     break;
 
-  case 159:
+  case 163:
 
-/* Line 1464 of yacc.c  */
-#line 1075 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1084 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
@@ -4173,10 +4179,10 @@ yyreduce:
        ;}
     break;
 
-  case 160:
+  case 164:
 
-/* Line 1464 of yacc.c  */
-#line 1081 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1090 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
@@ -4184,367 +4190,367 @@ yyreduce:
        ;}
     break;
 
-  case 161:
+  case 165:
 
-/* Line 1464 of yacc.c  */
-#line 1089 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1098 "glsl_parser.ypp"
     { (yyval.n) = ast_void; ;}
     break;
 
-  case 162:
+  case 166:
 
-/* Line 1464 of yacc.c  */
-#line 1090 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1099 "glsl_parser.ypp"
     { (yyval.n) = ast_float; ;}
     break;
 
-  case 163:
+  case 167:
 
-/* Line 1464 of yacc.c  */
-#line 1091 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1100 "glsl_parser.ypp"
     { (yyval.n) = ast_int; ;}
     break;
 
-  case 164:
+  case 168:
 
-/* Line 1464 of yacc.c  */
-#line 1092 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1101 "glsl_parser.ypp"
     { (yyval.n) = ast_uint; ;}
     break;
 
-  case 165:
+  case 169:
 
-/* Line 1464 of yacc.c  */
-#line 1093 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1102 "glsl_parser.ypp"
     { (yyval.n) = ast_bool; ;}
     break;
 
-  case 166:
+  case 170:
 
-/* Line 1464 of yacc.c  */
-#line 1094 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1103 "glsl_parser.ypp"
     { (yyval.n) = ast_vec2; ;}
     break;
 
-  case 167:
+  case 171:
 
-/* Line 1464 of yacc.c  */
-#line 1095 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1104 "glsl_parser.ypp"
     { (yyval.n) = ast_vec3; ;}
     break;
 
-  case 168:
+  case 172:
 
-/* Line 1464 of yacc.c  */
-#line 1096 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1105 "glsl_parser.ypp"
     { (yyval.n) = ast_vec4; ;}
     break;
 
-  case 169:
+  case 173:
 
-/* Line 1464 of yacc.c  */
-#line 1097 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1106 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec2; ;}
     break;
 
-  case 170:
+  case 174:
 
-/* Line 1464 of yacc.c  */
-#line 1098 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1107 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec3; ;}
     break;
 
-  case 171:
+  case 175:
 
-/* Line 1464 of yacc.c  */
-#line 1099 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1108 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec4; ;}
     break;
 
-  case 172:
+  case 176:
 
-/* Line 1464 of yacc.c  */
-#line 1100 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1109 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec2; ;}
     break;
 
-  case 173:
+  case 177:
 
-/* Line 1464 of yacc.c  */
-#line 1101 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1110 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec3; ;}
     break;
 
-  case 174:
+  case 178:
 
-/* Line 1464 of yacc.c  */
-#line 1102 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1111 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec4; ;}
     break;
 
-  case 175:
+  case 179:
 
-/* Line 1464 of yacc.c  */
-#line 1103 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1112 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec2; ;}
     break;
 
-  case 176:
+  case 180:
 
-/* Line 1464 of yacc.c  */
-#line 1104 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1113 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec3; ;}
     break;
 
-  case 177:
+  case 181:
 
-/* Line 1464 of yacc.c  */
-#line 1105 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1114 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec4; ;}
     break;
 
-  case 178:
+  case 182:
 
-/* Line 1464 of yacc.c  */
-#line 1106 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1115 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2; ;}
     break;
 
-  case 179:
+  case 183:
 
-/* Line 1464 of yacc.c  */
-#line 1107 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1116 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2x3; ;}
     break;
 
-  case 180:
+  case 184:
 
-/* Line 1464 of yacc.c  */
-#line 1108 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1117 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2x4; ;}
     break;
 
-  case 181:
+  case 185:
 
-/* Line 1464 of yacc.c  */
-#line 1109 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1118 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3x2; ;}
     break;
 
-  case 182:
+  case 186:
 
-/* Line 1464 of yacc.c  */
-#line 1110 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1119 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3; ;}
     break;
 
-  case 183:
+  case 187:
 
-/* Line 1464 of yacc.c  */
-#line 1111 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1120 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3x4; ;}
     break;
 
-  case 184:
+  case 188:
 
-/* Line 1464 of yacc.c  */
-#line 1112 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1121 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4x2; ;}
     break;
 
-  case 185:
+  case 189:
 
-/* Line 1464 of yacc.c  */
-#line 1113 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1122 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4x3; ;}
     break;
 
-  case 186:
+  case 190:
 
-/* Line 1464 of yacc.c  */
-#line 1114 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1123 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4; ;}
     break;
 
-  case 187:
+  case 191:
 
-/* Line 1464 of yacc.c  */
-#line 1115 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1124 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1d; ;}
     break;
 
-  case 188:
+  case 192:
 
-/* Line 1464 of yacc.c  */
-#line 1116 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1125 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2d; ;}
     break;
 
-  case 189:
+  case 193:
 
-/* Line 1464 of yacc.c  */
-#line 1117 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1126 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2drect; ;}
     break;
 
-  case 190:
+  case 194:
 
-/* Line 1464 of yacc.c  */
-#line 1118 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1127 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler3d; ;}
     break;
 
-  case 191:
+  case 195:
 
-/* Line 1464 of yacc.c  */
-#line 1119 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1128 "glsl_parser.ypp"
     { (yyval.n) = ast_samplercube; ;}
     break;
 
-  case 192:
+  case 196:
 
-/* Line 1464 of yacc.c  */
-#line 1120 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1129 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1dshadow; ;}
     break;
 
-  case 193:
+  case 197:
 
-/* Line 1464 of yacc.c  */
-#line 1121 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1130 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2dshadow; ;}
     break;
 
-  case 194:
+  case 198:
 
-/* Line 1464 of yacc.c  */
-#line 1122 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1131 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2drectshadow; ;}
     break;
 
-  case 195:
+  case 199:
 
-/* Line 1464 of yacc.c  */
-#line 1123 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1132 "glsl_parser.ypp"
     { (yyval.n) = ast_samplercubeshadow; ;}
     break;
 
-  case 196:
+  case 200:
 
-/* Line 1464 of yacc.c  */
-#line 1124 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1133 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1darray; ;}
     break;
 
-  case 197:
+  case 201:
 
-/* Line 1464 of yacc.c  */
-#line 1125 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1134 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2darray; ;}
     break;
 
-  case 198:
+  case 202:
 
-/* Line 1464 of yacc.c  */
-#line 1126 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1135 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1darrayshadow; ;}
     break;
 
-  case 199:
+  case 203:
 
-/* Line 1464 of yacc.c  */
-#line 1127 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1136 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2darrayshadow; ;}
     break;
 
-  case 200:
+  case 204:
 
-/* Line 1464 of yacc.c  */
-#line 1128 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1137 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler1d; ;}
     break;
 
-  case 201:
+  case 205:
 
-/* Line 1464 of yacc.c  */
-#line 1129 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1138 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler2d; ;}
     break;
 
-  case 202:
+  case 206:
 
-/* Line 1464 of yacc.c  */
-#line 1130 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1139 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler3d; ;}
     break;
 
-  case 203:
+  case 207:
 
-/* Line 1464 of yacc.c  */
-#line 1131 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1140 "glsl_parser.ypp"
     { (yyval.n) = ast_isamplercube; ;}
     break;
 
-  case 204:
+  case 208:
 
-/* Line 1464 of yacc.c  */
-#line 1132 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1141 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler1darray; ;}
     break;
 
-  case 205:
+  case 209:
 
-/* Line 1464 of yacc.c  */
-#line 1133 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1142 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler2darray; ;}
     break;
 
-  case 206:
+  case 210:
 
-/* Line 1464 of yacc.c  */
-#line 1134 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1143 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler1d; ;}
     break;
 
-  case 207:
+  case 211:
 
-/* Line 1464 of yacc.c  */
-#line 1135 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1144 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler2d; ;}
     break;
 
-  case 208:
+  case 212:
 
-/* Line 1464 of yacc.c  */
-#line 1136 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1145 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler3d; ;}
     break;
 
-  case 209:
+  case 213:
 
-/* Line 1464 of yacc.c  */
-#line 1137 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1146 "glsl_parser.ypp"
     { (yyval.n) = ast_usamplercube; ;}
     break;
 
-  case 210:
+  case 214:
 
-/* Line 1464 of yacc.c  */
-#line 1138 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1147 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler1darray; ;}
     break;
 
-  case 211:
+  case 215:
 
-/* Line 1464 of yacc.c  */
-#line 1139 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1148 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler2darray; ;}
     break;
 
-  case 212:
+  case 216:
 
-/* Line 1464 of yacc.c  */
-#line 1143 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1152 "glsl_parser.ypp"
     {
                           if (state->language_version < 130)
                              _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4558,10 +4564,10 @@ yyreduce:
                        ;}
     break;
 
-  case 213:
+  case 217:
 
-/* Line 1464 of yacc.c  */
-#line 1154 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1163 "glsl_parser.ypp"
     {
                           if (state->language_version < 130)
                              _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4575,10 +4581,10 @@ yyreduce:
                        ;}
     break;
 
-  case 214:
+  case 218:
 
-/* Line 1464 of yacc.c  */
-#line 1165 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1174 "glsl_parser.ypp"
     {
                           if (state->language_version < 130)
                              _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4592,10 +4598,10 @@ yyreduce:
                        ;}
     break;
 
-  case 215:
+  case 219:
 
-/* Line 1464 of yacc.c  */
-#line 1180 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1189 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
@@ -4603,10 +4609,10 @@ yyreduce:
        ;}
     break;
 
-  case 216:
+  case 220:
 
-/* Line 1464 of yacc.c  */
-#line 1186 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1195 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
@@ -4614,30 +4620,30 @@ yyreduce:
        ;}
     break;
 
-  case 217:
+  case 221:
 
-/* Line 1464 of yacc.c  */
-#line 1195 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1204 "glsl_parser.ypp"
     {
           (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list);
           (yyvsp[(1) - (1)].declarator_list)->link.self_link();
        ;}
     break;
 
-  case 218:
+  case 222:
 
-/* Line 1464 of yacc.c  */
-#line 1200 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1209 "glsl_parser.ypp"
     {
           (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node);
           (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
        ;}
     break;
 
-  case 219:
+  case 223:
 
-/* Line 1464 of yacc.c  */
-#line 1208 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1217 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
@@ -4651,30 +4657,30 @@ yyreduce:
        ;}
     break;
 
-  case 220:
+  case 224:
 
-/* Line 1464 of yacc.c  */
-#line 1223 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1232 "glsl_parser.ypp"
     {
           (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
           (yyvsp[(1) - (1)].declaration)->link.self_link();
        ;}
     break;
 
-  case 221:
+  case 225:
 
-/* Line 1464 of yacc.c  */
-#line 1228 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1237 "glsl_parser.ypp"
     {
           (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
           (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
        ;}
     break;
 
-  case 222:
+  case 226:
 
-/* Line 1464 of yacc.c  */
-#line 1236 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1245 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
@@ -4682,10 +4688,10 @@ yyreduce:
        ;}
     break;
 
-  case 223:
+  case 227:
 
-/* Line 1464 of yacc.c  */
-#line 1242 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1251 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
@@ -4693,31 +4699,31 @@ yyreduce:
        ;}
     break;
 
-  case 228:
+  case 232:
 
-/* Line 1464 of yacc.c  */
-#line 1265 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1274 "glsl_parser.ypp"
     { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
     break;
 
-  case 234:
+  case 238:
 
-/* Line 1464 of yacc.c  */
-#line 1277 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1286 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
-  case 235:
+  case 239:
 
-/* Line 1464 of yacc.c  */
-#line 1278 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1287 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
-  case 238:
+  case 242:
 
-/* Line 1464 of yacc.c  */
-#line 1285 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1294 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
@@ -4725,10 +4731,10 @@ yyreduce:
        ;}
     break;
 
-  case 239:
+  case 243:
 
-/* Line 1464 of yacc.c  */
-#line 1291 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1300 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node));
@@ -4736,17 +4742,17 @@ yyreduce:
        ;}
     break;
 
-  case 240:
+  case 244:
 
-/* Line 1464 of yacc.c  */
-#line 1299 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1308 "glsl_parser.ypp"
     { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
     break;
 
-  case 242:
+  case 246:
 
-/* Line 1464 of yacc.c  */
-#line 1305 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1314 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
@@ -4754,10 +4760,10 @@ yyreduce:
        ;}
     break;
 
-  case 243:
+  case 247:
 
-/* Line 1464 of yacc.c  */
-#line 1311 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1320 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
@@ -4765,10 +4771,10 @@ yyreduce:
        ;}
     break;
 
-  case 244:
+  case 248:
 
-/* Line 1464 of yacc.c  */
-#line 1320 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1329 "glsl_parser.ypp"
     {
           if ((yyvsp[(1) - (1)].node) == NULL) {
              _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
@@ -4780,10 +4786,10 @@ yyreduce:
        ;}
     break;
 
-  case 245:
+  case 249:
 
-/* Line 1464 of yacc.c  */
-#line 1330 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1339 "glsl_parser.ypp"
     {
           if ((yyvsp[(2) - (2)].node) == NULL) {
              _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
@@ -4794,10 +4800,10 @@ yyreduce:
        ;}
     break;
 
-  case 246:
+  case 250:
 
-/* Line 1464 of yacc.c  */
-#line 1342 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1351 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_expression_statement(NULL);
@@ -4805,10 +4811,10 @@ yyreduce:
        ;}
     break;
 
-  case 247:
+  case 251:
 
-/* Line 1464 of yacc.c  */
-#line 1348 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1357 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
@@ -4816,10 +4822,10 @@ yyreduce:
        ;}
     break;
 
-  case 248:
+  case 252:
 
-/* Line 1464 of yacc.c  */
-#line 1357 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1366 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (7)].expression), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node));
@@ -4827,10 +4833,10 @@ yyreduce:
        ;}
     break;
 
-  case 249:
+  case 253:
 
-/* Line 1464 of yacc.c  */
-#line 1366 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1375 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].node), NULL);
@@ -4838,10 +4844,10 @@ yyreduce:
        ;}
     break;
 
-  case 250:
+  case 254:
 
-/* Line 1464 of yacc.c  */
-#line 1372 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1381 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].node), NULL);
@@ -4849,10 +4855,10 @@ yyreduce:
        ;}
     break;
 
-  case 251:
+  case 255:
 
-/* Line 1464 of yacc.c  */
-#line 1378 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1387 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (7)].expression), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node));
@@ -4860,19 +4866,19 @@ yyreduce:
        ;}
     break;
 
-  case 252:
+  case 256:
 
-/* Line 1464 of yacc.c  */
-#line 1387 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1396 "glsl_parser.ypp"
     {
           (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
        ;}
     break;
 
-  case 253:
+  case 257:
 
-/* Line 1464 of yacc.c  */
-#line 1391 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1400 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
@@ -4885,10 +4891,10 @@ yyreduce:
        ;}
     break;
 
-  case 257:
+  case 261:
 
-/* Line 1464 of yacc.c  */
-#line 1414 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1423 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
@@ -4897,10 +4903,10 @@ yyreduce:
        ;}
     break;
 
-  case 258:
+  case 262:
 
-/* Line 1464 of yacc.c  */
-#line 1421 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1430 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
@@ -4909,10 +4915,10 @@ yyreduce:
        ;}
     break;
 
-  case 259:
+  case 263:
 
-/* Line 1464 of yacc.c  */
-#line 1428 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1437 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
@@ -4921,39 +4927,39 @@ yyreduce:
        ;}
     break;
 
-  case 263:
+  case 267:
 
-/* Line 1464 of yacc.c  */
-#line 1444 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1453 "glsl_parser.ypp"
     {
           (yyval.node) = NULL;
        ;}
     break;
 
-  case 264:
+  case 268:
 
-/* Line 1464 of yacc.c  */
-#line 1451 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1460 "glsl_parser.ypp"
     {
           (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
           (yyval.for_rest_statement).rest = NULL;
        ;}
     break;
 
-  case 265:
+  case 269:
 
-/* Line 1464 of yacc.c  */
-#line 1456 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1465 "glsl_parser.ypp"
     {
           (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
           (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
        ;}
     break;
 
-  case 266:
+  case 270:
 
-/* Line 1464 of yacc.c  */
-#line 1465 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1474 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
@@ -4961,10 +4967,10 @@ yyreduce:
        ;}
     break;
 
-  case 267:
+  case 271:
 
-/* Line 1464 of yacc.c  */
-#line 1471 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1480 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
@@ -4972,10 +4978,10 @@ yyreduce:
        ;}
     break;
 
-  case 268:
+  case 272:
 
-/* Line 1464 of yacc.c  */
-#line 1477 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1486 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
@@ -4983,10 +4989,10 @@ yyreduce:
        ;}
     break;
 
-  case 269:
+  case 273:
 
-/* Line 1464 of yacc.c  */
-#line 1483 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1492 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
@@ -4994,10 +5000,10 @@ yyreduce:
        ;}
     break;
 
-  case 270:
+  case 274:
 
-/* Line 1464 of yacc.c  */
-#line 1489 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1498 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
@@ -5005,24 +5011,31 @@ yyreduce:
        ;}
     break;
 
-  case 271:
+  case 275:
 
-/* Line 1464 of yacc.c  */
-#line 1497 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1506 "glsl_parser.ypp"
     { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
     break;
 
-  case 272:
+  case 276:
 
-/* Line 1464 of yacc.c  */
-#line 1498 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1507 "glsl_parser.ypp"
     { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
     break;
 
-  case 273:
+  case 277:
 
-/* Line 1464 of yacc.c  */
-#line 1503 "glsl_parser.ypp"
+/* Line 1455 of yacc.c  */
+#line 1508 "glsl_parser.ypp"
+    { (yyval.node) = NULL; ;}
+    break;
+
+  case 278:
+
+/* Line 1455 of yacc.c  */
+#line 1513 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.function_definition) = new(ctx) ast_function_definition();
@@ -5034,8 +5047,8 @@ yyreduce:
 
 
 
-/* Line 1464 of yacc.c  */
-#line 5039 "glsl_parser.cpp"
+/* Line 1455 of yacc.c  */
+#line 5052 "glsl_parser.cpp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5107,7 +5120,7 @@ yyerrlab:
 #endif
     }
 
-  yyerror_range[1] = yylloc;
+  yyerror_range[0] = yylloc;
 
   if (yyerrstatus == 3)
     {
@@ -5144,7 +5157,7 @@ yyerrorlab:
   if (/*CONSTCOND*/ 0)
      goto yyerrorlab;
 
-  yyerror_range[1] = yylsp[1-yylen];
+  yyerror_range[0] = yylsp[1-yylen];
   /* Do not reclaim the symbols of the rule which action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
@@ -5178,7 +5191,7 @@ yyerrlab1:
       if (yyssp == yyss)
        YYABORT;
 
-      yyerror_range[1] = *yylsp;
+      yyerror_range[0] = *yylsp;
       yydestruct ("Error: popping",
                  yystos[yystate], yyvsp, yylsp, state);
       YYPOPSTACK (1);
@@ -5188,10 +5201,10 @@ yyerrlab1:
 
   *++yyvsp = yylval;
 
-  yyerror_range[2] = yylloc;
+  yyerror_range[1] = yylloc;
   /* Using YYLLOC is tempting, but would change the location of
      the lookahead.  YYLOC is available though.  */
-  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
+  YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
   *++yylsp = yyloc;
 
   /* Shift the error token.  */
index 96f9df1129a9ac9c55c699c4dcc2beea348a6985..3ed90853adff2122151f3e8105beb20a5951f0e7 100644 (file)
@@ -1,9 +1,10 @@
-/* A Bison parser, made by GNU Bison 2.4.3.  */
+
+/* A Bison parser, made by GNU Bison 2.4.1.  */
 
 /* Skeleton interface for Bison's Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2009, 2010 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
      VERSION = 364,
      EXTENSION = 365,
      LINE = 366,
-     PRAGMA = 367,
-     COLON = 368,
-     EOL = 369,
-     INTERFACE = 370,
-     OUTPUT = 371,
-     LAYOUT_TOK = 372,
-     ASM = 373,
-     CLASS = 374,
-     UNION = 375,
-     ENUM = 376,
-     TYPEDEF = 377,
-     TEMPLATE = 378,
-     THIS = 379,
-     PACKED_TOK = 380,
-     GOTO = 381,
-     INLINE_TOK = 382,
-     NOINLINE = 383,
-     VOLATILE = 384,
-     PUBLIC_TOK = 385,
-     STATIC = 386,
-     EXTERN = 387,
-     EXTERNAL = 388,
-     LONG_TOK = 389,
-     SHORT_TOK = 390,
-     DOUBLE_TOK = 391,
-     HALF = 392,
-     FIXED_TOK = 393,
-     UNSIGNED = 394,
-     INPUT_TOK = 395,
-     OUPTUT = 396,
-     HVEC2 = 397,
-     HVEC3 = 398,
-     HVEC4 = 399,
-     DVEC2 = 400,
-     DVEC3 = 401,
-     DVEC4 = 402,
-     FVEC2 = 403,
-     FVEC3 = 404,
-     FVEC4 = 405,
-     SAMPLER2DRECT = 406,
-     SAMPLER3DRECT = 407,
-     SAMPLER2DRECTSHADOW = 408,
-     SIZEOF = 409,
-     CAST = 410,
-     NAMESPACE = 411,
-     USING = 412,
-     ERROR_TOK = 413,
-     COMMON = 414,
-     PARTITION = 415,
-     ACTIVE = 416,
-     SAMPLERBUFFER = 417,
-     FILTER = 418,
-     IMAGE1D = 419,
-     IMAGE2D = 420,
-     IMAGE3D = 421,
-     IMAGECUBE = 422,
-     IMAGE1DARRAY = 423,
-     IMAGE2DARRAY = 424,
-     IIMAGE1D = 425,
-     IIMAGE2D = 426,
-     IIMAGE3D = 427,
-     IIMAGECUBE = 428,
-     IIMAGE1DARRAY = 429,
-     IIMAGE2DARRAY = 430,
-     UIMAGE1D = 431,
-     UIMAGE2D = 432,
-     UIMAGE3D = 433,
-     UIMAGECUBE = 434,
-     UIMAGE1DARRAY = 435,
-     UIMAGE2DARRAY = 436,
-     IMAGE1DSHADOW = 437,
-     IMAGE2DSHADOW = 438,
-     IMAGEBUFFER = 439,
-     IIMAGEBUFFER = 440,
-     UIMAGEBUFFER = 441,
-     ROW_MAJOR = 442
+     COLON = 367,
+     EOL = 368,
+     INTERFACE = 369,
+     OUTPUT = 370,
+     PRAGMA_DEBUG_ON = 371,
+     PRAGMA_DEBUG_OFF = 372,
+     PRAGMA_OPTIMIZE_ON = 373,
+     PRAGMA_OPTIMIZE_OFF = 374,
+     LAYOUT_TOK = 375,
+     ASM = 376,
+     CLASS = 377,
+     UNION = 378,
+     ENUM = 379,
+     TYPEDEF = 380,
+     TEMPLATE = 381,
+     THIS = 382,
+     PACKED_TOK = 383,
+     GOTO = 384,
+     INLINE_TOK = 385,
+     NOINLINE = 386,
+     VOLATILE = 387,
+     PUBLIC_TOK = 388,
+     STATIC = 389,
+     EXTERN = 390,
+     EXTERNAL = 391,
+     LONG_TOK = 392,
+     SHORT_TOK = 393,
+     DOUBLE_TOK = 394,
+     HALF = 395,
+     FIXED_TOK = 396,
+     UNSIGNED = 397,
+     INPUT_TOK = 398,
+     OUPTUT = 399,
+     HVEC2 = 400,
+     HVEC3 = 401,
+     HVEC4 = 402,
+     DVEC2 = 403,
+     DVEC3 = 404,
+     DVEC4 = 405,
+     FVEC2 = 406,
+     FVEC3 = 407,
+     FVEC4 = 408,
+     SAMPLER2DRECT = 409,
+     SAMPLER3DRECT = 410,
+     SAMPLER2DRECTSHADOW = 411,
+     SIZEOF = 412,
+     CAST = 413,
+     NAMESPACE = 414,
+     USING = 415,
+     ERROR_TOK = 416,
+     COMMON = 417,
+     PARTITION = 418,
+     ACTIVE = 419,
+     SAMPLERBUFFER = 420,
+     FILTER = 421,
+     IMAGE1D = 422,
+     IMAGE2D = 423,
+     IMAGE3D = 424,
+     IMAGECUBE = 425,
+     IMAGE1DARRAY = 426,
+     IMAGE2DARRAY = 427,
+     IIMAGE1D = 428,
+     IIMAGE2D = 429,
+     IIMAGE3D = 430,
+     IIMAGECUBE = 431,
+     IIMAGE1DARRAY = 432,
+     IIMAGE2DARRAY = 433,
+     UIMAGE1D = 434,
+     UIMAGE2D = 435,
+     UIMAGE3D = 436,
+     UIMAGECUBE = 437,
+     UIMAGE1DARRAY = 438,
+     UIMAGE2DARRAY = 439,
+     IMAGE1DSHADOW = 440,
+     IMAGE2DSHADOW = 441,
+     IMAGEBUFFER = 442,
+     IIMAGEBUFFER = 443,
+     UIMAGEBUFFER = 444,
+     ROW_MAJOR = 445
    };
 #endif
 
 typedef union YYSTYPE
 {
 
-/* Line 1685 of yacc.c  */
+/* Line 1676 of yacc.c  */
 #line 52 "glsl_parser.ypp"
 
    int n;
@@ -263,8 +267,8 @@ typedef union YYSTYPE
 
 
 
-/* Line 1685 of yacc.c  */
-#line 268 "glsl_parser.h"
+/* Line 1676 of yacc.c  */
+#line 272 "glsl_parser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */