glsl: Refresh autogenerated lexer and parser files.
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 14 Nov 2010 06:02:32 +0000 (22:02 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 15 Nov 2010 21:33:58 +0000 (13:33 -0800)
For the last three commits.

src/glsl/glsl_lexer.cpp
src/glsl/glsl_parser.cpp
src/glsl/glsl_parser.h

index d3bc3aa9f1f6522292d7faa831a9efe4130001a3..e3d0a3cfc9dfe191e878d13ec3dcf8b8e7619730 100644 (file)
@@ -54,6 +54,7 @@ typedef int flex_int32_t;
 typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
 
 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -84,8 +85,6 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
-#endif /* ! C99 */
-
 #endif /* ! FLEXINT_H */
 
 #ifdef __cplusplus
@@ -159,15 +158,7 @@ typedef void* yyscan_t;
 
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
 #define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
 #endif
 
 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -358,8 +349,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 189
-#define YY_END_OF_BUFFER 190
+#define YY_NUM_RULES 209
+#define YY_END_OF_BUFFER 210
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -367,87 +358,98 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[716] =
+static yyconst flex_int16_t yy_accept[813] =
     {   0,
-        0,    0,   15,   15,    0,    0,  190,  188,    1,   20,
-      188,  188,  188,  188,  188,  188,  188,  188,  102,  100,
-      188,  188,  188,  187,  188,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  188,    1,  188,  189,   15,
-       19,  189,   18,   16,   17,   13,   12,    1,   84,   93,
-       85,   96,   90,   79,   92,   80,   99,  104,   91,  105,
-      102,    0,    0,  107,    0,  100,   88,   81,   83,   82,
-       89,  187,   97,   87,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,   29,  187,  187,  187,
-
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-       33,  187,  187,   60,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,   98,   86,    1,    0,
-        0,    2,    0,    0,    0,    0,   15,   14,   18,   17,
-        0,  104,  103,    0,  105,    0,  106,  101,   94,   95,
-      187,  110,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,   32,  187,  187,  187,  187,  187,  187,
-
-      187,  187,  187,  187,   25,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,   61,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,    0,    0,    0,    0,   14,
-        0,  104,    0,  103,    0,  105,  106,  187,  187,   23,
-      187,  187,  150,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,   31,  113,  187,  187,  187,  187,   67,  187,
-      187,  118,  132,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  129,  153,   48,   49,   50,  187,
-
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  116,
-      108,  187,  187,   26,  187,  187,  187,  187,  187,  187,
-       45,   46,   47,   77,  187,  187,    0,    0,    0,    0,
-        0,  103,  187,  187,   27,   36,   37,   38,  187,  111,
-      187,   22,  187,  187,  187,  187,  140,  141,  142,  187,
-      109,  187,  133,   24,  143,  144,  145,  155,  137,  138,
-      139,  187,  187,  187,   62,  135,  187,  187,   39,   40,
-       41,  187,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  130,  187,  187,
-
-      187,  187,  187,  187,  187,  187,  187,  187,  112,  187,
-      152,   42,   43,   44,  187,  187,   30,    0,    0,    0,
-        0,  159,  187,  187,  157,  187,  187,  187,  131,  126,
-      162,  187,  187,  187,  187,  187,  187,  121,  187,  187,
-       78,   51,   52,   53,   54,   55,   56,   57,   58,   59,
-      187,  187,  187,  187,  136,  117,  187,  187,  124,   35,
-      187,  187,  149,   68,  125,   76,  160,  119,  187,  187,
-      187,  187,  187,  187,  187,    0,    0,    0,    0,  187,
-      187,  187,  120,   34,  187,  187,  187,  187,  187,  187,
-      163,  164,  165,  187,  187,  187,  187,  154,  187,  187,
-
-      187,  187,  187,  187,  187,  187,  114,  187,  187,  187,
-      187,  187,   63,  187,   64,  187,    0,    0,    0,    0,
-        0,  187,   65,   28,  127,  167,  168,  169,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  122,
-      187,  187,  187,  187,  187,  187,  187,  187,  187,  115,
-      171,  172,  173,  187,  187,  134,  123,    0,    0,    6,
-        0,    0,    0,   11,    3,   21,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  166,  128,   66,  151,  187,
-      158,  156,  186,   70,   71,   72,  187,  187,  187,  187,
-      187,  187,    0,    0,    0,    0,    0,    0,  187,  187,
-
-      187,  170,  187,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  187,  187,  187,  187,  187,  174,    4,    0,
-        5,    0,    0,    0,    0,    0,  187,  187,  187,  187,
-      187,  187,  187,  183,  187,  187,  187,  187,  187,  187,
-       73,  187,  187,  187,    0,    0,    0,  187,  187,  184,
-      175,  187,  176,  187,  187,  187,  187,  187,  187,  187,
-      187,  187,  185,    0,    0,  177,  178,  181,  182,   69,
-      187,  146,  187,  147,  161,  179,  180,    0,    0,  187,
-      187,  187,    0,    0,    0,   74,  187,   75,    0,    0,
-        0,  187,    0,    0,    0,  187,    0,    0,    7,    0,
-
-        0,  187,    0,    8,    0,    0,  148,    0,    0,    0,
-        0,    9,    0,   10,    0
+        0,    0,   15,   15,    0,    0,  210,  208,    1,   20,
+      208,  208,  208,  208,  208,  208,  208,  208,  119,  117,
+      208,  208,  208,  207,  208,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  208,    1,  208,  209,   15,
+       19,  209,   18,   16,   17,   13,   12,    1,  101,  110,
+      102,  113,  107,   96,  109,   97,  116,  121,  108,  122,
+      119,    0,    0,  124,  119,    0,  117,  117,  105,   98,
+      100,   99,  106,  207,  114,  104,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,   29,  207,
+
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,   33,  207,  207,   60,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  115,
+      103,    1,    0,    0,    2,    0,    0,    0,    0,   15,
+       14,   18,   17,    0,  121,  120,    0,  122,    0,  123,
+      118,  111,  112,  207,  127,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,   32,  207,  207,  207,
+
+      207,  207,  207,  207,  207,  207,  207,   25,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,   61,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+        0,    0,    0,    0,   14,    0,  121,    0,  120,    0,
+      122,  123,  118,  207,  207,   23,  207,  207,  174,  167,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,   31,
+      130,  207,  207,  207,  207,   67,  207,  207,  135,  149,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+
+      207,  207,  146,  170,   48,   49,   50,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  133,  125,  207,
+      207,   26,  207,  207,  207,  207,  207,  207,  207,   45,
+       46,   47,   94,  207,  207,    0,    0,    0,    0,    0,
+      120,  207,  207,   27,   36,   37,   38,  207,  128,  207,
+       22,  207,  207,  207,  207,  157,  158,  159,  207,  126,
+      207,  150,   24,  160,  161,  162,  172,  154,  155,  156,
+      207,  207,  207,   62,  152,  207,  207,  207,   39,   40,
+       41,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+
+      207,  207,  207,  207,  207,  207,  207,  147,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  129,  207,
+      207,  169,   42,   43,   44,  207,  207,   30,    0,    0,
+        0,    0,  177,  207,  207,  175,  207,  207,  207,  148,
+      143,  180,  207,  207,  207,  207,  207,  207,  138,  207,
+      207,  207,   95,   51,   52,   53,   54,   55,   56,   57,
+       58,   59,  207,  207,  207,  207,  153,  134,  207,  207,
+      141,   35,  207,  207,  166,   68,  142,   93,  178,  136,
+      207,  207,  207,  207,  207,  207,  207,  207,    0,    0,
+        0,    0,  207,  207,  207,  137,   34,  207,  207,  207,
+
+      207,  207,  207,  181,  182,  183,  207,  207,  207,  207,
+      207,  171,  207,  207,  207,  207,  207,  207,  207,  207,
+      131,  207,  207,  207,  207,  207,   63,  207,  207,   64,
+      207,    0,    0,    0,    0,    0,  207,   65,   28,  144,
+      185,  186,  187,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  139,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  132,  189,  190,  191,  207,
+      207,  151,  207,  140,    0,    0,    6,    0,    0,    0,
+       11,    3,   21,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  184,  145,   66,  207,  207,  207,  207,  168,
+
+      207,  176,  173,  206,   70,   71,   72,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,    0,    0,    0,
+        0,    0,    0,  207,  207,  207,  188,  207,  207,  207,
+      207,  207,   81,   82,   83,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  192,   87,
+       88,   89,  207,    4,    0,    5,    0,    0,    0,    0,
+        0,  207,  207,  207,  207,  207,  207,  207,  203,  207,
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+       73,  207,  207,  207,  207,  207,  207,    0,    0,    0,
+      207,  207,  204,  193,  207,  194,  207,  207,  207,   84,
+
+      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
+      207,  205,  207,  207,   90,    0,    0,  195,  196,  207,
+      199,  207,  200,  207,  207,   69,  207,  207,  207,  163,
+      207,  164,  179,  207,  197,  198,  207,  207,    0,    0,
+      207,  207,  207,  207,   74,  207,   75,  207,  207,  207,
+      207,  207,    0,    0,    0,  207,  207,   85,   86,  207,
+       76,  207,  207,   77,  207,   91,   92,    0,    0,    0,
+      207,  207,  207,  207,  207,  207,    0,    0,    0,  207,
+      207,  207,  207,  207,   78,    0,    0,    7,    0,    0,
+      201,  202,  207,  207,  207,    0,    8,    0,    0,  207,
+
+      207,  165,    0,    0,   79,   80,    0,    0,    9,    0,
+       10,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -460,12 +462,12 @@ static yyconst flex_int32_t yy_ec[256] =
        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,
+       33,   34,   35,   33,   36,   33,   33,   37,   33,   33,
+        1,    1,    1,   38,   39,    1,   40,   41,   42,   43,
 
-       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,
+       44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
+       54,   55,   33,   56,   57,   58,   59,   60,   61,   62,
+       63,   64,    1,   65,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -482,317 +484,350 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int32_t yy_meta[65] =
+static yyconst flex_int32_t yy_meta[66] =
     {   0,
         1,    2,    3,    1,    1,    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,
+        5,    5,    7,    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,
-        8,    7,    7,    1
+        7,    8,    7,    7,    1
     } ;
 
-static yyconst flex_int16_t yy_base[727] =
+static yyconst flex_int16_t yy_base[824] =
     {   0,
-        0,   63,   69,    0, 1083, 1082, 1084, 1087,   64, 1087,
-     1058, 1057,  126, 1056,  123,  124,  122, 1055,  138,  186,
-      121, 1054,  136,    0,  128,  122,  113,  134,  133,  133,
-      162, 1025,  151,  172,   97,  128,  136, 1019,  156,  179,
-      187,  193,  190,  211, 1030,  163,  254,  238, 1087,  189,
-     1087, 1060,  249, 1087,    0, 1087, 1087,  249, 1087, 1087,
-     1087, 1087, 1087, 1087, 1087, 1087, 1087,  230, 1087,  246,
-      221,  284,  301, 1087,    0,    0, 1049, 1087, 1087, 1087,
-     1048,    0, 1087, 1087, 1015, 1020, 1013, 1016, 1025, 1024,
-     1010, 1013, 1025,  145, 1019, 1006, 1003, 1017, 1003, 1000,
-
-     1000, 1006,  202,  233, 1000, 1011,  996, 1002, 1006, 1007,
-        0,  998, 1009,  226, 1004,  984,  168,  988, 1002,  992,
-      237,  985,  252,  998, 1000,  982,  978,  986,  983,  972,
-      981,  204,  979,  985,  980,  983,  971,  974,  243,  240,
-      980,  983,  970,  983,  261,  976, 1087, 1087,  327,  307,
-      322, 1087,  961,  974,  965,  976,  328,    0,  318,    0,
-      366, 1087,  310,  377, 1087,  327,  384,    0, 1087, 1087,
-      971,    0,  962,  966,  976,  973,  956,  955,  955,  959,
-      295,  970,  967,  967,  965,  962,  953,  960,  946,  944,
-      957,  942,  959,    0,  956,  943,  951,  948,  952,  953,
-
-      946,  943,  931,  930,  944,  947,  944,  931,  938,  928,
-      340,  934,  937,  927,  935,  923,  927,  918,  933,  923,
-      914,  933,  916,  914,  925,  914,  909,  907,  921,  906,
-      908,  905,  917,  916,  919,  900,  311,  909,  903,  913,
-      891,  349,  910,  912,  900,  892,  896,  908,  891,    0,
-      391,  401,  418, 1087,  430,  437, 1087,  886,  897,    0,
-      894,  355,    0,  887,  885,  887,  882,  891,  879,  897,
-      885,  406,    0,    0,  879,  890,  889,  889,    0,  873,
-      423,    0,    0,  875,  442,  883,  884,  874,  868,  867,
-      868,  867,  445,  863,    0,    0,  859,  858,  857,  859,
-
-      860,  865,  859,  855,  869,  864,  863,  862,  853,  856,
-      856,  848,  851,  846,  855,  860,  845,  858,  848,    0,
-        0,  855,  851,    0,  842,  842,  848,  847,  448,  844,
-        0,    0,    0,    0,  833,  846,  845,  844,  841,  829,
-      454,  466,  841,  843,    0,    0,    0,    0,  829,    0,
-      829,    0,  828,  829,  823,  834,    0,    0,    0,  824,
-        0,  820,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  831,  461,  830,    0,    0,  828,  824,    0,    0,
-        0,  813,  473,  476,  481,  818,  814,  820,  810,  808,
-      822,  806,  806,  820,  808,  820,  815,    0,  813,  810,
-
-      814,  797,  799,  806,  812,  807,  806,  793,    0,  795,
-        0,    0,    0,    0,  794,  798,    0,  792,  841,  791,
-      794,    0,  782,  792,    0,  780,  780,  794,    0,  796,
-        0,  485,  804,  803,  802,  773,  772,    0,  790,  789,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      773,  787,  773,  770,    0,    0,  776,  775,    0,    0,
-      773,  765,    0,    0,    0,    0,    0,    0,  762,  774,
-      488,  766,  773,  770,  764,  757,  506,  773,  758,  753,
-      767,  765,    0,    0,  757,  776,  775,  774,  745,  744,
-      335,  336,    0,  757,  760,  758,  746,    0,  756,  753,
-
-      752,  741,  740,  739,  501,  748,    0,  760,  759,  758,
-      729,  728,    0,  743,    0,  741,  736,  509,  530,  780,
-      729,  737,    0,    0,    0,  752,  751,    0,  733,  736,
-      720,  728,  718,  726,  727,  727,  726,  711,  724,    0,
-      725,  713,  712,  708,  732,  731,  730,  701,  700,    0,
-      730,  729,    0,  711,  714,    0,    0,  700,  537, 1087,
-      558,    0,  564,  560, 1087,    0,  697,  696,  706,  706,
-      693,  708,  691,  706,  701,    0,    0,    0,    0,  686,
-        0,    0,    0,  707,  357,  707,  696,  699,  683,  682,
-      692,  692,  682,  532,  587,  412,  690,  678,  676,  675,
-
-      686,    0,  689,  685,  687,  683,  669,  676,  676,  678,
-      674,  676,  674,  674,  661,  660,  671,    0, 1087,  534,
-     1087,  598,    0,  608,  673,  655,  672,  671,  654,  646,
-      654,  644,  652,    0,  645,  664,  661,  658,  655,  652,
-        0,  648,  647,  630,  539,  618,  600,  584,  583,    0,
-        0,  579,    0,  578,  594,  580,  564,  527,  506,  489,
-      453,  447,    0,  452,  426,    0,    0,    0,    0,    0,
-      391,  397,  376,    0,    0,    0,    0,  529,  380,  320,
-      331,  296,  562,  273,  249,    0,  260,    0,  519,  521,
-      192,  183,  169,  585,  589,  111,  586,  610, 1087,  590,
-
-      541,   87,  621, 1087,  595,  588,    0,   23,  631,  632,
-      633, 1087,  634, 1087, 1087,  648,  653,  658,  663,  665,
-      667,  673,  680,  685,  690,  695
+        0,   64,   70,    0, 1185, 1184, 1186, 1189,   65, 1189,
+     1160, 1159,  128, 1158,  125,  126,  124, 1157,  140,  189,
+      123, 1156,  138,    0,  127,  124,  113,  135,  144,  161,
+      176, 1126,  130,  187,  140,  143,  161, 1120,  182,  174,
+      202,  199,  211,  212, 1131,  130,  263,  255, 1189,  189,
+     1189, 1162,  256, 1189,    0, 1189, 1189,  215, 1189, 1189,
+     1189, 1189, 1189, 1189, 1189, 1189, 1189,  248, 1189,  250,
+      112,  302,  319, 1189, 1189,    0,    0, 1189, 1151, 1189,
+     1189, 1189, 1150,    0, 1189, 1189, 1116, 1121, 1114, 1117,
+     1126, 1125, 1111, 1114, 1126,  144, 1120, 1107, 1104, 1118,
+
+     1104, 1101, 1101, 1107,  175,  191, 1101, 1112, 1097, 1103,
+     1107, 1108,    0, 1099, 1110,  247, 1109, 1104, 1084,  230,
+     1088, 1102, 1092,  241, 1085,  228, 1098, 1100, 1082, 1078,
+     1086, 1083, 1072, 1081,  173, 1079, 1085, 1080, 1083, 1071,
+     1074,  233,  240,  260, 1084, 1071, 1084,  239, 1077, 1189,
+     1189,  307,  301,  323, 1189, 1062, 1075, 1066, 1077,  249,
+        0,  368,    0,  379, 1189,  298,  390, 1189,  397,  404,
+      291, 1189, 1189, 1072,    0, 1063, 1067, 1077, 1074,  270,
+     1057, 1057, 1061,  291, 1072, 1069, 1069, 1067, 1064, 1055,
+     1062, 1048, 1046, 1059, 1044, 1061,    0, 1058, 1045, 1053,
+
+     1050, 1054, 1055, 1048, 1045, 1033, 1032, 1046, 1049, 1036,
+     1045, 1032, 1039, 1029,  335, 1035, 1038, 1028, 1036, 1024,
+     1028, 1019, 1034, 1024, 1015, 1034, 1017, 1015, 1026, 1015,
+     1010, 1008, 1022, 1007, 1009, 1006, 1018, 1017, 1020, 1001,
+      306, 1010, 1005, 1003, 1013,  991,  339, 1010, 1012, 1000,
+      992,  996, 1008,  991,    0,  411,  421,  438, 1189,  451,
+      458, 1189, 1189,  986,  997,    0,  994,  344,    0,    0,
+      987,  985,  987,  982,  991,  979,  997,  985,  350,    0,
+        0,  979,  990,  989,  989,    0,  973,  353,    0,    0,
+      975,  357,  983,  984,  974,  968,  967,  968,  967,  967,
+
+      361,  962,    0,    0,  958,  957,  956,  958,  959,  964,
+      958,  954,  968,  963,  962,  961,  952,  955,  955,  947,
+      950,  945,  954,  959,  944,  957,  947,    0,    0,  954,
+      950,    0,  941,  941,  947,  937,  945,  426,  942,    0,
+        0,    0,    0,  931,  944,  943,  942,  939,  927,  465,
+      475,  939,  941,    0,    0,    0,    0,  927,    0,  927,
+        0,  926,  927,  921,  932,    0,    0,    0,  922,    0,
+      918,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      929,  481,  928,    0,    0,  926,  922,  918,    0,    0,
+        0,  910,  443,  486,  493,  915,  911,  917,  907,  905,
+
+      919,  903,  903,  917,  905,  917,  912,    0,  910,  907,
+      911,  894,  896,  903,  909,  904,  903,  890,    0,  892,
+      893,    0,    0,    0,    0,  890,  894,    0,  888,  938,
+      887,  890,    0,  878,  888,    0,  876,  876,  890,    0,
+      892,    0,  497,  901,  900,  899,  869,  868,    0,  886,
+      885,  880,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  868,  882,  868,  865,    0,    0,  871,  870,
+        0,    0,  868,  860,    0,    0,    0,    0,    0,    0,
+      857,  869,  500,  861,  868,  867,  864,  858,  851,  519,
+      867,  852,  847,  861,  859,    0,    0,  851,  871,  870,
+
+      869,  839,  838,  495,  496,    0,  851,  854,  852,  840,
+      836,    0,  849,  846,  845,  834,  833,  832,  515,  841,
+        0,  854,  853,  852,  822,  821,    0,  836,  822,    0,
+      833,  828,  543,  545,  873,  821,  829,    0,    0,    0,
+      845,  844,    0,  825,  828,  812,  820,  810,  818,  819,
+      819,  818,  803,  539,  816,    0,  817,  805,  804,  800,
+      825,  824,  823,  793,  792,    0,  823,  822,    0,  803,
+      806,    0,  552,    0,  792,  557, 1189,  580,    0,  590,
+      499, 1189,    0,  789,  788,  798,  798,  785,  800,  783,
+      798,  793,    0,    0,    0,  806,  805,  804,  774,    0,
+
+      774,    0,    0,    0,  559,  568,  797,  785,  788,  772,
+      771,  781,  781,  794,  793,  792,  762,  767,  552,  613,
+      363,  775,  763,  761,  760,  771,    0,  774,  770,  772,
+      768,  754,  782,  781,    0,  766,  758,  749,  757,  747,
+      758,  754,  756,  754,  754,  741,  740,  751,    0,  767,
+      766,    0,  751, 1189,  391, 1189,  620,    0,  640,  750,
+      732,  749,  748,  731,  723,  731,  721,  729,    0,  726,
+      725,  736,  719,  722,  737,  720,  733,  734,  731,  728,
+      736,  730,  729,  712,  711,  710,  721,  402,  705,  715,
+      699,  698,    0,  725,  698,  723,  696,  700,  699,    0,
+
+      710,  713,  709,  711,  688,  702,  686,  680,  688,  671,
+      662,    0,  640,  639,    0,  648,  641,    0,    0,  645,
+        0,  644,    0,  650,  649,    0,  625,  633,  623,  650,
+      630,    0,    0,  643,    0,    0,  642,  641,  582,  632,
+      639,  638,  614,  613,  635,  608,  633,  607,  590,  607,
+      586,  585,  611,  380,  526,  545,  544,    0,    0,  538,
+        0,  504,  510,    0,  495,    0,    0,  550,  572,  483,
+      470,  454,  462,  449,  445,  404,  419,  616,  619,  391,
+      387,  404,  392,  290,    0,  617,  642, 1189,  644,  570,
+        0,    0,  263,  258,  139,  645, 1189,  643,  618,  107,
+
+       77,    0,   23,  662,    0,    0,  663,  664, 1189,  665,
+     1189, 1189,  697,  702,  707,  712,  714,  716,  722,  729,
+      734,  739,  744
     } ;
 
-static yyconst flex_int16_t yy_def[727] =
+static yyconst flex_int16_t yy_def[824] =
     {   0,
-      715,    1,  715,    3,  716,  716,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  717,  715,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  718,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  719,  715,  720,
-       19,  715,  715,  715,  721,   20,  715,  715,  715,  715,
-      715,  717,  715,  715,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  722,  715,  718,
-      715,  715,  720,  715,  715,  715,  715,  721,  715,  715,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  715,  715,  715,  715,  722,
-      715,  715,  715,  715,  715,  715,  715,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  715,  715,  715,  715,
-      715,  715,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  715,  715,  715,
-      715,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  715,  715,  715,  715,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  715,  723,  715,  715,
-      715,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  715,  715,  715,
-      715,  724,  715,  715,  715,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  715,  725,  715,  724,  715,  715,  717,  717,
-
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  715,  715,
-      715,  715,  726,  715,  715,  715,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  726,  715,  715,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  717,  717,  717,
-      717,  717,  717,  715,  715,  717,  717,  717,  717,  717,
-      717,  717,  717,  717,  717,  717,  717,  715,  715,  717,
-      717,  717,  715,  715,  715,  717,  717,  717,  715,  715,
-      715,  717,  715,  715,  715,  717,  715,  715,  715,  715,
-
-      715,  717,  715,  715,  715,  715,  717,  715,  715,  715,
-      715,  715,  715,  715,    0,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715
+      812,    1,  812,    3,  813,  813,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  814,  812,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  815,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  816,  812,  817,
+       19,  812,  812,  812,  812,  818,   20,  812,  812,  812,
+      812,  812,  812,  814,  812,  812,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      819,  812,  815,  812,  812,  817,  812,  812,  812,  812,
+      818,  812,  812,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      812,  812,  812,  812,  819,  812,  812,  812,  812,  812,
+      812,  812,  812,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  812,  812,  812,  812,  812,
+      812,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  812,  812,
+      812,  812,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  812,  812,
+      812,  812,  814,  814,  814,  814,  814,  814,  814,  814,
+
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  812,  820,  812,  812,  812,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  812,  812,  812,  812,  821,  812,
+      812,  812,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  812,  822,  812,
+      821,  812,  812,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  812,  812,  812,  812,  823,  812,  812,
+      812,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  823,  812,  812,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  812,  812,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  814,  812,  812,
+      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
+      814,  814,  812,  812,  812,  814,  814,  814,  814,  814,
+      814,  814,  814,  814,  814,  814,  814,  812,  812,  812,
+      814,  814,  814,  814,  814,  814,  812,  812,  812,  814,
+      814,  814,  814,  814,  814,  812,  812,  812,  812,  812,
+      814,  814,  814,  814,  814,  812,  812,  812,  812,  814,
+
+      814,  814,  812,  812,  814,  814,  812,  812,  812,  812,
+      812,    0,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812
     } ;
 
-static yyconst flex_int16_t yy_nxt[1152] =
+static yyconst flex_int16_t yy_nxt[1255] =
     {   0,
         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,   58,  710,   58,   48,   49,
-       50,   51,   50,   49,   49,   49,   49,   49,   49,   49,
-       49,   49,   49,   52,   49,   53,   53,   53,   53,   53,
-       53,   54,   49,   49,   49,   55,   55,   55,   55,   55,
-
-       55,   55,   55,   55,   55,   49,   55,   55,   55,   55,
+       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,   58,  807,   58,   48,
+       49,   50,   51,   50,   49,   49,   49,   49,   49,   49,
+       49,   49,   49,   49,   52,   49,   53,   53,   53,   53,
+       53,   53,   54,   49,   49,   49,   55,   55,   55,   55,
+
+       55,   55,   55,   55,   55,   55,   55,   49,   55,   55,
        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   49,   61,   64,  116,   66,   68,   68,   68,
-       68,   68,   68,   68,   77,   78,  707,   65,   67,  117,
-       62,   70,   83,   71,   71,   71,   71,   71,   71,   72,
-       80,   81,   85,  702,   84,   88,  118,   89,   73,   74,
-      119,   90,   91,   75,  120,   95,   92,   86,   87,   96,
-       73,   74,   99,   93,  100,   97,   94,  147,  121,  108,
-      157,   98,  157,  101,  123,  180,  181,  109,   75,   70,
-
-      102,   76,   76,   76,   76,   76,   76,   76,  103,  110,
-      124,  104,  697,  125,  105,  111,   73,   74,  112,  209,
-      106,  126,  113,  114,  696,  128,  148,  210,   73,   74,
-      115,  127,  129,  130,  695,  135,  139,  131,  136,  151,
-      152,  140,  227,  132,  133,  141,  134,  137,  142,  143,
-       58,  190,   58,  144,  138,  149,  715,   58,  228,  150,
-      161,  162,  191,  145,  159,  159,  159,  159,  159,  159,
-      159,  192,  161,  162,  689,  202,  164,  165,  203,  204,
-      153,  715,  205,  214,  206,  193,  237,  154,  164,  165,
-      215,  155,  217,  235,  236,  238,  156,   70,  692,   72,
-
-       72,   72,   72,   72,   72,   72,  218,  243,  151,  152,
-      244,  691,  166,  166,   73,   74,  167,  167,  167,  167,
-      167,  167,  167,  151,  152,  690,   73,   74,  149,  157,
-       58,  157,  150,  159,  159,  159,  159,  159,  159,  159,
-      253,  254,  167,  167,  167,  167,  167,  167,  167,  153,
-      267,  268,  253,  254,  325,  688,  154,  297,  298,  299,
-      155,  531,  533,  326,  153,  156,  331,  332,  333,  532,
-      534,  154,  346,  347,  348,  155,  687,  251,  251,  686,
-      156,  252,  252,  252,  252,  252,  252,  252,  255,  255,
-      610,  611,  256,  256,  256,  256,  256,  256,  256,  167,
-
-      167,  167,  167,  167,  167,  167,  252,  252,  252,  252,
-      252,  252,  252,  559,  560,  257,  252,  252,  252,  252,
-      252,  252,  252,  357,  358,  359,  685,  257,  682,  341,
-      341,  681,  162,  342,  342,  342,  342,  342,  342,  342,
-      365,  366,  367,  680,  162,  256,  256,  256,  256,  256,
-      256,  256,  256,  256,  256,  256,  256,  256,  256,  369,
-      370,  371,  379,  380,  381,  412,  413,  414,  165,  342,
-      342,  342,  342,  342,  342,  342,  679,  433,  434,  435,
-      165,  342,  342,  342,  342,  342,  342,  342,  436,  437,
-      442,  443,  444,  445,  446,  447,  678,  254,  448,  449,
-
-      450,  486,  487,  488,  508,  509,  510,  477,  677,  254,
-      559,  560,  489,  490,  676,  511,  512,  545,  546,  547,
-      689,  518,  519,  519,  519,  519,  519,  519,  548,  549,
-      683,  559,  560,  620,  621,  620,  621,  684,  559,  560,
-      620,  621,  705,  675,  562,  563,  563,  563,  563,  563,
-      563,  563,  594,  595,  595,  595,  595,  595,  595,  559,
-      560,  564,  674,  683,  693,  559,  560,  623,  673,  562,
-      684,  690,  694,  561,  561,  561,  561,  561,  561,  563,
-      563,  563,  563,  563,  563,  563,  698,  703,  620,  621,
-      700,  700,  623,  706,  699,  704,  705,  701,  701,  620,
-
-      621,  597,  624,  624,  624,  624,  624,  624,  624,  620,
-      621,  698,  598,  622,  622,  622,  622,  622,  622,  699,
-      672,  671,  703,  624,  624,  624,  624,  624,  624,  624,
-      704,  708,  711,  713,  711,  713,  670,  669,  668,  709,
-      712,  714,  712,  714,  667,  666,  665,  706,   56,   56,
-       56,   56,   56,   56,   56,   56,   82,   82,   82,   82,
-       82,  160,  160,  160,  160,  160,   68,   68,  163,  163,
-      168,  168,  168,  250,  250,  664,  250,  250,  250,  250,
-      250,  561,  561,  561,  663,  662,  661,  561,  596,  596,
-      596,  622,  622,  622,  660,  659,  658,  622,  645,  645,
-
-      645,  657,  656,  655,  654,  653,  652,  651,  650,  649,
-      648,  647,  646,  644,  643,  642,  641,  640,  639,  638,
-      637,  636,  635,  634,  633,  632,  631,  630,  629,  628,
-      627,  626,  625,  619,  618,  617,  616,  615,  614,  613,
-      612,  609,  608,  607,  606,  605,  604,  603,  602,  601,
-      600,  599,  593,  592,  591,  590,  589,  588,  587,  586,
-      585,  584,  583,  582,  581,  580,  579,  578,  577,  576,
-      575,  574,  573,  572,  571,  570,  569,  568,  567,  566,
-      565,  564,  558,  557,  556,  555,  554,  553,  552,  551,
-      550,  544,  543,  542,  541,  540,  539,  538,  537,  536,
-
-      535,  530,  529,  528,  527,  526,  525,  524,  523,  522,
-      521,  520,  517,  516,  515,  514,  513,  507,  506,  505,
-      504,  503,  502,  501,  500,  499,  498,  497,  496,  495,
-      494,  493,  492,  491,  485,  484,  483,  482,  481,  480,
+       55,   55,   55,   55,   49,   61,   64,  806,   66,   68,
+       68,   68,   68,   68,   68,   68,   79,   80,  812,   65,
+       67,   85,   62,   70,  150,   71,   71,   71,   71,   71,
+       71,   72,   82,   83,   86,   87,   90,  805,   91,  110,
+       73,   74,   92,  812,   93,   75,   76,  111,   94,  119,
+       88,   89,  121,   73,   74,   95,  122,   97,   96,  112,
+      160,   98,  160,  120,  151,  183,  184,   99,   75,  802,
+
+      123,   76,   70,  100,   77,   77,   77,   77,   77,   77,
+       77,  101,  231,  102,  124,  104,   58,  129,   58,   73,
+       74,  126,  103,  105,   78,  193,  106,  130,  232,  107,
+      195,  113,   73,   74,  114,  108,  194,  127,  115,  116,
+      128,  131,  138,  117,  196,  139,  118,   78,  132,  133,
+      160,  146,  160,  134,  140,  147,  154,  155,  142,  135,
+      136,  141,  137,  143,  152,  148,   58,  144,  153,  221,
+      145,  162,  162,  162,  162,  162,  162,  162,  164,  165,
+      167,  168,  213,  222,  239,  240,  248,  241,  218,  249,
+      214,  164,  165,  167,  168,  219,  242,  205,  156,  243,
+
+      206,  207,  154,  155,  208,  157,  209,  244,  152,  158,
+       58,  801,  153,  269,  159,   70,  800,   72,   72,   72,
+       72,   72,   72,   72,  154,  155,  263,  270,  258,  259,
+      169,  169,   73,   74,  170,  170,  170,  170,  170,  170,
+      170,  258,  259,  795,  156,   73,   74,  274,  275,  263,
+      333,  157,  305,  306,  307,  158,  340,  341,  342,  334,
+      159,  355,  356,  357,  576,  577,  156,  366,  367,  368,
+      374,  375,  376,  157,  378,  379,  380,  158,  389,  390,
+      391,  768,  159,  162,  162,  162,  162,  162,  162,  162,
+      256,  256,  655,  656,  257,  257,  257,  257,  257,  257,
+
+      257,  260,  260,  655,  656,  261,  261,  261,  261,  261,
+      261,  261,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  257,  257,  257,  257,
+      257,  257,  257,  769,  794,  262,  257,  257,  257,  257,
+      257,  257,  257,  423,  424,  425,  793,  792,  262,  350,
+      350,  791,  165,  351,  351,  351,  351,  351,  351,  351,
+      454,  455,  456,  786,  785,  165,  261,  261,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+      351,  351,  351,  351,  351,  351,  351,  784,  783,  168,
+      351,  351,  351,  351,  351,  351,  351,  444,  445,  446,
+
+      581,  782,  168,  457,  458,  459,  259,  781,  447,  448,
+      460,  461,  462,  499,  500,  501,  522,  523,  524,  259,
+      490,  546,  548,  780,  502,  503,  779,  525,  526,  547,
+      549,  561,  562,  563,  533,  534,  534,  534,  534,  534,
+      534,  622,  564,  565,  576,  577,  576,  577,  776,  775,
+      774,  768,  623,  655,  656,  596,  597,  598,  576,  577,
+      580,  580,  580,  580,  580,  580,  580,  599,  614,  615,
+      616,  798,  619,  620,  620,  620,  620,  620,  620,  579,
+      617,  576,  577,  753,  773,  638,  772,  771,  658,  770,
+      754,  576,  577,  639,  640,  578,  578,  578,  578,  578,
+
+      578,  641,  642,  769,  579,  580,  580,  580,  580,  580,
+      580,  580,  753,  658,  655,  656,  777,  787,  796,  754,
+      789,  655,  656,  799,  778,  788,  797,  790,  659,  659,
+      659,  659,  659,  659,  659,  657,  657,  657,  657,  657,
+      657,  655,  656,  787,  798,  789,  796,  767,  766,  765,
+      764,  788,  790,  763,  797,  659,  659,  659,  659,  659,
+      659,  659,  803,  808,  810,  808,  810,  762,  761,  760,
+      804,  809,  811,  809,  811,  759,  758,  757,  756,  755,
+      752,  751,  750,  749,  748,  747,  746,  745,  744,  743,
+      742,  741,  740,  739,  738,  737,  799,   56,   56,   56,
+
+       56,   56,   56,   56,   56,   84,   84,   84,   84,   84,
+      163,  163,  163,  163,  163,   68,   68,  166,  166,  171,
+      171,  171,  255,  255,  736,  255,  255,  255,  255,  255,
+      578,  578,  578,  735,  734,  733,  578,  621,  621,  621,
+      657,  657,  657,  732,  731,  730,  657,  688,  688,  688,
+      729,  728,  727,  726,  725,  724,  723,  722,  721,  720,
+      719,  718,  717,  716,  715,  714,  713,  712,  711,  710,
+      709,  708,  707,  706,  705,  704,  703,  702,  701,  700,
+      699,  698,  697,  696,  695,  694,  693,  692,  691,  690,
+      689,  687,  686,  685,  684,  683,  682,  681,  680,  679,
+
+      678,  677,  676,  675,  674,  673,  672,  671,  670,  669,
+      668,  667,  666,  665,  664,  663,  662,  661,  660,  654,
+      653,  652,  651,  650,  649,  648,  647,  646,  645,  644,
+      643,  637,  636,  635,  634,  633,  632,  631,  630,  629,
+      628,  627,  626,  625,  624,  618,  613,  612,  611,  610,
+      609,  608,  607,  606,  605,  604,  603,  602,  601,  600,
+      595,  594,  593,  592,  591,  590,  589,  588,  587,  586,
+      585,  584,  583,  582,  581,  575,  574,  573,  572,  571,
+      570,  569,  568,  567,  566,  560,  559,  558,  557,  556,
+      555,  554,  553,  552,  551,  550,  545,  544,  543,  542,
+
+      541,  540,  539,  538,  537,  536,  535,  532,  531,  530,
+      529,  528,  527,  521,  520,  519,  518,  517,  516,  515,
+      514,  513,  512,  511,  510,  509,  508,  507,  506,  505,
+      504,  498,  497,  496,  495,  494,  493,  492,  491,  490,
+      489,  488,  487,  486,  485,  484,  483,  482,  481,  480,
       479,  478,  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,  441,
-      440,  439,  438,  432,  431,  430,  429,  428,  427,  426,
-      425,  424,  423,  422,  421,  420,  419,  418,  417,  416,
-      415,  411,  410,  409,  408,  407,  406,  405,  404,  403,
+      469,  468,  467,  466,  465,  464,  463,  453,  452,  451,
+      450,  449,  443,  442,  441,  440,  439,  438,  437,  436,
+      435,  434,  433,  432,  431,  430,  429,  428,  427,  426,
+      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,  378,  377,  376,  375,  374,  373,  372,  368,  364,
-      363,  362,  361,  360,  356,  355,  354,  353,  352,  351,
-      350,  349,  345,  344,  343,  340,  339,  338,  337,  336,
-      335,  334,  330,  329,  328,  327,  324,  323,  322,  321,
+      392,  388,  387,  386,  385,  384,  383,  382,  381,  377,
+      373,  372,  371,  370,  369,  365,  364,  363,  362,  361,
+      360,  359,  358,  354,  353,  352,  349,  348,  347,  346,
+      345,  344,  343,  339,  338,  337,  336,  335,  332,  331,
+      330,  329,  328,  327,  326,  325,  324,  323,  322,  321,
       320,  319,  318,  317,  316,  315,  314,  313,  312,  311,
-      310,  309,  308,  307,  306,  305,  304,  303,  302,  301,
-      300,  296,  295,  294,  293,  292,  291,  290,  289,  288,
-      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
+      310,  309,  308,  304,  303,  302,  301,  300,  299,  298,
+      297,  296,  295,  294,  293,  292,  291,  290,  289,  288,
 
-      277,  276,  275,  274,  273,  272,  271,  270,  269,  266,
-      265,  264,  263,  262,  261,  260,  259,  258,  249,  248,
-      247,  246,  245,  242,  241,  240,  239,  234,  233,  232,
-      231,  230,  229,  226,  225,  224,  223,  222,  221,  220,
-      219,  216,  213,  212,  211,  208,  207,  201,  200,  199,
-      198,  197,  196,  195,  194,  189,  188,  187,  186,  185,
-      184,  183,  182,  179,  178,  177,  176,  175,  174,  173,
-      172,  171,  170,  169,  158,  146,  122,  107,   79,   69,
-       63,   60,   59,  715,   57,   57,    7,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715
+      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
+      277,  276,  273,  272,  271,  268,  267,  266,  265,  264,
+      254,  253,  252,  251,  250,  247,  246,  245,  238,  237,
+      236,  235,  234,  233,  230,  229,  228,  227,  226,  225,
+      224,  223,  220,  217,  216,  215,  212,  211,  210,  204,
+      203,  202,  201,  200,  199,  198,  197,  192,  191,  190,
+      189,  188,  187,  186,  185,  182,  181,  180,  179,  178,
+      177,  176,  175,  174,  173,  172,  161,  149,  125,  109,
+       81,   69,   63,   60,   59,  812,   57,   57,    7,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812
     } ;
 
-static yyconst flex_int16_t yy_chk[1152] =
+static yyconst flex_int16_t yy_chk[1255] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -800,7 +835,7 @@ static yyconst flex_int16_t yy_chk[1152] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         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,    9,  708,    9,    2,    3,
+        1,    1,    1,    1,    1,    2,    9,  803,    9,    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,
@@ -808,119 +843,130 @@ static yyconst flex_int16_t yy_chk[1152] =
         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,   13,   15,   35,   16,   17,   17,   17,
-       17,   17,   17,   17,   21,   21,  702,   15,   16,   35,
-       13,   19,   25,   19,   19,   19,   19,   19,   19,   19,
-       23,   23,   26,  696,   25,   27,   36,   27,   19,   19,
-       36,   27,   28,   19,   37,   29,   28,   26,   26,   29,
-       19,   19,   30,   28,   30,   29,   28,   46,   37,   33,
-       50,   29,   50,   30,   39,   94,   94,   33,   19,   20,
-
-       31,   20,   20,   20,   20,   20,   20,   20,   31,   33,
-       39,   31,  693,   39,   31,   34,   20,   20,   34,  117,
-       31,   40,   34,   34,  692,   41,   46,  117,   20,   20,
-       34,   40,   41,   41,  691,   42,   43,   41,   42,   48,
-       48,   43,  132,   41,   41,   43,   41,   42,   43,   44,
-       58,  103,   58,   44,   42,   47,   71,   47,  132,   47,
-       68,   68,  103,   44,   53,   53,   53,   53,   53,   53,
-       53,  104,   68,   68,  684,  114,   70,   70,  114,  114,
-       48,   71,  114,  121,  114,  104,  140,   48,   70,   70,
-      121,   48,  123,  139,  139,  140,   48,   72,  687,   72,
-
-       72,   72,   72,   72,   72,   72,  123,  145,  150,  150,
-      145,  685,   73,   73,   72,   72,   73,   73,   73,   73,
-       73,   73,   73,  151,  151,  684,   72,   72,  149,  157,
-      149,  157,  149,  159,  159,  159,  159,  159,  159,  159,
-      163,  163,  166,  166,  166,  166,  166,  166,  166,  150,
-      181,  181,  163,  163,  237,  682,  150,  211,  211,  211,
-      150,  491,  492,  237,  151,  150,  242,  242,  242,  491,
-      492,  151,  262,  262,  262,  151,  681,  161,  161,  680,
-      151,  161,  161,  161,  161,  161,  161,  161,  164,  164,
-      585,  585,  164,  164,  164,  164,  164,  164,  164,  167,
-
-      167,  167,  167,  167,  167,  167,  251,  251,  251,  251,
-      251,  251,  251,  596,  596,  167,  252,  252,  252,  252,
-      252,  252,  252,  272,  272,  272,  679,  167,  673,  253,
-      253,  672,  252,  253,  253,  253,  253,  253,  253,  253,
-      281,  281,  281,  671,  252,  255,  255,  255,  255,  255,
-      255,  255,  256,  256,  256,  256,  256,  256,  256,  285,
-      285,  285,  293,  293,  293,  329,  329,  329,  256,  341,
-      341,  341,  341,  341,  341,  341,  665,  373,  373,  373,
-      256,  342,  342,  342,  342,  342,  342,  342,  373,  373,
-      383,  383,  383,  384,  384,  384,  664,  342,  385,  385,
-
-      385,  432,  432,  432,  471,  471,  471,  477,  662,  342,
-      518,  518,  432,  432,  661,  471,  471,  505,  505,  505,
-      689,  477,  477,  477,  477,  477,  477,  477,  505,  505,
-      678,  519,  519,  594,  594,  620,  620,  678,  559,  559,
-      645,  645,  701,  660,  518,  519,  519,  519,  519,  519,
-      519,  519,  559,  559,  559,  559,  559,  559,  559,  561,
-      561,  564,  659,  683,  690,  563,  563,  594,  658,  518,
-      683,  689,  690,  561,  561,  561,  561,  561,  561,  563,
-      563,  563,  563,  563,  563,  563,  694,  697,  595,  595,
-      695,  700,  594,  701,  694,  697,  705,  695,  700,  622,
-
-      622,  564,  595,  595,  595,  595,  595,  595,  595,  624,
-      624,  698,  564,  622,  622,  622,  622,  622,  622,  698,
-      657,  656,  703,  624,  624,  624,  624,  624,  624,  624,
-      703,  706,  709,  710,  711,  713,  655,  654,  652,  706,
-      709,  710,  711,  713,  649,  648,  647,  705,  716,  716,
-      716,  716,  716,  716,  716,  716,  717,  717,  717,  717,
-      717,  718,  718,  718,  718,  718,  719,  719,  720,  720,
-      721,  721,  721,  722,  722,  646,  722,  722,  722,  722,
-      722,  723,  723,  723,  644,  643,  642,  723,  724,  724,
-      724,  725,  725,  725,  640,  639,  638,  725,  726,  726,
-
-      726,  637,  636,  635,  633,  632,  631,  630,  629,  628,
-      627,  626,  625,  617,  616,  615,  614,  613,  612,  611,
-      610,  609,  608,  607,  606,  605,  604,  603,  601,  600,
-      599,  598,  597,  593,  592,  591,  590,  589,  588,  587,
-      586,  584,  580,  575,  574,  573,  572,  571,  570,  569,
-      568,  567,  558,  555,  554,  552,  551,  549,  548,  547,
-      546,  545,  544,  543,  542,  541,  539,  538,  537,  536,
-      535,  534,  533,  532,  531,  530,  529,  527,  526,  522,
-      521,  520,  517,  516,  514,  512,  511,  510,  509,  508,
-      506,  504,  503,  502,  501,  500,  499,  497,  496,  495,
-
-      494,  490,  489,  488,  487,  486,  485,  482,  481,  480,
-      479,  478,  476,  475,  474,  473,  472,  470,  469,  462,
-      461,  458,  457,  454,  453,  452,  451,  440,  439,  437,
-      436,  435,  434,  433,  430,  428,  427,  426,  424,  423,
-      421,  420,  419,  418,  416,  415,  410,  408,  407,  406,
-      405,  404,  403,  402,  401,  400,  399,  397,  396,  395,
-      394,  393,  392,  391,  390,  389,  388,  387,  386,  382,
-      378,  377,  374,  372,  362,  360,  356,  355,  354,  353,
-      351,  349,  344,  343,  340,  339,  338,  337,  336,  335,
-      330,  328,  327,  326,  325,  323,  322,  319,  318,  317,
-
-      316,  315,  314,  313,  312,  311,  310,  309,  308,  307,
-      306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
-      294,  292,  291,  290,  289,  288,  287,  286,  284,  280,
-      278,  277,  276,  275,  271,  270,  269,  268,  267,  266,
-      265,  264,  261,  259,  258,  249,  248,  247,  246,  245,
-      244,  243,  241,  240,  239,  238,  236,  235,  234,  233,
-      232,  231,  230,  229,  228,  227,  226,  225,  224,  223,
-      222,  221,  220,  219,  218,  217,  216,  215,  214,  213,
-      212,  210,  209,  208,  207,  206,  205,  204,  203,  202,
-      201,  200,  199,  198,  197,  196,  195,  193,  192,  191,
-
-      190,  189,  188,  187,  186,  185,  184,  183,  182,  180,
-      179,  178,  177,  176,  175,  174,  173,  171,  156,  155,
-      154,  153,  146,  144,  143,  142,  141,  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,   81,   77,   52,   45,   38,   32,   22,   18,
-       14,   12,   11,    7,    6,    5,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
-      715
+        3,    3,    3,    3,    3,   13,   15,  801,   16,   17,
+       17,   17,   17,   17,   17,   17,   21,   21,   71,   15,
+       16,   25,   13,   19,   46,   19,   19,   19,   19,   19,
+       19,   19,   23,   23,   25,   26,   27,  800,   27,   33,
+       19,   19,   27,   71,   28,   19,   19,   33,   28,   35,
+       26,   26,   36,   19,   19,   28,   36,   29,   28,   33,
+       50,   29,   50,   35,   46,   96,   96,   29,   19,  795,
+
+       37,   19,   20,   29,   20,   20,   20,   20,   20,   20,
+       20,   30,  135,   30,   37,   31,   58,   40,   58,   20,
+       20,   39,   30,   31,   20,  105,   31,   40,  135,   31,
+      106,   34,   20,   20,   34,   31,  105,   39,   34,   34,
+       39,   41,   42,   34,  106,   42,   34,   20,   41,   41,
+      160,   44,  160,   41,   42,   44,   48,   48,   43,   41,
+       41,   42,   41,   43,   47,   44,   47,   43,   47,  126,
+       43,   53,   53,   53,   53,   53,   53,   53,   68,   68,
+       70,   70,  120,  126,  142,  142,  148,  143,  124,  148,
+      120,   68,   68,   70,   70,  124,  143,  116,   48,  144,
+
+      116,  116,  153,  153,  116,   48,  116,  144,  152,   48,
+      152,  794,  152,  180,   48,   72,  793,   72,   72,   72,
+       72,   72,   72,   72,  154,  154,  171,  180,  166,  166,
+       73,   73,   72,   72,   73,   73,   73,   73,   73,   73,
+       73,  166,  166,  784,  153,   72,   72,  184,  184,  171,
+      241,  153,  215,  215,  215,  153,  247,  247,  247,  241,
+      153,  268,  268,  268,  621,  621,  154,  279,  279,  279,
+      288,  288,  288,  154,  292,  292,  292,  154,  301,  301,
+      301,  754,  154,  162,  162,  162,  162,  162,  162,  162,
+      164,  164,  655,  655,  164,  164,  164,  164,  164,  164,
+
+      164,  167,  167,  688,  688,  167,  167,  167,  167,  167,
+      167,  167,  169,  169,  169,  169,  169,  169,  169,  170,
+      170,  170,  170,  170,  170,  170,  256,  256,  256,  256,
+      256,  256,  256,  754,  783,  170,  257,  257,  257,  257,
+      257,  257,  257,  338,  338,  338,  782,  781,  170,  258,
+      258,  780,  257,  258,  258,  258,  258,  258,  258,  258,
+      393,  393,  393,  777,  776,  257,  260,  260,  260,  260,
+      260,  260,  260,  261,  261,  261,  261,  261,  261,  261,
+      350,  350,  350,  350,  350,  350,  350,  775,  774,  261,
+      351,  351,  351,  351,  351,  351,  351,  382,  382,  382,
+
+      581,  773,  261,  394,  394,  394,  351,  772,  382,  382,
+      395,  395,  395,  443,  443,  443,  483,  483,  483,  351,
+      490,  504,  505,  771,  443,  443,  770,  483,  483,  504,
+      505,  519,  519,  519,  490,  490,  490,  490,  490,  490,
+      490,  581,  519,  519,  533,  533,  534,  534,  765,  763,
+      762,  768,  581,  619,  619,  554,  554,  554,  576,  576,
+      534,  534,  534,  534,  534,  534,  534,  554,  573,  573,
+      573,  790,  576,  576,  576,  576,  576,  576,  576,  533,
+      573,  578,  578,  739,  760,  605,  757,  756,  619,  755,
+      739,  580,  580,  605,  606,  578,  578,  578,  578,  578,
+
+      578,  606,  606,  768,  533,  580,  580,  580,  580,  580,
+      580,  580,  753,  619,  620,  620,  769,  778,  786,  753,
+      779,  657,  657,  790,  769,  778,  786,  779,  620,  620,
+      620,  620,  620,  620,  620,  657,  657,  657,  657,  657,
+      657,  659,  659,  787,  798,  789,  796,  752,  751,  750,
+      749,  787,  789,  748,  796,  659,  659,  659,  659,  659,
+      659,  659,  799,  804,  807,  808,  810,  747,  746,  745,
+      799,  804,  807,  808,  810,  744,  743,  742,  741,  740,
+      738,  737,  734,  731,  730,  729,  728,  727,  725,  724,
+      722,  720,  717,  716,  714,  713,  798,  813,  813,  813,
+
+      813,  813,  813,  813,  813,  814,  814,  814,  814,  814,
+      815,  815,  815,  815,  815,  816,  816,  817,  817,  818,
+      818,  818,  819,  819,  711,  819,  819,  819,  819,  819,
+      820,  820,  820,  710,  709,  708,  820,  821,  821,  821,
+      822,  822,  822,  707,  706,  705,  822,  823,  823,  823,
+      704,  703,  702,  701,  699,  698,  697,  696,  695,  694,
+      692,  691,  690,  689,  687,  686,  685,  684,  683,  682,
+      681,  680,  679,  678,  677,  676,  675,  674,  673,  672,
+      671,  670,  668,  667,  666,  665,  664,  663,  662,  661,
+      660,  653,  651,  650,  648,  647,  646,  645,  644,  643,
+
+      642,  641,  640,  639,  638,  637,  636,  634,  633,  632,
+      631,  630,  629,  628,  626,  625,  624,  623,  622,  618,
+      617,  616,  615,  614,  613,  612,  611,  610,  609,  608,
+      607,  601,  599,  598,  597,  596,  592,  591,  590,  589,
+      588,  587,  586,  585,  584,  575,  571,  570,  568,  567,
+      565,  564,  563,  562,  561,  560,  559,  558,  557,  555,
+      553,  552,  551,  550,  549,  548,  547,  546,  545,  544,
+      542,  541,  537,  536,  535,  532,  531,  529,  528,  526,
+      525,  524,  523,  522,  520,  518,  517,  516,  515,  514,
+      513,  511,  510,  509,  508,  507,  503,  502,  501,  500,
+
+      499,  498,  495,  494,  493,  492,  491,  489,  488,  487,
+      486,  485,  484,  482,  481,  474,  473,  470,  469,  466,
+      465,  464,  463,  452,  451,  450,  448,  447,  446,  445,
+      444,  441,  439,  438,  437,  435,  434,  432,  431,  430,
+      429,  427,  426,  421,  420,  418,  417,  416,  415,  414,
+      413,  412,  411,  410,  409,  407,  406,  405,  404,  403,
+      402,  401,  400,  399,  398,  397,  396,  392,  388,  387,
+      386,  383,  381,  371,  369,  365,  364,  363,  362,  360,
+      358,  353,  352,  349,  348,  347,  346,  345,  344,  339,
+      337,  336,  335,  334,  333,  331,  330,  327,  326,  325,
+
+      324,  323,  322,  321,  320,  319,  318,  317,  316,  315,
+      314,  313,  312,  311,  310,  309,  308,  307,  306,  305,
+      302,  300,  299,  298,  297,  296,  295,  294,  293,  291,
+      287,  285,  284,  283,  282,  278,  277,  276,  275,  274,
+      273,  272,  271,  267,  265,  264,  254,  253,  252,  251,
+      250,  249,  248,  246,  245,  244,  243,  242,  240,  239,
+      238,  237,  236,  235,  234,  233,  232,  231,  230,  229,
+      228,  227,  226,  225,  224,  223,  222,  221,  220,  219,
+      218,  217,  216,  214,  213,  212,  211,  210,  209,  208,
+      207,  206,  205,  204,  203,  202,  201,  200,  199,  198,
+
+      196,  195,  194,  193,  192,  191,  190,  189,  188,  187,
+      186,  185,  183,  182,  181,  179,  178,  177,  176,  174,
+      159,  158,  157,  156,  149,  147,  146,  145,  141,  140,
+      139,  138,  137,  136,  134,  133,  132,  131,  130,  129,
+      128,  127,  125,  123,  122,  121,  119,  118,  117,  115,
+      114,  112,  111,  110,  109,  108,  107,  104,  103,  102,
+      101,  100,   99,   98,   97,   95,   94,   93,   92,   91,
+       90,   89,   88,   87,   83,   79,   52,   45,   38,   32,
+       22,   18,   14,   12,   11,    7,    6,    5,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
+      812,  812,  812,  812
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -969,38 +1015,46 @@ static yyconst flex_int16_t yy_chk[1152] =
 
 #define YY_USER_INIT yylineno = 0; yycolumn = 0;
 
-#define TOKEN_OR_IDENTIFIER(version, token)                     \
-   do {                                                                 \
-      if (yyextra->language_version >= version) {               \
-        return token;                                           \
-      } else {                                                  \
-        yylval->identifier = strdup(yytext);                    \
-        return IDENTIFIER;                                      \
-      }                                                                 \
-   } while (0)
-
-/* Handle reserved words in GLSL ES (version 100) */
-#define TOKEN_OR_IDENTIFIER_ES(version, token)                 \
-   do {                                                                \
-      if (yyextra->es_shader) {                                        \
-       return token;                                           \
-      } else {                                                 \
-       TOKEN_OR_IDENTIFIER(version, token);                    \
-      }                                                                \
-   } while (0)
+#define IS_UINT (yytext[yyleng - 1] == 'u' || yytext[yyleng - 1] == 'U')
 
-#define RESERVED_WORD(version, token)                                  \
+/* A macro for handling reserved words and keywords across language versions.
+ *
+ * Certain words start out as identifiers, become reserved words in
+ * later language revisions, and finally become language keywords.
+ *
+ * For example, consider the following lexer rule:
+ * samplerBuffer       KEYWORD(130, 140, SAMPLERBUFFER)
+ *
+ * This means that "samplerBuffer" will be treated as:
+ * - a keyword (SAMPLERBUFFER token)         ...in GLSL >= 1.40
+ * - a reserved word - error                 ...in GLSL >= 1.30
+ * - an identifier                           ...in GLSL <  1.30
+ */
+#define KEYWORD(reserved_version, allowed_version, token)              \
    do {                                                                        \
-      if (yyextra->language_version >= version) {                      \
+      if (yyextra->language_version >= allowed_version) {              \
         return token;                                                  \
-      } else {                                                         \
+      } else if (yyextra->language_version >= reserved_version) {      \
         _mesa_glsl_error(yylloc, yyextra,                              \
                          "Illegal use of reserved word `%s'", yytext); \
         return ERROR_TOK;                                              \
+      } else {                                                         \
+        yylval->identifier = strdup(yytext);                           \
+        return IDENTIFIER;                                             \
       }                                                                        \
    } while (0)
 
-#line 1004 "glsl_lexer.cpp"
+/* The ES macro can be used in KEYWORD checks:
+ *
+ *    word      KEYWORD(110 || ES, 400, TOKEN)
+ * ...means the word is reserved in GLSL ES 1.00, while
+ *
+ *    word      KEYWORD(110, 130 || ES, TOKEN)
+ * ...means the word is a legal keyword in GLSL ES 1.00.
+ */
+#define ES yyextra->es_shader
+
+#line 1058 "glsl_lexer.cpp"
 
 #define INITIAL 0
 #define PP 1
@@ -1087,6 +1141,10 @@ int _mesa_glsl_get_lineno (yyscan_t yyscanner );
 
 void _mesa_glsl_set_lineno (int line_number ,yyscan_t yyscanner );
 
+int _mesa_glsl_get_column  (yyscan_t yyscanner );
+
+void _mesa_glsl_set_column (int column_no ,yyscan_t yyscanner );
+
 YYSTYPE * _mesa_glsl_get_lval (yyscan_t yyscanner );
 
 void _mesa_glsl_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
@@ -1127,12 +1185,7 @@ static int input (yyscan_t yyscanner );
 
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
 #define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
@@ -1151,7 +1204,7 @@ static int input (yyscan_t yyscanner );
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
-               size_t n; \
+               unsigned n; \
                for ( n = 0; n < max_size && \
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
@@ -1239,10 +1292,10 @@ YY_DECL
        register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 86 "glsl_lexer.lpp"
+#line 94 "glsl_lexer.lpp"
 
 
-#line 1246 "glsl_lexer.cpp"
+#line 1299 "glsl_lexer.cpp"
 
     yylval = yylval_param;
 
@@ -1300,13 +1353,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 >= 716 )
+                               if ( yy_current_state >= 813 )
                                        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 != 715 );
+               while ( yy_current_state != 812 );
                yy_cp = yyg->yy_last_accepting_cpos;
                yy_current_state = yyg->yy_last_accepting_state;
 
@@ -1328,7 +1381,7 @@ do_action:        /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 88 "glsl_lexer.lpp"
+#line 96 "glsl_lexer.lpp"
 ;
        YY_BREAK
 /* Preprocessor tokens. */ 
@@ -1337,17 +1390,17 @@ case 2:
 yyg->yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 91 "glsl_lexer.lpp"
+#line 99 "glsl_lexer.lpp"
 ;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 92 "glsl_lexer.lpp"
+#line 100 "glsl_lexer.lpp"
 { BEGIN PP; return VERSION; }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 93 "glsl_lexer.lpp"
+#line 101 "glsl_lexer.lpp"
 { BEGIN PP; return EXTENSION; }
        YY_BREAK
 case 5:
@@ -1355,7 +1408,7 @@ case 5:
 yyg->yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 94 "glsl_lexer.lpp"
+#line 102 "glsl_lexer.lpp"
 {
                                   /* Eat characters until the first digit is
                                    * encountered
@@ -1377,7 +1430,7 @@ case 6:
 yyg->yy_c_buf_p = yy_cp -= 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 109 "glsl_lexer.lpp"
+#line 117 "glsl_lexer.lpp"
 {
                                   /* Eat characters until the first digit is
                                    * encountered
@@ -1395,7 +1448,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 123 "glsl_lexer.lpp"
+#line 131 "glsl_lexer.lpp"
 {
                                  BEGIN PP;
                                  return PRAGMA_DEBUG_ON;
@@ -1403,7 +1456,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 127 "glsl_lexer.lpp"
+#line 135 "glsl_lexer.lpp"
 {
                                  BEGIN PP;
                                  return PRAGMA_DEBUG_OFF;
@@ -1411,7 +1464,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 131 "glsl_lexer.lpp"
+#line 139 "glsl_lexer.lpp"
 {
                                  BEGIN PP;
                                  return PRAGMA_OPTIMIZE_ON;
@@ -1419,7 +1472,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 135 "glsl_lexer.lpp"
+#line 143 "glsl_lexer.lpp"
 {
                                  BEGIN PP;
                                  return PRAGMA_OPTIMIZE_OFF;
@@ -1427,38 +1480,38 @@ YY_RULE_SETUP
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 139 "glsl_lexer.lpp"
+#line 147 "glsl_lexer.lpp"
 { BEGIN PRAGMA; }
        YY_BREAK
 case 12:
 /* rule 12 can match eol */
 YY_RULE_SETUP
-#line 141 "glsl_lexer.lpp"
+#line 149 "glsl_lexer.lpp"
 { BEGIN 0; yylineno++; yycolumn = 0; }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 142 "glsl_lexer.lpp"
+#line 150 "glsl_lexer.lpp"
 { }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 144 "glsl_lexer.lpp"
+#line 152 "glsl_lexer.lpp"
 { }
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 145 "glsl_lexer.lpp"
+#line 153 "glsl_lexer.lpp"
 { }
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 146 "glsl_lexer.lpp"
+#line 154 "glsl_lexer.lpp"
 return COLON;
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 147 "glsl_lexer.lpp"
+#line 155 "glsl_lexer.lpp"
 {
                                   yylval->identifier = strdup(yytext);
                                   return IDENTIFIER;
@@ -1466,7 +1519,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 151 "glsl_lexer.lpp"
+#line 159 "glsl_lexer.lpp"
 {
                                    yylval->n = strtol(yytext, NULL, 10);
                                    return INTCONSTANT;
@@ -1475,890 +1528,990 @@ YY_RULE_SETUP
 case 19:
 /* rule 19 can match eol */
 YY_RULE_SETUP
-#line 155 "glsl_lexer.lpp"
+#line 163 "glsl_lexer.lpp"
 { BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
        YY_BREAK
 case 20:
 /* rule 20 can match eol */
 YY_RULE_SETUP
-#line 157 "glsl_lexer.lpp"
+#line 165 "glsl_lexer.lpp"
 { yylineno++; yycolumn = 0; }
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 159 "glsl_lexer.lpp"
+#line 167 "glsl_lexer.lpp"
 return ATTRIBUTE;
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 160 "glsl_lexer.lpp"
+#line 168 "glsl_lexer.lpp"
 return CONST_TOK;
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 161 "glsl_lexer.lpp"
+#line 169 "glsl_lexer.lpp"
 return BOOL_TOK;
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 162 "glsl_lexer.lpp"
+#line 170 "glsl_lexer.lpp"
 return FLOAT_TOK;
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 163 "glsl_lexer.lpp"
+#line 171 "glsl_lexer.lpp"
 return INT_TOK;
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 164 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UINT_TOK);
+#line 172 "glsl_lexer.lpp"
+KEYWORD(130, 130, UINT_TOK);
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 166 "glsl_lexer.lpp"
+#line 174 "glsl_lexer.lpp"
 return BREAK;
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 167 "glsl_lexer.lpp"
+#line 175 "glsl_lexer.lpp"
 return CONTINUE;
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 168 "glsl_lexer.lpp"
+#line 176 "glsl_lexer.lpp"
 return DO;
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 169 "glsl_lexer.lpp"
+#line 177 "glsl_lexer.lpp"
 return WHILE;
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 170 "glsl_lexer.lpp"
+#line 178 "glsl_lexer.lpp"
 return ELSE;
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 171 "glsl_lexer.lpp"
+#line 179 "glsl_lexer.lpp"
 return FOR;
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 172 "glsl_lexer.lpp"
+#line 180 "glsl_lexer.lpp"
 return IF;
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 173 "glsl_lexer.lpp"
+#line 181 "glsl_lexer.lpp"
 return DISCARD;
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 174 "glsl_lexer.lpp"
+#line 182 "glsl_lexer.lpp"
 return RETURN;
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 176 "glsl_lexer.lpp"
+#line 184 "glsl_lexer.lpp"
 return BVEC2;
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 177 "glsl_lexer.lpp"
+#line 185 "glsl_lexer.lpp"
 return BVEC3;
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 178 "glsl_lexer.lpp"
+#line 186 "glsl_lexer.lpp"
 return BVEC4;
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 179 "glsl_lexer.lpp"
+#line 187 "glsl_lexer.lpp"
 return IVEC2;
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 180 "glsl_lexer.lpp"
+#line 188 "glsl_lexer.lpp"
 return IVEC3;
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 181 "glsl_lexer.lpp"
+#line 189 "glsl_lexer.lpp"
 return IVEC4;
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 182 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UVEC2);
+#line 190 "glsl_lexer.lpp"
+KEYWORD(130, 130, UVEC2);
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 183 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UVEC3);
+#line 191 "glsl_lexer.lpp"
+KEYWORD(130, 130, UVEC3);
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 184 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UVEC4);
+#line 192 "glsl_lexer.lpp"
+KEYWORD(130, 130, UVEC4);
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 185 "glsl_lexer.lpp"
+#line 193 "glsl_lexer.lpp"
 return VEC2;
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 186 "glsl_lexer.lpp"
+#line 194 "glsl_lexer.lpp"
 return VEC3;
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 187 "glsl_lexer.lpp"
+#line 195 "glsl_lexer.lpp"
 return VEC4;
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 188 "glsl_lexer.lpp"
+#line 196 "glsl_lexer.lpp"
 return MAT2X2;
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 189 "glsl_lexer.lpp"
+#line 197 "glsl_lexer.lpp"
 return MAT3X3;
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 190 "glsl_lexer.lpp"
+#line 198 "glsl_lexer.lpp"
 return MAT4X4;
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 191 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, MAT2X2);
+#line 199 "glsl_lexer.lpp"
+KEYWORD(120, 120, MAT2X2);
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 192 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, MAT2X3);
+#line 200 "glsl_lexer.lpp"
+KEYWORD(120, 120, MAT2X3);
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 193 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, MAT2X4);
+#line 201 "glsl_lexer.lpp"
+KEYWORD(120, 120, MAT2X4);
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 194 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, MAT3X2);
+#line 202 "glsl_lexer.lpp"
+KEYWORD(120, 120, MAT3X2);
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 195 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, MAT3X3);
+#line 203 "glsl_lexer.lpp"
+KEYWORD(120, 120, MAT3X3);
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 196 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, MAT3X4);
+#line 204 "glsl_lexer.lpp"
+KEYWORD(120, 120, MAT3X4);
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 197 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, MAT4X2);
+#line 205 "glsl_lexer.lpp"
+KEYWORD(120, 120, MAT4X2);
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 198 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, MAT4X3);
+#line 206 "glsl_lexer.lpp"
+KEYWORD(120, 120, MAT4X3);
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 199 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, MAT4X4);
+#line 207 "glsl_lexer.lpp"
+KEYWORD(120, 120, MAT4X4);
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 201 "glsl_lexer.lpp"
+#line 209 "glsl_lexer.lpp"
 return IN_TOK;
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 202 "glsl_lexer.lpp"
+#line 210 "glsl_lexer.lpp"
 return OUT_TOK;
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 203 "glsl_lexer.lpp"
+#line 211 "glsl_lexer.lpp"
 return INOUT_TOK;
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 204 "glsl_lexer.lpp"
+#line 212 "glsl_lexer.lpp"
 return UNIFORM;
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 205 "glsl_lexer.lpp"
+#line 213 "glsl_lexer.lpp"
 return VARYING;
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 206 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(120, CENTROID);
+#line 214 "glsl_lexer.lpp"
+KEYWORD(120, 120, CENTROID);
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 207 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER_ES(120, INVARIANT);
+#line 215 "glsl_lexer.lpp"
+KEYWORD(120 || ES, 120 || ES, INVARIANT);
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 209 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER_ES(130, FLAT);
+#line 216 "glsl_lexer.lpp"
+KEYWORD(130 || ES, 130, FLAT);
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 210 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, SMOOTH);
+#line 217 "glsl_lexer.lpp"
+KEYWORD(130, 130, SMOOTH);
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 211 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, NOPERSPECTIVE);
+#line 218 "glsl_lexer.lpp"
+KEYWORD(130, 130, NOPERSPECTIVE);
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 213 "glsl_lexer.lpp"
+#line 220 "glsl_lexer.lpp"
 return SAMPLER1D;
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 214 "glsl_lexer.lpp"
+#line 221 "glsl_lexer.lpp"
 return SAMPLER2D;
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 215 "glsl_lexer.lpp"
+#line 222 "glsl_lexer.lpp"
 return SAMPLER3D;
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 216 "glsl_lexer.lpp"
+#line 223 "glsl_lexer.lpp"
 return SAMPLERCUBE;
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 217 "glsl_lexer.lpp"
-return SAMPLER1DSHADOW;
+#line 224 "glsl_lexer.lpp"
+KEYWORD(130, 130, SAMPLER1DARRAY);
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 218 "glsl_lexer.lpp"
-return SAMPLER2DSHADOW;
+#line 225 "glsl_lexer.lpp"
+KEYWORD(130, 130, SAMPLER2DARRAY);
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 220 "glsl_lexer.lpp"
-return STRUCT;
+#line 226 "glsl_lexer.lpp"
+return SAMPLER1DSHADOW;
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 221 "glsl_lexer.lpp"
-return VOID_TOK;
+#line 227 "glsl_lexer.lpp"
+return SAMPLER2DSHADOW;
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 223 "glsl_lexer.lpp"
-{
-                 if ((yyextra->language_version >= 140)
-                     || yyextra->ARB_explicit_attrib_location_enable
-                     || (yyextra->ARB_fragment_coord_conventions_enable)){
-                     return LAYOUT_TOK;
-                  } else {
-                     yylval->identifier = strdup(yytext);
-                     return IDENTIFIER;
-                  }
-               }
+#line 228 "glsl_lexer.lpp"
+KEYWORD(130, 130, SAMPLERCUBESHADOW);
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 234 "glsl_lexer.lpp"
-return INC_OP;
+#line 229 "glsl_lexer.lpp"
+KEYWORD(130, 130, SAMPLER1DARRAYSHADOW);
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 235 "glsl_lexer.lpp"
-return DEC_OP;
+#line 230 "glsl_lexer.lpp"
+KEYWORD(130, 130, SAMPLER2DARRAYSHADOW);
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 236 "glsl_lexer.lpp"
-return LE_OP;
+#line 231 "glsl_lexer.lpp"
+KEYWORD(130, 130, ISAMPLER1D);
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 237 "glsl_lexer.lpp"
-return GE_OP;
+#line 232 "glsl_lexer.lpp"
+KEYWORD(130, 130, ISAMPLER2D);
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 238 "glsl_lexer.lpp"
-return EQ_OP;
+#line 233 "glsl_lexer.lpp"
+KEYWORD(130, 130, ISAMPLER3D);
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 239 "glsl_lexer.lpp"
-return NE_OP;
+#line 234 "glsl_lexer.lpp"
+KEYWORD(130, 130, ISAMPLERCUBE);
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 240 "glsl_lexer.lpp"
-return AND_OP;
+#line 235 "glsl_lexer.lpp"
+KEYWORD(130, 130, ISAMPLER1DARRAY);
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 241 "glsl_lexer.lpp"
-return OR_OP;
+#line 236 "glsl_lexer.lpp"
+KEYWORD(130, 130, ISAMPLER2DARRAY);
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 242 "glsl_lexer.lpp"
-return XOR_OP;
+#line 237 "glsl_lexer.lpp"
+KEYWORD(130, 130, USAMPLER1D);
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 243 "glsl_lexer.lpp"
-return LEFT_OP;
+#line 238 "glsl_lexer.lpp"
+KEYWORD(130, 130, USAMPLER2D);
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 244 "glsl_lexer.lpp"
-return RIGHT_OP;
+#line 239 "glsl_lexer.lpp"
+KEYWORD(130, 130, USAMPLER3D);
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 246 "glsl_lexer.lpp"
-return MUL_ASSIGN;
+#line 240 "glsl_lexer.lpp"
+KEYWORD(130, 130, USAMPLERCUBE);
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 247 "glsl_lexer.lpp"
-return DIV_ASSIGN;
+#line 241 "glsl_lexer.lpp"
+KEYWORD(130, 130, USAMPLER1DARRAY);
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 248 "glsl_lexer.lpp"
-return ADD_ASSIGN;
+#line 242 "glsl_lexer.lpp"
+KEYWORD(130, 130, USAMPLER2DARRAY);
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 249 "glsl_lexer.lpp"
-return MOD_ASSIGN;
+#line 245 "glsl_lexer.lpp"
+return STRUCT;
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 250 "glsl_lexer.lpp"
-return LEFT_ASSIGN;
+#line 246 "glsl_lexer.lpp"
+return VOID_TOK;
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 251 "glsl_lexer.lpp"
-return RIGHT_ASSIGN;
+#line 248 "glsl_lexer.lpp"
+{
+                 if ((yyextra->language_version >= 140)
+                     || yyextra->ARB_explicit_attrib_location_enable
+                     || (yyextra->ARB_fragment_coord_conventions_enable)){
+                     return LAYOUT_TOK;
+                  } else {
+                     yylval->identifier = strdup(yytext);
+                     return IDENTIFIER;
+                  }
+               }
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 252 "glsl_lexer.lpp"
-return AND_ASSIGN;
+#line 259 "glsl_lexer.lpp"
+return INC_OP;
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 253 "glsl_lexer.lpp"
-return XOR_ASSIGN;
+#line 260 "glsl_lexer.lpp"
+return DEC_OP;
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 254 "glsl_lexer.lpp"
-return OR_ASSIGN;
+#line 261 "glsl_lexer.lpp"
+return LE_OP;
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 255 "glsl_lexer.lpp"
-return SUB_ASSIGN;
+#line 262 "glsl_lexer.lpp"
+return GE_OP;
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 257 "glsl_lexer.lpp"
-{
-                           yylval->n = strtol(yytext, NULL, 10);
-                           return INTCONSTANT;
-                       }
+#line 263 "glsl_lexer.lpp"
+return EQ_OP;
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 261 "glsl_lexer.lpp"
-{
-                           yylval->n = strtol(yytext + 2, NULL, 16);
-                           return INTCONSTANT;
-                       }
+#line 264 "glsl_lexer.lpp"
+return NE_OP;
        YY_BREAK
 case 102:
 YY_RULE_SETUP
 #line 265 "glsl_lexer.lpp"
-{
-                           yylval->n = strtol(yytext, NULL, 8);
-                           return INTCONSTANT;
-                       }
+return AND_OP;
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 270 "glsl_lexer.lpp"
-{
-                           yylval->real = strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
+#line 266 "glsl_lexer.lpp"
+return OR_OP;
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 274 "glsl_lexer.lpp"
-{
-                           yylval->real = strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
+#line 267 "glsl_lexer.lpp"
+return XOR_OP;
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 278 "glsl_lexer.lpp"
-{
-                           yylval->real = strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
+#line 268 "glsl_lexer.lpp"
+return LEFT_OP;
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 282 "glsl_lexer.lpp"
-{
-                           yylval->real = strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
+#line 269 "glsl_lexer.lpp"
+return RIGHT_OP;
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 286 "glsl_lexer.lpp"
-{
-                           yylval->real = strtod(yytext, NULL);
-                           return FLOATCONSTANT;
-                       }
+#line 271 "glsl_lexer.lpp"
+return MUL_ASSIGN;
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 291 "glsl_lexer.lpp"
-{
-                           yylval->n = 1;
-                           return BOOLCONSTANT;
-                       }
+#line 272 "glsl_lexer.lpp"
+return DIV_ASSIGN;
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 295 "glsl_lexer.lpp"
-{
-                           yylval->n = 0;
-                           return BOOLCONSTANT;
-                       }
+#line 273 "glsl_lexer.lpp"
+return ADD_ASSIGN;
        YY_BREAK
-/* Reserved words in GLSL 1.10. */
 case 110:
 YY_RULE_SETUP
-#line 302 "glsl_lexer.lpp"
-RESERVED_WORD(999, ASM);
+#line 274 "glsl_lexer.lpp"
+return MOD_ASSIGN;
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 303 "glsl_lexer.lpp"
-RESERVED_WORD(999, CLASS);
+#line 275 "glsl_lexer.lpp"
+return LEFT_ASSIGN;
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 304 "glsl_lexer.lpp"
-RESERVED_WORD(999, UNION);
+#line 276 "glsl_lexer.lpp"
+return RIGHT_ASSIGN;
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 305 "glsl_lexer.lpp"
-RESERVED_WORD(999, ENUM);
+#line 277 "glsl_lexer.lpp"
+return AND_ASSIGN;
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 306 "glsl_lexer.lpp"
-RESERVED_WORD(999, TYPEDEF);
+#line 278 "glsl_lexer.lpp"
+return XOR_ASSIGN;
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 307 "glsl_lexer.lpp"
-RESERVED_WORD(999, TEMPLATE);
+#line 279 "glsl_lexer.lpp"
+return OR_ASSIGN;
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 308 "glsl_lexer.lpp"
-RESERVED_WORD(999, THIS);
+#line 280 "glsl_lexer.lpp"
+return SUB_ASSIGN;
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 309 "glsl_lexer.lpp"
-RESERVED_WORD(999, PACKED_TOK);
+#line 282 "glsl_lexer.lpp"
+{
+                           yylval->n = strtol(yytext, NULL, 10);
+                           return IS_UINT ? UINTCONSTANT : INTCONSTANT;
+                       }
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 310 "glsl_lexer.lpp"
-RESERVED_WORD(999, GOTO);
+#line 286 "glsl_lexer.lpp"
+{
+                           yylval->n = strtol(yytext + 2, NULL, 16);
+                           return IS_UINT ? UINTCONSTANT : INTCONSTANT;
+                       }
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 311 "glsl_lexer.lpp"
-RESERVED_WORD(130, SWITCH);
+#line 290 "glsl_lexer.lpp"
+{
+                           yylval->n = strtol(yytext, NULL, 8);
+                           return IS_UINT ? UINTCONSTANT : INTCONSTANT;
+                       }
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 312 "glsl_lexer.lpp"
-RESERVED_WORD(130, DEFAULT);
+#line 295 "glsl_lexer.lpp"
+{
+                           yylval->real = strtod(yytext, NULL);
+                           return FLOATCONSTANT;
+                       }
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 313 "glsl_lexer.lpp"
-RESERVED_WORD(999, INLINE_TOK);
+#line 299 "glsl_lexer.lpp"
+{
+                           yylval->real = strtod(yytext, NULL);
+                           return FLOATCONSTANT;
+                       }
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 314 "glsl_lexer.lpp"
-RESERVED_WORD(999, NOINLINE);
+#line 303 "glsl_lexer.lpp"
+{
+                           yylval->real = strtod(yytext, NULL);
+                           return FLOATCONSTANT;
+                       }
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 315 "glsl_lexer.lpp"
-RESERVED_WORD(999, VOLATILE);
+#line 307 "glsl_lexer.lpp"
+{
+                           yylval->real = strtod(yytext, NULL);
+                           return FLOATCONSTANT;
+                       }
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 316 "glsl_lexer.lpp"
-RESERVED_WORD(999, PUBLIC_TOK);
+#line 311 "glsl_lexer.lpp"
+{
+                           yylval->real = strtod(yytext, NULL);
+                           return FLOATCONSTANT;
+                       }
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 317 "glsl_lexer.lpp"
-RESERVED_WORD(999, STATIC);
+#line 316 "glsl_lexer.lpp"
+{
+                           yylval->n = 1;
+                           return BOOLCONSTANT;
+                       }
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 318 "glsl_lexer.lpp"
-RESERVED_WORD(999, EXTERN);
+#line 320 "glsl_lexer.lpp"
+{
+                           yylval->n = 0;
+                           return BOOLCONSTANT;
+                       }
        YY_BREAK
+/* Reserved words in GLSL 1.10. */
 case 127:
 YY_RULE_SETUP
-#line 319 "glsl_lexer.lpp"
-RESERVED_WORD(999, EXTERNAL);
+#line 327 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, ASM);
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 320 "glsl_lexer.lpp"
-RESERVED_WORD(999, INTERFACE);
+#line 328 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, CLASS);
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 321 "glsl_lexer.lpp"
-RESERVED_WORD(999, LONG_TOK);
+#line 329 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, UNION);
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 322 "glsl_lexer.lpp"
-RESERVED_WORD(999, SHORT_TOK);
+#line 330 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, ENUM);
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 323 "glsl_lexer.lpp"
-RESERVED_WORD(999, DOUBLE_TOK);
+#line 331 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, TYPEDEF);
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 324 "glsl_lexer.lpp"
-RESERVED_WORD(999, HALF);
+#line 332 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, TEMPLATE);
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 325 "glsl_lexer.lpp"
-RESERVED_WORD(999, FIXED_TOK);
+#line 333 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, THIS);
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 326 "glsl_lexer.lpp"
-RESERVED_WORD(999, UNSIGNED);
+#line 334 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, PACKED_TOK);
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 327 "glsl_lexer.lpp"
-RESERVED_WORD(999, INPUT_TOK);
+#line 335 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, GOTO);
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 328 "glsl_lexer.lpp"
-RESERVED_WORD(999, OUTPUT);
+#line 336 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 130, SWITCH);
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 329 "glsl_lexer.lpp"
-RESERVED_WORD(999, HVEC2);
+#line 337 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 130, DEFAULT);
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 330 "glsl_lexer.lpp"
-RESERVED_WORD(999, HVEC3);
+#line 338 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, INLINE_TOK);
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 331 "glsl_lexer.lpp"
-RESERVED_WORD(999, HVEC4);
+#line 339 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, NOINLINE);
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 332 "glsl_lexer.lpp"
-RESERVED_WORD(999, DVEC2);
+#line 340 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, VOLATILE);
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 333 "glsl_lexer.lpp"
-RESERVED_WORD(999, DVEC3);
+#line 341 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, PUBLIC_TOK);
        YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 334 "glsl_lexer.lpp"
-RESERVED_WORD(999, DVEC4);
+#line 342 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, STATIC);
        YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 335 "glsl_lexer.lpp"
-RESERVED_WORD(999, FVEC2);
+#line 343 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, EXTERN);
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 336 "glsl_lexer.lpp"
-RESERVED_WORD(999, FVEC3);
+#line 344 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, EXTERNAL);
        YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 337 "glsl_lexer.lpp"
-RESERVED_WORD(999, FVEC4);
+#line 345 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, INTERFACE);
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 338 "glsl_lexer.lpp"
-return SAMPLER2DRECT;
+#line 346 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, LONG_TOK);
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 339 "glsl_lexer.lpp"
-RESERVED_WORD(999, SAMPLER3DRECT);
+#line 347 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, SHORT_TOK);
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 340 "glsl_lexer.lpp"
-return SAMPLER2DRECTSHADOW;
+#line 348 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 400, DOUBLE_TOK);
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 341 "glsl_lexer.lpp"
-RESERVED_WORD(999, SIZEOF);
+#line 349 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, HALF);
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 342 "glsl_lexer.lpp"
-RESERVED_WORD(999, CAST);
+#line 350 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, FIXED_TOK);
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 343 "glsl_lexer.lpp"
-RESERVED_WORD(999, NAMESPACE);
+#line 351 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, UNSIGNED);
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 344 "glsl_lexer.lpp"
-RESERVED_WORD(999, USING);
+#line 352 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, INPUT_TOK);
        YY_BREAK
-/* Additional reserved words in GLSL 1.20. */
 case 153:
 YY_RULE_SETUP
-#line 347 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER_ES(120, LOWP);
+#line 353 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, OUTPUT);
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 348 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER_ES(120, MEDIUMP);
+#line 354 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, HVEC2);
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 349 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER_ES(120, HIGHP);
+#line 355 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, HVEC3);
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 350 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER_ES(120, PRECISION);
+#line 356 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, HVEC4);
        YY_BREAK
-/* Additional reserved words in GLSL 1.30. */
 case 157:
 YY_RULE_SETUP
-#line 353 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, COMMON);
+#line 357 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 400, DVEC2);
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 354 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, PARTITION);
+#line 358 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 400, DVEC3);
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 355 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, ACTIVE);
+#line 359 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 400, DVEC4);
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 356 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER_ES(130, SUPERP);
+#line 360 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, FVEC2);
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 357 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, SAMPLERBUFFER);
+#line 361 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, FVEC3);
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 358 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, FILTER);
+#line 362 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, FVEC4);
        YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 359 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IMAGE1D);
+#line 363 "glsl_lexer.lpp"
+return SAMPLER2DRECT;
        YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 360 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IMAGE2D);
+#line 364 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, SAMPLER3DRECT);
        YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 361 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IMAGE3D);
+#line 365 "glsl_lexer.lpp"
+return SAMPLER2DRECTSHADOW;
        YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 362 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IMAGECUBE);
+#line 366 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, SIZEOF);
        YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 363 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IIMAGE1D);
+#line 367 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, CAST);
        YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 364 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IIMAGE2D);
+#line 368 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, NAMESPACE);
        YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 365 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IIMAGE3D);
+#line 369 "glsl_lexer.lpp"
+KEYWORD(110 || ES, 999, USING);
        YY_BREAK
+/* Additional reserved words in GLSL 1.20. */
 case 170:
 YY_RULE_SETUP
-#line 366 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IIMAGECUBE);
+#line 372 "glsl_lexer.lpp"
+KEYWORD(120, 130 || ES, LOWP);
        YY_BREAK
 case 171:
 YY_RULE_SETUP
-#line 367 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UIMAGE1D);
+#line 373 "glsl_lexer.lpp"
+KEYWORD(120, 130 || ES, MEDIUMP);
        YY_BREAK
 case 172:
 YY_RULE_SETUP
-#line 368 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UIMAGE2D);
+#line 374 "glsl_lexer.lpp"
+KEYWORD(120, 130 || ES, HIGHP);
        YY_BREAK
 case 173:
 YY_RULE_SETUP
-#line 369 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UIMAGE3D);
+#line 375 "glsl_lexer.lpp"
+KEYWORD(120, 130 || ES, PRECISION);
        YY_BREAK
+/* Additional reserved words in GLSL 1.30. */
 case 174:
 YY_RULE_SETUP
-#line 370 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UIMAGECUBE);
+#line 378 "glsl_lexer.lpp"
+KEYWORD(130, 130, CASE);
        YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 371 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IMAGE1DARRAY);
+#line 379 "glsl_lexer.lpp"
+KEYWORD(130, 999, COMMON);
        YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 372 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IMAGE2DARRAY);
+#line 380 "glsl_lexer.lpp"
+KEYWORD(130, 999, PARTITION);
        YY_BREAK
 case 177:
 YY_RULE_SETUP
-#line 373 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IIMAGE1DARRAY);
+#line 381 "glsl_lexer.lpp"
+KEYWORD(130, 999, ACTIVE);
        YY_BREAK
 case 178:
 YY_RULE_SETUP
-#line 374 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IIMAGE2DARRAY);
+#line 382 "glsl_lexer.lpp"
+KEYWORD(130 || ES, 999, SUPERP);
        YY_BREAK
 case 179:
 YY_RULE_SETUP
-#line 375 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UIMAGE1DARRAY);
+#line 383 "glsl_lexer.lpp"
+KEYWORD(130, 140, SAMPLERBUFFER);
        YY_BREAK
 case 180:
 YY_RULE_SETUP
-#line 376 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UIMAGE2DARRAY);
+#line 384 "glsl_lexer.lpp"
+KEYWORD(130, 999, FILTER);
        YY_BREAK
 case 181:
 YY_RULE_SETUP
-#line 377 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IMAGE1DSHADOW);
+#line 385 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGE1D);
        YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 378 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IMAGE2DSHADOW);
+#line 386 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGE2D);
        YY_BREAK
 case 183:
 YY_RULE_SETUP
-#line 379 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IMAGEBUFFER);
+#line 387 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGE3D);
        YY_BREAK
 case 184:
 YY_RULE_SETUP
-#line 380 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, IIMAGEBUFFER);
+#line 388 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGECUBE);
        YY_BREAK
 case 185:
 YY_RULE_SETUP
-#line 381 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, UIMAGEBUFFER);
+#line 389 "glsl_lexer.lpp"
+KEYWORD(130, 999, IIMAGE1D);
        YY_BREAK
 case 186:
 YY_RULE_SETUP
-#line 382 "glsl_lexer.lpp"
-TOKEN_OR_IDENTIFIER(130, ROW_MAJOR);
+#line 390 "glsl_lexer.lpp"
+KEYWORD(130, 999, IIMAGE2D);
        YY_BREAK
 case 187:
 YY_RULE_SETUP
-#line 384 "glsl_lexer.lpp"
+#line 391 "glsl_lexer.lpp"
+KEYWORD(130, 999, IIMAGE3D);
+       YY_BREAK
+case 188:
+YY_RULE_SETUP
+#line 392 "glsl_lexer.lpp"
+KEYWORD(130, 999, IIMAGECUBE);
+       YY_BREAK
+case 189:
+YY_RULE_SETUP
+#line 393 "glsl_lexer.lpp"
+KEYWORD(130, 999, UIMAGE1D);
+       YY_BREAK
+case 190:
+YY_RULE_SETUP
+#line 394 "glsl_lexer.lpp"
+KEYWORD(130, 999, UIMAGE2D);
+       YY_BREAK
+case 191:
+YY_RULE_SETUP
+#line 395 "glsl_lexer.lpp"
+KEYWORD(130, 999, UIMAGE3D);
+       YY_BREAK
+case 192:
+YY_RULE_SETUP
+#line 396 "glsl_lexer.lpp"
+KEYWORD(130, 999, UIMAGECUBE);
+       YY_BREAK
+case 193:
+YY_RULE_SETUP
+#line 397 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGE1DARRAY);
+       YY_BREAK
+case 194:
+YY_RULE_SETUP
+#line 398 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGE2DARRAY);
+       YY_BREAK
+case 195:
+YY_RULE_SETUP
+#line 399 "glsl_lexer.lpp"
+KEYWORD(130, 999, IIMAGE1DARRAY);
+       YY_BREAK
+case 196:
+YY_RULE_SETUP
+#line 400 "glsl_lexer.lpp"
+KEYWORD(130, 999, IIMAGE2DARRAY);
+       YY_BREAK
+case 197:
+YY_RULE_SETUP
+#line 401 "glsl_lexer.lpp"
+KEYWORD(130, 999, UIMAGE1DARRAY);
+       YY_BREAK
+case 198:
+YY_RULE_SETUP
+#line 402 "glsl_lexer.lpp"
+KEYWORD(130, 999, UIMAGE2DARRAY);
+       YY_BREAK
+case 199:
+YY_RULE_SETUP
+#line 403 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGE1DSHADOW);
+       YY_BREAK
+case 200:
+YY_RULE_SETUP
+#line 404 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGE2DSHADOW);
+       YY_BREAK
+case 201:
+YY_RULE_SETUP
+#line 405 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGE1DARRAYSHADOW);
+       YY_BREAK
+case 202:
+YY_RULE_SETUP
+#line 406 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGE2DARRAYSHADOW);
+       YY_BREAK
+case 203:
+YY_RULE_SETUP
+#line 407 "glsl_lexer.lpp"
+KEYWORD(130, 999, IMAGEBUFFER);
+       YY_BREAK
+case 204:
+YY_RULE_SETUP
+#line 408 "glsl_lexer.lpp"
+KEYWORD(130, 999, IIMAGEBUFFER);
+       YY_BREAK
+case 205:
+YY_RULE_SETUP
+#line 409 "glsl_lexer.lpp"
+KEYWORD(130, 999, UIMAGEBUFFER);
+       YY_BREAK
+case 206:
+YY_RULE_SETUP
+#line 410 "glsl_lexer.lpp"
+KEYWORD(130, 999, ROW_MAJOR);
+       YY_BREAK
+case 207:
+YY_RULE_SETUP
+#line 412 "glsl_lexer.lpp"
 {
                            struct _mesa_glsl_parse_state *state = yyextra;
                            void *ctx = state;  
@@ -2366,17 +2519,17 @@ YY_RULE_SETUP
                            return IDENTIFIER;
                        }
        YY_BREAK
-case 188:
+case 208:
 YY_RULE_SETUP
-#line 391 "glsl_lexer.lpp"
+#line 419 "glsl_lexer.lpp"
 { return yytext[0]; }
        YY_BREAK
-case 189:
+case 209:
 YY_RULE_SETUP
-#line 393 "glsl_lexer.lpp"
+#line 421 "glsl_lexer.lpp"
 ECHO;
        YY_BREAK
-#line 2380 "glsl_lexer.cpp"
+#line 2533 "glsl_lexer.cpp"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(PP):
 case YY_STATE_EOF(PRAGMA):
@@ -2674,7 +2827,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 >= 716 )
+                       if ( yy_current_state >= 813 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2703,11 +2856,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 >= 716 )
+               if ( yy_current_state >= 813 )
                        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 == 715);
+       yy_is_jam = (yy_current_state == 812);
 
        return yy_is_jam ? 0 : yy_current_state;
 }
@@ -3112,8 +3265,8 @@ YY_BUFFER_STATE _mesa_glsl__scan_string (yyconst char * yystr , yyscan_t yyscann
 
 /** Setup the input buffer state to scan the given bytes. The next call to _mesa_glsl_lex() will
  * scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
  * @param yyscanner The scanner object.
  * @return the newly allocated buffer state object.
  */
@@ -3519,7 +3672,7 @@ void _mesa_glsl_free (void * ptr , yyscan_t yyscanner)
 
 #define YYTABLES_NAME "yytables"
 
-#line 393 "glsl_lexer.lpp"
+#line 421 "glsl_lexer.lpp"
 
 
 
index cfbb2b83d61ab2b32bbc6664f71d418bd8e6c061..23e439c7c5463c04f41793fe17af2c7bd4135b7f 100644 (file)
@@ -1,10 +1,9 @@
-
-/* A Bison parser, made by GNU Bison 2.4.1.  */
+/* A Bison parser, made by GNU Bison 2.4.3.  */
 
 /* Skeleton implementation for Bison's Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+   2009, 2010 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
@@ -46,7 +45,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.4.1"
+#define YYBISON_VERSION "2.4.3"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 
 
 /* Line 189 of yacc.c  */
-#line 118 "glsl_parser.cpp"
+#line 117 "glsl_parser.cpp"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
      IMAGEBUFFER = 442,
      IIMAGEBUFFER = 443,
      UIMAGEBUFFER = 444,
-     ROW_MAJOR = 445
+     IMAGE1DARRAYSHADOW = 445,
+     IMAGE2DARRAYSHADOW = 446,
+     ROW_MAJOR = 447
    };
 #endif
 
@@ -372,7 +373,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 376 "glsl_parser.cpp"
+#line 377 "glsl_parser.cpp"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -397,7 +398,7 @@ typedef struct YYLTYPE
 
 
 /* Line 264 of yacc.c  */
-#line 401 "glsl_parser.cpp"
+#line 402 "glsl_parser.cpp"
 
 #ifdef short
 # undef short
@@ -447,7 +448,7 @@ typedef short int yytype_int16;
 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -614,10 +615,10 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  5
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   3692
+#define YYLAST   3718
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  215
+#define YYNTOKENS  217
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  87
 /* YYNRULES -- Number of rules.  */
@@ -627,7 +628,7 @@ union yyalloc
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   445
+#define YYMAXUTOK   447
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -638,16 +639,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,   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,   201,     2,     2,     2,   205,   208,     2,
+     193,   194,   203,   199,   198,   200,   197,   204,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,   212,   214,
+     206,   213,   207,   211,     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,   193,     2,   194,   207,     2,     2,     2,     2,     2,
+       2,   195,     2,   196,   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,     2,   213,   208,   214,   200,     2,     2,     2,
+       2,     2,     2,   215,   210,   216,   202,     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,
@@ -679,7 +680,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,   188,   189,   190
+     185,   186,   187,   188,   189,   190,   191,   192
 };
 
 #if YYDEBUG
@@ -720,57 +721,57 @@ static const yytype_uint16 yyprhs[] =
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     216,     0,    -1,    -1,   218,   220,   217,   222,    -1,    -1,
+     218,     0,    -1,    -1,   220,   222,   219,   224,    -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,   300,    -1,   222,   300,
-      -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,   271,    -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,
+     118,   113,    -1,   119,   113,    -1,    -1,   222,   223,    -1,
+     110,    76,   112,    76,   113,    -1,   302,    -1,   224,   302,
+      -1,    76,    -1,   225,    -1,    78,    -1,    79,    -1,    77,
+      -1,    80,    -1,   193,   252,   194,    -1,   226,    -1,   227,
+     195,   228,   196,    -1,   229,    -1,   227,   197,    76,    -1,
+     227,    84,    -1,   227,    85,    -1,   252,    -1,   230,    -1,
+     231,    -1,   227,   197,   231,    -1,   233,   194,    -1,   232,
+     194,    -1,   234,    74,    -1,   234,    -1,   234,   250,    -1,
+     233,   198,   250,    -1,   235,   193,    -1,   273,    -1,    76,
+      -1,    81,    -1,   227,    -1,    84,   236,    -1,    85,   236,
+      -1,   237,   236,    -1,   199,    -1,   200,    -1,   201,    -1,
+     202,    -1,   236,    -1,   238,   203,   236,    -1,   238,   204,
+     236,    -1,   238,   205,   236,    -1,   238,    -1,   239,   199,
+     238,    -1,   239,   200,   238,    -1,   239,    -1,   240,    82,
+     239,    -1,   240,    83,   239,    -1,   240,    -1,   241,   206,
+     240,    -1,   241,   207,   240,    -1,   241,    86,   240,    -1,
+     241,    87,   240,    -1,   241,    -1,   242,    88,   241,    -1,
+     242,    89,   241,    -1,   242,    -1,   243,   208,   242,    -1,
+     243,    -1,   244,   209,   243,    -1,   244,    -1,   245,   210,
+     244,    -1,   245,    -1,   246,    90,   245,    -1,   246,    -1,
+     247,    92,   246,    -1,   247,    -1,   248,    91,   247,    -1,
+     248,    -1,   248,   211,   252,   212,   250,    -1,   249,    -1,
+     236,   251,   250,    -1,   213,    -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,   275,   272,   212,    -1,   254,   192,    -1,   256,    -1,
-     255,    -1,   256,   258,    -1,   255,   196,   258,    -1,   263,
-      76,   191,    -1,   271,    76,    -1,   271,    76,   193,   251,
-     194,    -1,   268,   259,   257,    -1,   259,   257,    -1,   268,
-     259,   260,    -1,   259,   260,    -1,    -1,    33,    -1,    34,
-      -1,    35,    -1,   271,    -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,
-     281,    -1,   261,   196,    76,   193,   251,   194,   211,   281,
-      -1,   261,   196,    76,   211,   281,    -1,   263,    -1,   263,
-      76,    -1,   263,    76,   193,   194,    -1,   263,    76,   193,
-     251,   194,    -1,   263,    76,   193,   194,   211,   281,    -1,
-     263,    76,   193,   251,   194,   211,   281,    -1,   263,    76,
-     211,   281,    -1,   103,    76,    -1,   271,    -1,   269,   271,
-      -1,   120,   191,   265,   192,    -1,   266,    -1,   265,   196,
-     266,    -1,    76,    -1,    76,   211,    78,    -1,    40,    -1,
-      39,    -1,    38,    -1,     4,    -1,   270,    -1,   264,    -1,
-     264,   270,    -1,   267,    -1,   267,   270,    -1,   103,   270,
-      -1,   103,   267,   270,    -1,   103,    -1,     4,    -1,     3,
+      99,    -1,   100,    -1,   101,    -1,   250,    -1,   252,   198,
+     250,    -1,   249,    -1,   255,   214,    -1,   263,   214,    -1,
+     108,   277,   274,   214,    -1,   256,   194,    -1,   258,    -1,
+     257,    -1,   258,   260,    -1,   257,   198,   260,    -1,   265,
+      76,   193,    -1,   273,    76,    -1,   273,    76,   195,   253,
+     196,    -1,   270,   261,   259,    -1,   261,   259,    -1,   270,
+     261,   262,    -1,   261,   262,    -1,    -1,    33,    -1,    34,
+      -1,    35,    -1,   273,    -1,   264,    -1,   263,   198,    76,
+      -1,   263,   198,    76,   195,   196,    -1,   263,   198,    76,
+     195,   253,   196,    -1,   263,   198,    76,   195,   196,   213,
+     283,    -1,   263,   198,    76,   195,   253,   196,   213,   283,
+      -1,   263,   198,    76,   213,   283,    -1,   265,    -1,   265,
+      76,    -1,   265,    76,   195,   196,    -1,   265,    76,   195,
+     253,   196,    -1,   265,    76,   195,   196,   213,   283,    -1,
+     265,    76,   195,   253,   196,   213,   283,    -1,   265,    76,
+     213,   283,    -1,   103,    76,    -1,   273,    -1,   271,   273,
+      -1,   120,   193,   267,   194,    -1,   268,    -1,   267,   198,
+     268,    -1,    76,    -1,    76,   213,    78,    -1,    40,    -1,
+      39,    -1,    38,    -1,     4,    -1,   272,    -1,   266,    -1,
+     266,   272,    -1,   269,    -1,   269,   272,    -1,   103,   272,
+      -1,   103,   269,   272,    -1,   103,    -1,     4,    -1,     3,
       -1,    37,    -1,    32,    37,    -1,    33,    -1,    34,    -1,
-      32,    33,    -1,    32,    34,    -1,    36,    -1,   272,    -1,
-     275,   272,    -1,   273,    -1,   273,   193,   194,    -1,   273,
-     193,   251,   194,    -1,   274,    -1,   276,    -1,    76,    -1,
+      32,    33,    -1,    32,    34,    -1,    36,    -1,   274,    -1,
+     277,   274,    -1,   275,    -1,   275,   195,   196,    -1,   275,
+     195,   253,   196,    -1,   276,    -1,   278,    -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,
@@ -782,57 +783,57 @@ static const yytype_int16 yyrhs[] =
       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,   277,   214,    -1,    73,   213,   277,   214,    -1,   278,
-      -1,   277,   278,    -1,   271,   279,   212,    -1,   280,    -1,
-     279,   196,   280,    -1,    76,    -1,    76,   193,   251,   194,
-      -1,   248,    -1,   252,    -1,   285,    -1,   284,    -1,   282,
-      -1,   289,    -1,   290,    -1,   293,    -1,   294,    -1,   295,
-      -1,   299,    -1,   213,   214,    -1,   213,   288,   214,    -1,
-     287,    -1,   284,    -1,   213,   214,    -1,   213,   288,   214,
-      -1,   283,    -1,   288,   283,    -1,   212,    -1,   250,   212,
-      -1,    14,   191,   250,   192,   291,    -1,   283,    12,   283,
-      -1,   283,    -1,   250,    -1,   263,    76,   211,   281,    -1,
-      17,   191,   250,   192,   285,    -1,    18,   250,   210,    -1,
-      19,   210,    -1,    75,   191,   292,   192,   286,    -1,    11,
-     283,    75,   191,   250,   192,   212,    -1,    13,   191,   296,
-     298,   192,   286,    -1,   289,    -1,   282,    -1,   292,    -1,
-      -1,   297,   212,    -1,   297,   212,   250,    -1,    10,   212,
-      -1,     9,   212,    -1,    16,   212,    -1,    16,   250,   212,
-      -1,    15,   212,    -1,   301,    -1,   252,    -1,   219,    -1,
-     253,   287,    -1
+     215,   279,   216,    -1,    73,   215,   279,   216,    -1,   280,
+      -1,   279,   280,    -1,   273,   281,   214,    -1,   282,    -1,
+     281,   198,   282,    -1,    76,    -1,    76,   195,   253,   196,
+      -1,   250,    -1,   254,    -1,   287,    -1,   286,    -1,   284,
+      -1,   291,    -1,   292,    -1,   295,    -1,   296,    -1,   297,
+      -1,   301,    -1,   215,   216,    -1,   215,   290,   216,    -1,
+     289,    -1,   286,    -1,   215,   216,    -1,   215,   290,   216,
+      -1,   285,    -1,   290,   285,    -1,   214,    -1,   252,   214,
+      -1,    14,   193,   252,   194,   293,    -1,   285,    12,   285,
+      -1,   285,    -1,   252,    -1,   265,    76,   213,   283,    -1,
+      17,   193,   252,   194,   287,    -1,    18,   252,   212,    -1,
+      19,   212,    -1,    75,   193,   294,   194,   288,    -1,    11,
+     285,    75,   193,   252,   194,   214,    -1,    13,   193,   298,
+     300,   194,   288,    -1,   291,    -1,   284,    -1,   294,    -1,
+      -1,   299,   214,    -1,   299,   214,   252,    -1,    10,   214,
+      -1,     9,   214,    -1,    16,   214,    -1,    16,   252,   214,
+      -1,    15,   214,    -1,   303,    -1,   254,    -1,   221,    -1,
+     255,   289,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   211,   211,   210,   217,   219,   239,   240,   241,   242,
-     245,   247,   251,   260,   268,   279,   283,   290,   297,   304,
-     311,   318,   325,   326,   332,   336,   343,   349,   358,   362,
-     366,   367,   376,   377,   381,   382,   386,   392,   404,   408,
-     414,   421,   432,   433,   439,   445,   455,   456,   457,   458,
-     462,   463,   469,   475,   484,   485,   491,   500,   501,   507,
-     516,   517,   523,   529,   535,   544,   545,   551,   560,   561,
-     570,   571,   580,   581,   590,   591,   600,   601,   610,   611,
-     620,   621,   630,   631,   640,   641,   642,   643,   644,   645,
-     646,   647,   648,   649,   650,   654,   658,   674,   678,   682,
-     686,   700,   704,   705,   709,   714,   722,   733,   743,   758,
-     765,   770,   781,   794,   797,   802,   807,   816,   820,   821,
-     830,   839,   848,   857,   866,   879,   890,   899,   908,   917,
-     926,   935,   944,   958,   965,   976,   983,   984,  1003,  1032,
-    1073,  1078,  1083,  1091,  1099,  1100,  1101,  1106,  1107,  1112,
-    1117,  1123,  1131,  1136,  1141,  1146,  1152,  1157,  1162,  1167,
-    1172,  1180,  1181,  1189,  1190,  1196,  1205,  1211,  1217,  1226,
-    1227,  1228,  1229,  1230,  1231,  1232,  1233,  1234,  1235,  1236,
-    1237,  1238,  1239,  1240,  1241,  1242,  1243,  1244,  1245,  1246,
-    1247,  1248,  1249,  1250,  1251,  1252,  1253,  1254,  1255,  1256,
-    1257,  1258,  1259,  1260,  1261,  1262,  1263,  1264,  1265,  1266,
-    1267,  1268,  1269,  1270,  1271,  1272,  1273,  1274,  1275,  1276,
-    1280,  1291,  1302,  1316,  1322,  1331,  1336,  1344,  1359,  1364,
-    1372,  1378,  1387,  1391,  1397,  1398,  1402,  1403,  1404,  1405,
-    1406,  1407,  1408,  1412,  1418,  1427,  1428,  1432,  1438,  1447,
-    1457,  1469,  1475,  1484,  1493,  1498,  1506,  1510,  1524,  1528,
-    1529,  1533,  1540,  1547,  1557,  1558,  1562,  1564,  1570,  1575,
-    1584,  1590,  1596,  1602,  1608,  1617,  1618,  1619,  1623
+       0,   212,   212,   211,   218,   220,   240,   241,   242,   243,
+     246,   248,   252,   261,   269,   280,   284,   291,   298,   305,
+     312,   319,   326,   327,   333,   337,   344,   350,   359,   363,
+     367,   368,   377,   378,   382,   383,   387,   393,   405,   409,
+     415,   422,   433,   434,   440,   446,   456,   457,   458,   459,
+     463,   464,   470,   476,   485,   486,   492,   501,   502,   508,
+     517,   518,   524,   530,   536,   545,   546,   552,   561,   562,
+     571,   572,   581,   582,   591,   592,   601,   602,   611,   612,
+     621,   622,   631,   632,   641,   642,   643,   644,   645,   646,
+     647,   648,   649,   650,   651,   655,   659,   675,   679,   683,
+     687,   701,   705,   706,   710,   715,   723,   734,   744,   759,
+     766,   771,   782,   795,   798,   803,   808,   817,   821,   822,
+     831,   840,   849,   858,   867,   880,   891,   900,   909,   918,
+     927,   936,   945,   959,   966,   977,   984,   985,  1004,  1033,
+    1074,  1079,  1084,  1092,  1100,  1101,  1102,  1107,  1108,  1113,
+    1118,  1124,  1132,  1137,  1142,  1147,  1153,  1158,  1163,  1168,
+    1173,  1181,  1182,  1190,  1191,  1197,  1206,  1212,  1218,  1227,
+    1228,  1229,  1230,  1231,  1232,  1233,  1234,  1235,  1236,  1237,
+    1238,  1239,  1240,  1241,  1242,  1243,  1244,  1245,  1246,  1247,
+    1248,  1249,  1250,  1251,  1252,  1253,  1254,  1255,  1256,  1257,
+    1258,  1259,  1260,  1261,  1262,  1263,  1264,  1265,  1266,  1267,
+    1268,  1269,  1270,  1271,  1272,  1273,  1274,  1275,  1276,  1277,
+    1281,  1292,  1303,  1317,  1323,  1332,  1337,  1345,  1360,  1365,
+    1373,  1379,  1388,  1392,  1398,  1399,  1403,  1404,  1405,  1406,
+    1407,  1408,  1409,  1413,  1419,  1428,  1429,  1433,  1439,  1448,
+    1458,  1470,  1476,  1485,  1494,  1499,  1507,  1511,  1525,  1529,
+    1530,  1534,  1541,  1548,  1558,  1559,  1563,  1565,  1571,  1576,
+    1585,  1591,  1597,  1603,  1609,  1618,  1619,  1620,  1624
 };
 #endif
 
@@ -876,11 +877,11 @@ static const char *const yytname[] =
   "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",
+  "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "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",
   "function_call_or_method", "function_call_generic",
@@ -939,43 +940,43 @@ static const yytype_uint16 yytoknum[] =
      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,   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
+     445,   446,   447,    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,   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,   265,   265,   266,   266,
-     267,   267,   267,   268,   269,   269,   269,   269,   269,   269,
-     269,   269,   270,   270,   270,   270,   270,   270,   270,   270,
-     270,   271,   271,   272,   272,   272,   273,   273,   273,   274,
-     274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
-     274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
-     274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
-     274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
-     274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
-     275,   275,   275,   276,   276,   277,   277,   278,   279,   279,
-     280,   280,   281,   282,   283,   283,   284,   284,   284,   284,
-     284,   284,   284,   285,   285,   286,   286,   287,   287,   288,
-     288,   289,   289,   290,   291,   291,   292,   292,   293,   294,
-     294,   295,   295,   295,   296,   296,   297,   297,   298,   298,
-     299,   299,   299,   299,   299,   300,   300,   300,   301
+       0,   217,   219,   218,   220,   220,   221,   221,   221,   221,
+     222,   222,   223,   224,   224,   225,   226,   226,   226,   226,
+     226,   226,   227,   227,   227,   227,   227,   227,   228,   229,
+     230,   230,   231,   231,   232,   232,   233,   233,   234,   235,
+     235,   235,   236,   236,   236,   236,   237,   237,   237,   237,
+     238,   238,   238,   238,   239,   239,   239,   240,   240,   240,
+     241,   241,   241,   241,   241,   242,   242,   242,   243,   243,
+     244,   244,   245,   245,   246,   246,   247,   247,   248,   248,
+     249,   249,   250,   250,   251,   251,   251,   251,   251,   251,
+     251,   251,   251,   251,   251,   252,   252,   253,   254,   254,
+     254,   255,   256,   256,   257,   257,   258,   259,   259,   260,
+     260,   260,   260,   261,   261,   261,   261,   262,   263,   263,
+     263,   263,   263,   263,   263,   264,   264,   264,   264,   264,
+     264,   264,   264,   265,   265,   266,   267,   267,   268,   268,
+     269,   269,   269,   270,   271,   271,   271,   271,   271,   271,
+     271,   271,   272,   272,   272,   272,   272,   272,   272,   272,
+     272,   273,   273,   274,   274,   274,   275,   275,   275,   276,
+     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
+     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
+     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
+     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
+     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
+     277,   277,   277,   278,   278,   279,   279,   280,   281,   281,
+     282,   282,   283,   284,   285,   285,   286,   286,   286,   286,
+     286,   286,   286,   287,   287,   288,   288,   289,   289,   290,
+     290,   291,   291,   292,   293,   293,   294,   294,   295,   296,
+     296,   297,   297,   297,   298,   298,   299,   299,   300,   300,
+     301,   301,   301,   301,   301,   302,   302,   302,   303
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1076,65 +1077,65 @@ static const yytype_int16 yydefgoto[] =
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -360
+#define YYPACT_NINF -350
 static const yytype_int16 yypact[] =
 {
-     -54,   -53,    37,  -360,   -26,  -360,    -5,  -360,    73,  3276,
-    -360,    63,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
-    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
-     105,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
-    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
-    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
-    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
-     -69,  -360,  -360,    42,  -360,  -360,  -360,   -74,    65,    79,
-      83,    85,    16,  -360,  -360,  -360,  3276,  -360,   -99,     9,
-      13,     5,  -152,  -360,   134,    17,    17,  3464,  -360,  -360,
-    -360,    18,  -360,  3536,  -360,  -360,  -360,   136,  -360,  -360,
-    -360,     0,  3464,  -360,    17,  -360,  3536,  -360,  -360,  -360,
-    -360,   138,  -360,  -360,   387,  -360,  -360,    24,  -360,  -360,
-    -360,  -360,  -360,  3464,   149,   141,  -360,  -150,  -360,  -360,
-    -360,  2371,  -360,   106,  3464,   144,  1760,  -360,  -360,    11,
-      14,  -144,  -360,    12,    20,  1235,    30,    31,    22,  1992,
-      38,  2914,    26,    46,   -59,  -360,  -360,  -360,  -360,  -360,
-    2914,  2914,  2914,  -360,  -360,  -360,  -360,  -360,   599,  -360,
-    -360,  -360,   -70,  -360,  -360,  -360,    36,   -56,  3095,    47,
-     -30,  2914,    -8,  -113,    39,   -76,    45,    34,    23,    35,
-     154,   153,   -79,  -360,  -360,  -123,  -360,    41,    55,  -360,
-    -360,  -360,  -360,   811,  -360,  -360,  -360,  -360,  -360,  -360,
-    -360,  -360,  -360,   172,  3464,  -164,  -360,  2552,  2914,  -360,
-    -360,  -360,    56,  -360,  -360,  1876,    58,  -110,  -360,  -360,
-    -360,  -360,   171,  -360,   138,  -360,  -360,   179,  1644,  2914,
-    -360,  -360,  -101,  2914,   -90,  -360,  2190,  -360,  -360,   -51,
-    -360,  1023,  -360,  -360,  2914,  3392,  -360,  -360,  2914,    64,
-    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
-    -360,  -360,  -360,  2914,  -360,  2914,  2914,  2914,  2914,  2914,
-    2914,  2914,  2914,  2914,  2914,  2914,  2914,  2914,  2914,  2914,
-    2914,  2914,  2914,  2914,  2914,  2914,  -360,  -360,  -360,    62,
-    -360,  -360,  2733,  2914,    48,    66,  -360,  -360,  -360,  -360,
-    2914,   144,  -360,  -360,  -360,    67,  -360,  -360,  2190,   -49,
-    -360,   -22,  -360,   238,    68,   187,    74,  -360,  -360,    71,
-      68,    76,  -360,  -360,  -360,  -360,  -360,  -360,    -8,    -8,
-    -113,  -113,    39,    39,    39,    39,   -76,   -76,    45,    34,
-      23,    35,   154,   153,   -84,  -360,  2914,    57,    75,  -360,
-    2914,    69,    87,  -360,  2914,  -360,    70,    91,  1235,    72,
-      78,  1446,  -360,  2914,    90,  2914,    81,  -360,  2914,  -360,
-     -16,  2914,  1446,   267,  -360,  -360,  2914,  -360,  -360,  -360,
-    -360,  -360,  -360,  2914,  -360,    82,    68,  -360,  1235,  -360,
-    -360,  -360,  -360
+     -78,   -56,    54,  -350,   -52,  -350,   -37,  -350,     8,  3302,
+    -350,   -26,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
+    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
+      88,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
+    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
+    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
+    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
+     -66,  -350,  -350,    42,  -350,  -350,  -350,    70,    -4,    10,
+      29,    34,   -79,  -350,  -350,  -350,  3302,  -350,   -19,   -24,
+     -69,     5,  -154,  -350,   102,    16,    16,  3490,  -350,  -350,
+    -350,    18,  -350,  3562,  -350,  -350,  -350,   108,  -350,  -350,
+    -350,    -8,  3490,  -350,    16,  -350,  3562,  -350,  -350,  -350,
+    -350,   138,  -350,  -350,   387,  -350,  -350,    24,  -350,  -350,
+    -350,  -350,  -350,  3490,   147,   141,  -350,  -166,  -350,  -350,
+    -350,  2387,  -350,   106,  3490,   144,  1772,  -350,  -350,     7,
+      11,   -87,  -350,    14,    15,  1243,    30,    32,    20,  2004,
+      37,  2936,    25,    39,   -65,  -350,  -350,  -350,  -350,  -350,
+    2936,  2936,  2936,  -350,  -350,  -350,  -350,  -350,   601,  -350,
+    -350,  -350,   -59,  -350,  -350,  -350,    28,   -82,  3119,    43,
+     -30,  2936,   -11,    -2,   118,   -74,   114,    35,    31,    36,
+     148,   152,   -77,  -350,  -350,  -115,  -350,    40,    52,  -350,
+    -350,  -350,  -350,   815,  -350,  -350,  -350,  -350,  -350,  -350,
+    -350,  -350,  -350,   172,  3490,  -180,  -350,  2570,  2936,  -350,
+    -350,  -350,    53,  -350,  -350,  1888,    55,  -113,  -350,  -350,
+    -350,  -350,   173,  -350,   138,  -350,  -350,   178,  1656,  2936,
+    -350,  -350,  -108,  2936,  -161,  -350,  2204,  -350,  -350,   -68,
+    -350,  1029,  -350,  -350,  2936,  3418,  -350,  -350,  2936,    61,
+    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
+    -350,  -350,  -350,  2936,  -350,  2936,  2936,  2936,  2936,  2936,
+    2936,  2936,  2936,  2936,  2936,  2936,  2936,  2936,  2936,  2936,
+    2936,  2936,  2936,  2936,  2936,  2936,  -350,  -350,  -350,    63,
+    -350,  -350,  2753,  2936,    46,    60,  -350,  -350,  -350,  -350,
+    2936,   144,  -350,  -350,  -350,    67,  -350,  -350,  2204,   -55,
+    -350,   -54,  -350,   238,    65,   188,    71,  -350,  -350,    72,
+      65,    73,  -350,  -350,  -350,  -350,  -350,  -350,   -11,   -11,
+      -2,    -2,   118,   118,   118,   118,   -74,   -74,   114,    35,
+      31,    36,   148,   152,  -157,  -350,  2936,    56,    83,  -350,
+    2936,    68,    84,  -350,  2936,  -350,    69,    90,  1243,    74,
+      77,  1456,  -350,  2936,    86,  2936,    79,  -350,  2936,  -350,
+     -53,  2936,  1456,   255,  -350,  -350,  2936,  -350,  -350,  -350,
+    -350,  -350,  -350,  2936,  -350,    80,    65,  -350,  1243,  -350,
+    -350,  -350,  -350
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
-    -360,  -360,  -360,  -360,    25,  -360,  -360,  -360,  -360,  -135,
-    -360,   -89,   -88,  -104,   -91,   -11,    -6,    -4,    -3,    -7,
-      -2,  -360,  -133,   -97,  -360,  -156,  -193,     4,    10,  -360,
-    -360,  -360,    80,   170,   166,    84,  -360,  -360,  -229,  -360,
-    -360,    59,   -71,  -360,  -360,   -72,    -9,     1,  -360,  -360,
-     225,  -360,   161,  -128,  -360,   -14,  -287,    61,  -151,  -359,
-     -68,   -82,   224,   135,    77,  -360,  -360,   -13,  -360,  -360,
-    -360,  -360,  -360,  -360,  -360,   228,  -360
+    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
+    -350,  -350,  -350,  -350,    22,  -350,  -350,  -350,  -350,  -135,
+    -350,   -83,   -81,  -104,   -85,   -13,    -6,    -5,    -3,    -1,
+      -7,  -350,  -133,   -97,  -350,  -156,  -193,     9,    12,  -350,
+    -350,  -350,    76,   170,   168,    81,  -350,  -350,  -239,  -350,
+    -350,    59,   -71,  -350,  -350,   -72,    -9,     1,  -350,  -350,
+     227,  -350,   163,  -139,  -350,   -12,  -283,    62,  -151,  -349,
+     -67,   -84,   223,   135,    66,  -350,  -350,   -10,  -350,  -350,
+    -350,  -350,  -350,  -350,  -350,   229,  -350
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1144,39 +1145,39 @@ static const yytype_int16 yypgoto[] =
 #define YYTABLE_NINF -169
 static const yytype_int16 yytable[] =
 {
-      99,   115,   114,   252,   247,   254,   230,   111,   231,   128,
-     292,   293,   303,    87,   262,   263,   259,  -168,   240,    88,
-      12,    13,   397,   138,   139,     4,   369,   335,   128,   312,
-      74,    75,    76,   397,   315,   257,   258,     5,   129,   130,
-     131,   226,   148,   227,   135,    12,    13,   313,   243,    30,
-      31,    32,   244,    33,    34,     1,   284,   129,   130,   131,
-     136,   228,   308,   272,   273,   274,   275,   276,   277,   278,
-     279,   280,   281,   305,    30,    31,    32,    99,    33,    34,
-      35,    36,    37,   387,   288,   289,   321,     7,   140,   306,
-      87,   270,   230,   329,   231,   305,    88,   331,   402,   335,
-     334,   404,   322,   145,   142,     8,   305,   240,   340,   409,
-     308,   330,   305,   123,   124,   208,   410,   149,   113,   368,
-     332,   290,   291,   264,   223,   265,   383,   372,   294,   295,
-     304,   316,   -40,   296,   297,   145,   267,   145,   108,   109,
-     268,   337,   110,   378,   112,   305,   208,   305,   364,    11,
+      99,   115,   114,   252,   247,   254,   230,   240,   231,   128,
+     111,  -168,   292,   293,   303,   312,   259,   335,    87,    12,
+      13,    88,     4,   138,   139,   262,   263,   226,   128,   227,
+     369,     1,   397,   313,   315,   257,   258,   305,   129,   130,
+     131,   305,   148,   397,   135,    12,    13,   228,    30,    31,
+      32,   332,    33,    34,     5,   383,   284,   129,   130,   131,
+     136,     7,   308,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,     8,    30,    31,    32,    99,    33,    34,
+      35,    36,    37,   305,    11,   321,   107,   387,   140,   335,
+     305,   270,   230,   329,   231,    87,   240,   331,    88,   306,
+     334,   322,   402,   145,   142,   404,   330,   243,   340,   117,
+     308,   244,   267,   409,   121,   208,   268,   149,   113,   368,
+     410,   108,   109,   118,   223,   110,   337,   372,   -40,   127,
+     305,   316,   294,   295,   304,   145,   264,   145,   265,   378,
+     379,   405,   119,   305,   305,   305,   208,   120,   364,   112,
      345,   346,   347,   230,   230,   230,   230,   230,   230,   230,
      230,   230,   230,   230,   230,   230,   230,   230,   230,   208,
-     379,   343,   334,   384,   305,   107,   405,   230,   117,   231,
-     305,   282,   129,   130,   131,   230,   344,   231,   352,   353,
-     354,   355,   118,   285,   286,   287,   119,  -102,   120,   348,
-     349,   126,   350,   351,   208,   356,   357,   121,   365,   127,
-     137,   141,   143,   144,   150,   223,   316,   225,   390,   234,
-     236,   248,   249,   241,   245,   242,   145,   393,   266,   253,
-     299,   230,   246,   231,   250,   406,   255,   256,   271,   208,
-     298,    12,    13,   300,   301,   302,   -39,   208,   309,   323,
-     318,   320,   208,   123,   325,   366,   -34,   412,   374,   370,
-     371,   115,   114,   380,   305,   382,   381,   -40,   385,   386,
-      30,    31,    32,   316,    33,    34,    35,    36,    37,   408,
-     388,   389,   391,   392,   401,   178,   400,   358,   316,   396,
-     342,   316,   403,   359,   411,   362,   360,   220,   361,   316,
-     224,   363,   116,   324,   310,   235,   316,   373,   311,   326,
-     407,   395,   125,   261,   122,   375,     0,     0,     0,   208,
-       0,     0,     0,     0,     0,   327,     0,     0,     0,     0,
+     126,   343,   334,   384,    74,    75,    76,   230,   137,   231,
+     129,   130,   131,   282,   143,   230,   344,   231,   352,   353,
+     354,   355,   285,   286,   287,   123,   124,   288,   289,  -102,
+     290,   291,   296,   297,   208,   348,   349,   144,   365,   350,
+     351,   356,   357,   141,   150,   223,   316,   225,   390,   234,
+     236,   241,   266,   248,   242,   249,   145,   393,   245,   246,
+     253,   230,   256,   231,   250,   406,   271,   255,   301,   208,
+     299,    12,    13,   298,   302,   -39,   300,   208,   309,   318,
+     320,   323,   208,   325,   123,   -34,   371,   412,   366,   370,
+     374,   115,   114,   305,   380,   381,   -40,   408,   382,   385,
+      30,    31,    32,   316,    33,    34,    35,    36,    37,   386,
+     389,   388,   401,   391,   392,   358,   400,   342,   316,   178,
+     396,   316,   403,   359,   411,   360,   363,   220,   361,   316,
+     310,   362,   224,   324,   116,   311,   316,   235,   407,   373,
+     326,   125,   395,   261,   327,   122,     0,     0,   375,   208,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -1201,31 +1202,10 @@ static const yytype_int16 yytable[] =
        0,    83,     0,    84,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   172,     0,
-       0,     0,     0,     0,   173,   174,   175,   176,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
-     178,   179,    12,    13,    14,    15,    16,    17,   153,   154,
-     155,     0,   156,   157,   158,   159,   160,   161,   162,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    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,    70,    71,   163,   164,   165,   166,   167,   168,
-     169,     0,     0,   170,   171,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    73,    74,    75,    76,     0,    77,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     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,    83,     0,    84,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      172,     0,     0,     0,     0,     0,   173,   174,   175,   176,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   177,   178,   260,    12,    13,    14,    15,    16,    17,
+       0,   177,   178,   179,    12,    13,    14,    15,    16,    17,
      153,   154,   155,     0,   156,   157,   158,   159,   160,   161,
      162,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,    30,    31,    32,     0,    33,    34,    35,
@@ -1244,30 +1224,9 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   172,     0,     0,     0,     0,     0,   173,   174,
-     175,   176,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   177,   178,   307,    12,    13,    14,    15,
-      16,    17,   153,   154,   155,     0,   156,   157,   158,   159,
-     160,   161,   162,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    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,    70,    71,   163,   164,
-     165,   166,   167,   168,   169,     0,     0,   170,   171,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    73,    74,    75,    76,
-       0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     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,    83,     0,    84,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,   172,     0,     0,     0,     0,     0,
      173,   174,   175,   176,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   177,   178,   338,    12,    13,
+       0,     0,     0,     0,     0,   177,   178,   260,    12,    13,
       14,    15,    16,    17,   153,   154,   155,     0,   156,   157,
      158,   159,   160,   161,   162,    18,    19,    20,    21,    22,
       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
@@ -1286,6 +1245,49 @@ static const yytype_int16 yytable[] =
        0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   172,     0,
+       0,     0,     0,     0,   173,   174,   175,   176,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
+     178,   307,    12,    13,    14,    15,    16,    17,   153,   154,
+     155,     0,   156,   157,   158,   159,   160,   161,   162,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    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,    70,    71,   163,   164,   165,   166,   167,   168,
+     169,     0,     0,   170,   171,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    73,    74,    75,    76,     0,    77,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     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,    83,     0,    84,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   172,     0,     0,     0,     0,     0,   173,   174,
+     175,   176,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   177,   178,   338,    12,    13,    14,    15,
+      16,    17,   153,   154,   155,     0,   156,   157,   158,   159,
+     160,   161,   162,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    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,    70,    71,   163,   164,
+     165,   166,   167,   168,   169,     0,     0,   170,   171,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    73,    74,    75,    76,
+       0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     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,    83,     0,    84,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,   172,     0,     0,     0,
        0,     0,   173,   174,   175,   176,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,   177,   178,    12,
@@ -1307,114 +1309,115 @@ static const yytype_int16 yytable[] =
       83,     0,    84,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   172,     0,     0,
-       0,     0,     0,   173,   174,   175,   176,    12,    13,    14,
-      15,    16,    17,     0,     0,     0,     0,     0,   177,   124,
-       0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    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,    70,    71,     0,
-     164,   165,   166,   167,   168,   169,     0,     0,   170,   171,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    73,    74,    75,
-      76,     0,    77,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    82,    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,    83,     0,
-      84,    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,   172,    72,     0,     0,     0,
-       0,   173,   174,   175,   176,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   177,     0,     0,     0,
-       0,     0,     0,     0,    74,    75,    76,     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,    83,     0,    84,    38,    39,    40,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   172,
+       0,     0,     0,     0,     0,   173,   174,   175,   176,    12,
+      13,    14,    15,    16,    17,     0,     0,     0,     0,     0,
+     177,   124,     0,     0,     0,     0,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      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,    70,
-      71,     0,    72,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   239,     0,     0,     0,     0,     0,
-      74,    75,    76,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    14,    15,    16,
+      71,     0,   164,   165,   166,   167,   168,   169,     0,     0,
+     170,   171,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
+      74,    75,    76,     0,    77,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    82,    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,
       83,     0,    84,    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,     0,   164,   165,
-     166,   167,   168,   169,     0,     0,   170,   171,     0,     0,
+      65,    66,    67,    68,    69,    70,    71,     0,    72,   172,
+       0,     0,     0,     0,     0,   173,   174,   175,   176,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     319,     0,     0,     0,     0,     0,    74,    75,    76,     0,
+     177,     0,     0,     0,     0,     0,    74,    75,    76,     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,    83,     0,    84,    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,     0,    72,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   239,     0,
+       0,     0,    74,    75,    76,     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,    83,     0,    84,    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,     0,
+     164,   165,   166,   167,   168,   169,     0,     0,   170,   171,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   319,     0,     0,     0,    74,    75,
+      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,    83,     0,    84,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    83,     0,
+      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   172,     0,     0,     0,     0,     0,   173,
-     174,   175,   176,    12,    13,    14,    15,    16,    17,     0,
-       0,     0,     0,     0,   251,     0,     0,     0,     0,     0,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    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,    70,    71,     0,   164,   165,   166,   167,
-     168,   169,     0,     0,   170,   171,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   333,    74,    75,    76,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   172,     0,     0,
+       0,     0,     0,   173,   174,   175,   176,    12,    13,    14,
+      15,    16,    17,     0,     0,     0,     0,     0,   251,     0,
+       0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    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,    70,    71,     0,
+     164,   165,   166,   167,   168,   169,     0,     0,   170,   171,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      82,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   333,    74,    75,
+      76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     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,    83,     0,    84,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    83,     0,
+      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     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,   172,     0,     0,     0,     0,     0,   173,   174,   175,
-     176,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    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,     0,   164,   165,   166,
-     167,   168,   169,     0,     0,   170,   171,     0,     0,     0,
+       0,     0,    14,    15,    16,    17,     0,   172,     0,     0,
+       0,     0,     0,   173,   174,   175,   176,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    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,     0,   164,   165,   166,   167,   168,   169,     0,
+       0,   170,   171,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    74,    75,    76,     0,     0,
+       0,    74,    75,    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,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    83,     0,    84,     0,     0,
+       0,    83,     0,    84,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     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,   172,     0,     0,   229,     0,     0,   173,   174,
-     175,   176,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    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,     0,   164,   165,
-     166,   167,   168,   169,     0,     0,   170,   171,     0,     0,
+       0,     0,     0,     0,     0,    14,    15,    16,    17,     0,
+     172,     0,     0,   229,     0,     0,   173,   174,   175,   176,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    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,     0,   164,   165,   166,   167,
+     168,   169,     0,     0,   170,   171,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    74,    75,    76,     0,
+       0,     0,     0,     0,    74,    75,    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,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    83,     0,    84,     0,
+       0,     0,     0,     0,    83,     0,    84,     0,     0,     0,
        0,     0,     0,     0,     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,
@@ -1435,122 +1438,122 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,    83,     0,    84,
        0,     0,     0,     0,     0,     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,   172,     0,     0,   367,     0,     0,
-     173,   174,   175,   176,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    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,     0,
-     164,   165,   166,   167,   168,   169,     0,     0,   170,   171,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    74,    75,
-      76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    14,    15,    16,    17,     0,   172,     0,     0,   367,
+       0,     0,   173,   174,   175,   176,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    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,     0,   164,   165,   166,   167,   168,   169,     0,     0,
+     170,   171,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      74,    75,    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,     0,     0,    83,     0,
-      84,     0,     0,     0,     0,     0,     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,   172,     0,     0,     0,     0,
-       0,   173,   174,   175,   176,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    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,   269,
-       0,   164,   165,   166,   167,   168,   169,     0,     0,   170,
-     171,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    74,
-      75,    76,     0,     0,     0,     0,     0,     0,     0,     0,
+      83,     0,    84,     0,     0,     0,     0,     0,     0,     0,
        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,   172,
+       0,     0,     0,     0,     0,   173,   174,   175,   176,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      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,   269,     0,   164,   165,   166,   167,   168,
+     169,     0,     0,   170,   171,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    83,
-       0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    74,    75,    76,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
-      13,    14,    15,    16,    17,     0,   172,     0,     0,     0,
-       0,     0,   173,   174,   175,   176,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      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,    70,
-      71,     0,    72,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
-      74,    75,    76,     0,    77,     0,     0,     0,     0,     0,
-       0,     0,    78,    79,    80,    81,    82,    14,    15,    16,
-      17,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    83,     0,    84,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    12,    13,    14,    15,    16,
+      17,     0,   172,     0,     0,     0,     0,     0,   173,   174,
+     175,   176,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    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,    70,    71,     0,    72,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    73,    74,    75,    76,     0,
+      77,     0,     0,     0,     0,     0,     0,     0,    78,    79,
+      80,    81,    82,    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,    83,     0,    84,    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,     0,   341,    14,    15,    16,    17,   169,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    74,    75,    76,     0,     0,     0,     0,     0,
+       0,    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,     0,    72,    14,    15,    16,
+      17,     0,    83,     0,    84,     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,
-      83,     0,    84,    38,    39,    40,    41,    42,    43,    44,
+      26,    27,    28,    29,    74,    75,    76,     0,     0,     0,
+       0,     0,     0,    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,     0,   341,    14,
-      15,    16,    17,   169,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    74,    75,    76,     0,
-       0,     0,     0,     0,     0,    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,     0,
-      72,    14,    15,    16,    17,     0,    83,     0,    84,     0,
-       0,     0,     0,     0,     0,     0,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    74,    75,
-      76,     0,     0,     0,     0,     0,     0,    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,     0,    72,     0,     0,     0,     0,     0,    83,     0,
-      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      65,    66,    67,    68,    69,    70,    71,     0,    72,     0,
+       0,     0,     0,     0,    83,     0,    84,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      83,     0,    84
+       0,     0,     0,     0,     0,     0,    83,     0,    84
 };
 
 static const yytype_int16 yycheck[] =
 {
-       9,    73,    73,   159,   155,   161,   141,    76,   141,     4,
-      86,    87,    91,     9,    84,    85,   172,    76,   146,     9,
-       3,     4,   381,    95,    96,    78,   313,   256,     4,   193,
-     104,   105,   106,   392,   227,   170,   171,     0,    33,    34,
-      35,   191,   114,   193,   196,     3,     4,   211,   192,    32,
-      33,    34,   196,    36,    37,   109,   191,    33,    34,    35,
-     212,   211,   213,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   196,    32,    33,    34,    86,    36,    37,
-      38,    39,    40,   370,   197,   198,   196,   113,    97,   212,
-      86,   188,   227,   249,   227,   196,    86,   253,   385,   328,
-     256,   388,   212,   112,   103,   110,   196,   235,   264,   396,
-     261,   212,   196,   212,   213,   124,   403,   116,    76,   312,
-     210,    82,    83,   193,   133,   195,   210,   320,   204,   205,
-     209,   228,   191,    88,    89,   144,   192,   146,    33,    34,
-     196,   192,    37,   192,   213,   196,   155,   196,   304,    76,
+       9,    73,    73,   159,   155,   161,   141,   146,   141,     4,
+      76,    76,    86,    87,    91,   195,   172,   256,     9,     3,
+       4,     9,    78,    95,    96,    84,    85,   193,     4,   195,
+     313,   109,   381,   213,   227,   170,   171,   198,    33,    34,
+      35,   198,   114,   392,   198,     3,     4,   213,    32,    33,
+      34,   212,    36,    37,     0,   212,   191,    33,    34,    35,
+     214,   113,   213,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   110,    32,    33,    34,    86,    36,    37,
+      38,    39,    40,   198,    76,   198,   112,   370,    97,   328,
+     198,   188,   227,   249,   227,    86,   235,   253,    86,   214,
+     256,   214,   385,   112,   103,   388,   214,   194,   264,   113,
+     261,   198,   194,   396,   193,   124,   198,   116,    76,   312,
+     403,    33,    34,   113,   133,    37,   194,   320,   193,   198,
+     198,   228,   206,   207,   211,   144,   195,   146,   197,   194,
+     194,   194,   113,   198,   198,   198,   155,   113,   304,   215,
      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      295,   296,   297,   298,   299,   300,   301,   302,   303,   178,
-     192,   268,   328,   366,   196,   112,   192,   312,   113,   312,
-     196,   211,    33,    34,    35,   320,   283,   320,   292,   293,
-     294,   295,   113,   201,   202,   203,   113,   192,   113,   288,
-     289,   192,   290,   291,   213,   296,   297,   191,   305,   196,
-      76,   193,    76,   213,    76,   224,   313,    76,   374,   113,
-      76,   191,   191,   212,   212,   211,   235,   378,   192,   191,
-     207,   366,   212,   366,   212,   391,   210,   191,   191,   248,
-     206,     3,     4,   208,    90,    92,   191,   256,    76,    78,
-     194,   193,   261,   212,    75,   193,   192,   408,   191,   211,
-     194,   333,   333,    76,   196,   194,   192,   191,   211,   194,
-      32,    33,    34,   370,    36,    37,    38,    39,    40,    12,
-     211,   194,   212,   192,   194,   213,   383,   298,   385,   211,
-     265,   388,   211,   299,   212,   302,   300,   127,   301,   396,
-     134,   303,    77,   244,   224,   144,   403,   321,   224,   248,
-     392,   379,    88,   178,    86,   328,    -1,    -1,    -1,   328,
-      -1,    -1,    -1,    -1,    -1,   248,    -1,    -1,    -1,    -1,
+     194,   268,   328,   366,   104,   105,   106,   312,    76,   312,
+      33,    34,    35,   213,    76,   320,   283,   320,   292,   293,
+     294,   295,   203,   204,   205,   214,   215,   199,   200,   194,
+      82,    83,    88,    89,   213,   288,   289,   215,   305,   290,
+     291,   296,   297,   195,    76,   224,   313,    76,   374,   113,
+      76,   214,   194,   193,   213,   193,   235,   378,   214,   214,
+     193,   366,   193,   366,   214,   391,   193,   212,    90,   248,
+     209,     3,     4,   208,    92,   193,   210,   256,    76,   196,
+     195,    78,   261,    75,   214,   194,   196,   408,   195,   213,
+     193,   333,   333,   198,    76,   194,   193,    12,   196,   213,
+      32,    33,    34,   370,    36,    37,    38,    39,    40,   196,
+     196,   213,   196,   214,   194,   298,   383,   265,   385,   215,
+     213,   388,   213,   299,   214,   300,   303,   127,   301,   396,
+     224,   302,   134,   244,    77,   224,   403,   144,   392,   321,
+     248,    88,   379,   178,   248,    86,    -1,    -1,   328,   328,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1575,31 +1578,10 @@ static const yytype_int16 yycheck[] =
       -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,   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,    33,    34,    -1,    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,    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,
+     193,    -1,    -1,    -1,    -1,    -1,   199,   200,   201,   202,
       -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,   214,     3,     4,     5,     6,     7,     8,
+      -1,   214,   215,   216,     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,    33,    34,    -1,    36,    37,    38,
@@ -1618,30 +1600,9 @@ 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,   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,    33,    34,    -1,    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,    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,   214,     3,     4,
+      -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,    -1,    -1,
+     199,   200,   201,   202,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   214,   215,   216,     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,    33,    34,
@@ -1660,9 +1621,52 @@ static const yytype_int16 yycheck[] =
       -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,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,    -1,
+      -1,    -1,    -1,    -1,   199,   200,   201,   202,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   214,
+     215,   216,     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,    33,    34,    -1,    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,    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,
+      -1,    -1,   193,    -1,    -1,    -1,    -1,    -1,   199,   200,
+     201,   202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   214,   215,   216,     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,    33,    34,    -1,    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,    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,    -1,    -1,   193,    -1,    -1,    -1,
+      -1,    -1,   199,   200,   201,   202,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   214,   215,     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,    33,
@@ -1678,12 +1682,67 @@ 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,
-     154,    -1,   156,    -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,   193,
+      -1,    -1,    -1,    -1,    -1,   199,   200,   201,   202,     3,
+       4,     5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,
+     214,   215,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    -1,    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,    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,    -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,    -1,    76,   193,
+      -1,    -1,    -1,    -1,    -1,   199,   200,   201,   202,    -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,
+      -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,   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,    -1,    -1,   216,    -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,   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,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   216,    -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,    -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,   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,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
+      -1,    -1,    -1,   199,   200,   201,   202,     3,     4,     5,
+       6,     7,     8,    -1,    -1,    -1,    -1,    -1,   214,    -1,
       -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
@@ -1693,107 +1752,53 @@ static const yytype_int16 yycheck[] =
       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,     5,     6,     7,     8,    -1,
+     106,    -1,    -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,
-      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,    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,    -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,   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,
-     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,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     214,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,
+      -1,    -1,     5,     6,     7,     8,    -1,   193,    -1,    -1,
+      -1,    -1,    -1,   199,   200,   201,   202,    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,   154,    -1,   156,    -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,   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,
+      -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,
+     193,    -1,    -1,   196,    -1,    -1,   199,   200,   201,   202,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      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,   103,   104,   105,   106,    -1,    -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,    -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,    -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,    -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,   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,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    -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,     5,     6,
-       7,     8,    -1,   191,    -1,    -1,   194,    -1,    -1,   197,
-     198,   199,   200,    20,    21,    22,    23,    24,    25,    26,
+       7,     8,    -1,   193,    -1,    -1,   196,    -1,    -1,   199,
+     200,   201,   202,    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,
@@ -1809,133 +1814,133 @@ static const yytype_int16 yycheck[] =
       -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,     5,     6,     7,     8,    -1,   193,    -1,    -1,   196,
+      -1,    -1,   199,   200,   201,   202,    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,   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,    -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,
+     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,     5,     6,     7,     8,    -1,   193,
+      -1,    -1,    -1,    -1,    -1,   199,   200,   201,   202,    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,   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,     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,    33,
-      34,    -1,    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,    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,    -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,    -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,     3,     4,     5,     6,     7,
+       8,    -1,   193,    -1,    -1,    -1,    -1,    -1,   199,   200,
+     201,   202,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    -1,    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,    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,
+      -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,    -1,    -1,    -1,    -1,    -1,    -1,
-     154,    -1,   156,    41,    42,    43,    44,    45,    46,    47,
+      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,    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,
+      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,
-     154,    -1,   156
+      -1,    -1,    -1,    -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,   216,   218,    78,     0,   220,   113,   110,   217,
-     221,    76,     3,     4,     5,     6,     7,     8,    20,    21,
+       0,   109,   218,   220,    78,     0,   222,   113,   110,   219,
+     223,    76,     3,     4,     5,     6,     7,     8,    20,    21,
       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
       32,    33,    34,    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,    70,    71,    72,
       73,    74,    76,   103,   104,   105,   106,   108,   116,   117,
-     118,   119,   120,   154,   156,   219,   222,   252,   253,   254,
-     255,   256,   261,   262,   263,   264,   267,   269,   270,   271,
-     272,   273,   274,   275,   276,   300,   301,   112,    33,    34,
-      37,    76,   213,    76,   267,   270,   275,   113,   113,   113,
-     113,   191,   300,   212,   213,   287,   192,   196,     4,    33,
-      34,    35,   258,   259,   268,   196,   212,    76,   270,   270,
-     271,   193,   272,    76,   213,   271,   277,   278,   270,   272,
-      76,   265,   266,     9,    10,    11,    13,    14,    15,    16,
+     118,   119,   120,   154,   156,   221,   224,   254,   255,   256,
+     257,   258,   263,   264,   265,   266,   269,   271,   272,   273,
+     274,   275,   276,   277,   278,   302,   303,   112,    33,    34,
+      37,    76,   215,    76,   269,   272,   277,   113,   113,   113,
+     113,   193,   302,   214,   215,   289,   194,   198,     4,    33,
+      34,    35,   260,   261,   270,   198,   214,    76,   272,   272,
+     273,   195,   274,    76,   215,   273,   279,   280,   272,   274,
+      76,   267,   268,     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,   271,   282,
-     283,   284,   285,   288,   289,   290,   293,   294,   295,   299,
-     258,   257,   260,   271,   259,    76,   191,   193,   211,   194,
-     234,   247,   251,   271,   113,   277,    76,   279,   280,   214,
-     278,   212,   211,   192,   196,   212,   212,   283,   191,   191,
-     212,   212,   250,   191,   250,   210,   191,   234,   234,   250,
-     214,   288,    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,   283,    76,
-     257,   260,   193,   211,   194,   251,   248,   281,   194,   214,
-     193,   196,   212,    78,   266,    75,   282,   289,   296,   250,
-     212,   250,   210,   103,   250,   263,   292,   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,   281,
-     211,   194,   251,   280,   191,   292,   297,   298,   192,   192,
-      76,   192,   194,   210,   251,   211,   194,   281,   211,   194,
-     250,   212,   192,   283,   291,   285,   211,   284,   286,   287,
-     248,   194,   281,   211,   281,   192,   250,   286,    12,   281,
-     281,   212,   283
+      84,    85,   193,   199,   200,   201,   202,   214,   215,   216,
+     225,   226,   227,   229,   230,   231,   232,   233,   234,   235,
+     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
+     246,   247,   248,   249,   250,   252,   254,   255,   273,   284,
+     285,   286,   287,   290,   291,   292,   295,   296,   297,   301,
+     260,   259,   262,   273,   261,    76,   193,   195,   213,   196,
+     236,   249,   253,   273,   113,   279,    76,   281,   282,   216,
+     280,   214,   213,   194,   198,   214,   214,   285,   193,   193,
+     214,   214,   252,   193,   252,   212,   193,   236,   236,   252,
+     216,   290,    84,    85,   195,   197,   194,   194,   198,    74,
+     250,   193,    93,    94,    95,    96,    97,    98,    99,   100,
+     101,   102,   213,   251,   236,   203,   204,   205,   199,   200,
+      82,    83,    86,    87,   206,   207,    88,    89,   208,   209,
+     210,    90,    92,    91,   211,   198,   214,   216,   285,    76,
+     259,   262,   195,   213,   196,   253,   250,   283,   196,   216,
+     195,   198,   214,    78,   268,    75,   284,   291,   298,   252,
+     214,   252,   212,   103,   252,   265,   294,   194,   216,   228,
+     252,    76,   231,   250,   250,   236,   236,   236,   238,   238,
+     239,   239,   240,   240,   240,   240,   241,   241,   242,   243,
+     244,   245,   246,   247,   252,   250,   195,   196,   253,   283,
+     213,   196,   253,   282,   193,   294,   299,   300,   194,   194,
+      76,   194,   196,   212,   253,   213,   196,   283,   213,   196,
+     252,   214,   194,   285,   293,   287,   213,   286,   288,   289,
+     250,   196,   283,   213,   283,   194,   252,   288,    12,   283,
+     283,   214,   285
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1950,9 +1955,18 @@ 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.  */
+   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.  */
 
 #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)
 
@@ -2009,7 +2023,7 @@ while (YYID (0))
    we won't break user code: when these are the locations we know.  */
 
 #ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
 #  define YY_LOCATION_PRINT(File, Loc)                 \
      fprintf (File, "%d.%d-%d.%d",                     \
              (Loc).first_line, (Loc).first_column,     \
@@ -2551,7 +2565,7 @@ YYLTYPE yylloc;
     YYLTYPE *yylsp;
 
     /* The locations where the error started and ended.  */
-    YYLTYPE yyerror_range[2];
+    YYLTYPE yyerror_range[3];
 
     YYSIZE_T yystacksize;
 
@@ -2598,7 +2612,7 @@ YYLTYPE yylloc;
   yyvsp = yyvs;
   yylsp = yyls;
 
-#if YYLTYPE_IS_TRIVIAL
+#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
   /* Initialize the default location before parsing starts.  */
   yylloc.first_line   = yylloc.last_line   = 1;
   yylloc.first_column = yylloc.last_column = 1;
@@ -2606,7 +2620,7 @@ YYLTYPE yylloc;
 
 /* User initialization code.  */
 
-/* Line 1242 of yacc.c  */
+/* Line 1251 of yacc.c  */
 #line 41 "glsl_parser.ypp"
 {
    yylloc.first_line = 1;
@@ -2616,8 +2630,8 @@ YYLTYPE yylloc;
    yylloc.source = 0;
 }
 
-/* Line 1242 of yacc.c  */
-#line 2621 "glsl_parser.cpp"
+/* Line 1251 of yacc.c  */
+#line 2635 "glsl_parser.cpp"
   yylsp[0] = yylloc;
 
   goto yysetstate;
@@ -2804,8 +2818,8 @@ yyreduce:
     {
         case 2:
 
-/* Line 1455 of yacc.c  */
-#line 211 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 212 "glsl_parser.ypp"
     {
           _mesa_glsl_initialize_types(state);
        ;}
@@ -2813,8 +2827,8 @@ yyreduce:
 
   case 5:
 
-/* Line 1455 of yacc.c  */
-#line 220 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 221 "glsl_parser.ypp"
     {
           switch ((yyvsp[(2) - (3)].n)) {
           case 100:
@@ -2835,8 +2849,8 @@ yyreduce:
 
   case 12:
 
-/* Line 1455 of yacc.c  */
-#line 252 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 253 "glsl_parser.ypp"
     {
           if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
              YYERROR;
@@ -2846,8 +2860,8 @@ yyreduce:
 
   case 13:
 
-/* Line 1455 of yacc.c  */
-#line 261 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 262 "glsl_parser.ypp"
     {
           /* FINISHME: The NULL test is only required because 'precision'
            * FINISHME: statements are not yet supported.
@@ -2859,8 +2873,8 @@ yyreduce:
 
   case 14:
 
-/* Line 1455 of yacc.c  */
-#line 269 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 270 "glsl_parser.ypp"
     {
           /* FINISHME: The NULL test is only required because 'precision'
            * FINISHME: statements are not yet supported.
@@ -2872,8 +2886,8 @@ yyreduce:
 
   case 16:
 
-/* Line 1455 of yacc.c  */
-#line 284 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 285 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
@@ -2884,8 +2898,8 @@ yyreduce:
 
   case 17:
 
-/* Line 1455 of yacc.c  */
-#line 291 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 292 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
@@ -2896,8 +2910,8 @@ yyreduce:
 
   case 18:
 
-/* Line 1455 of yacc.c  */
-#line 298 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 299 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
@@ -2908,8 +2922,8 @@ yyreduce:
 
   case 19:
 
-/* Line 1455 of yacc.c  */
-#line 305 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 306 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
@@ -2920,8 +2934,8 @@ yyreduce:
 
   case 20:
 
-/* Line 1455 of yacc.c  */
-#line 312 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 313 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
@@ -2932,8 +2946,8 @@ yyreduce:
 
   case 21:
 
-/* Line 1455 of yacc.c  */
-#line 319 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 320 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(2) - (3)].expression);
        ;}
@@ -2941,8 +2955,8 @@ yyreduce:
 
   case 23:
 
-/* Line 1455 of yacc.c  */
-#line 327 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 328 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
@@ -2952,8 +2966,8 @@ yyreduce:
 
   case 24:
 
-/* Line 1455 of yacc.c  */
-#line 333 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 334 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (1)].expression);
        ;}
@@ -2961,8 +2975,8 @@ yyreduce:
 
   case 25:
 
-/* Line 1455 of yacc.c  */
-#line 337 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 338 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL);
@@ -2973,8 +2987,8 @@ yyreduce:
 
   case 26:
 
-/* Line 1455 of yacc.c  */
-#line 344 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 345 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
@@ -2984,8 +2998,8 @@ yyreduce:
 
   case 27:
 
-/* Line 1455 of yacc.c  */
-#line 350 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 351 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
@@ -2995,8 +3009,8 @@ yyreduce:
 
   case 31:
 
-/* Line 1455 of yacc.c  */
-#line 368 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 369 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
@@ -3006,8 +3020,8 @@ yyreduce:
 
   case 36:
 
-/* Line 1455 of yacc.c  */
-#line 387 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 388 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (2)].expression);
           (yyval.expression)->set_location(yylloc);
@@ -3017,8 +3031,8 @@ yyreduce:
 
   case 37:
 
-/* Line 1455 of yacc.c  */
-#line 393 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 394 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (3)].expression);
           (yyval.expression)->set_location(yylloc);
@@ -3028,8 +3042,8 @@ yyreduce:
 
   case 39:
 
-/* Line 1455 of yacc.c  */
-#line 409 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 410 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier));
@@ -3039,8 +3053,8 @@ yyreduce:
 
   case 40:
 
-/* Line 1455 of yacc.c  */
-#line 415 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 416 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
@@ -3051,8 +3065,8 @@ yyreduce:
 
   case 41:
 
-/* Line 1455 of yacc.c  */
-#line 422 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 423 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
@@ -3063,8 +3077,8 @@ yyreduce:
 
   case 43:
 
-/* Line 1455 of yacc.c  */
-#line 434 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 435 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3074,8 +3088,8 @@ yyreduce:
 
   case 44:
 
-/* Line 1455 of yacc.c  */
-#line 440 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 441 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3085,8 +3099,8 @@ yyreduce:
 
   case 45:
 
-/* Line 1455 of yacc.c  */
-#line 446 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 447 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL);
@@ -3096,36 +3110,36 @@ yyreduce:
 
   case 46:
 
-/* Line 1455 of yacc.c  */
-#line 455 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 456 "glsl_parser.ypp"
     { (yyval.n) = ast_plus; ;}
     break;
 
   case 47:
 
-/* Line 1455 of yacc.c  */
-#line 456 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 457 "glsl_parser.ypp"
     { (yyval.n) = ast_neg; ;}
     break;
 
   case 48:
 
-/* Line 1455 of yacc.c  */
-#line 457 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 458 "glsl_parser.ypp"
     { (yyval.n) = ast_logic_not; ;}
     break;
 
   case 49:
 
-/* Line 1455 of yacc.c  */
-#line 458 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 459 "glsl_parser.ypp"
     { (yyval.n) = ast_bit_not; ;}
     break;
 
   case 51:
 
-/* Line 1455 of yacc.c  */
-#line 464 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 465 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3135,8 +3149,8 @@ yyreduce:
 
   case 52:
 
-/* Line 1455 of yacc.c  */
-#line 470 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 471 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3146,8 +3160,8 @@ yyreduce:
 
   case 53:
 
-/* Line 1455 of yacc.c  */
-#line 476 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 477 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3157,8 +3171,8 @@ yyreduce:
 
   case 55:
 
-/* Line 1455 of yacc.c  */
-#line 486 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 487 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3168,8 +3182,8 @@ yyreduce:
 
   case 56:
 
-/* Line 1455 of yacc.c  */
-#line 492 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 493 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3179,8 +3193,8 @@ yyreduce:
 
   case 58:
 
-/* Line 1455 of yacc.c  */
-#line 502 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 503 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3190,8 +3204,8 @@ yyreduce:
 
   case 59:
 
-/* Line 1455 of yacc.c  */
-#line 508 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 509 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3201,8 +3215,8 @@ yyreduce:
 
   case 61:
 
-/* Line 1455 of yacc.c  */
-#line 518 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 519 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3212,8 +3226,8 @@ yyreduce:
 
   case 62:
 
-/* Line 1455 of yacc.c  */
-#line 524 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 525 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3223,8 +3237,8 @@ yyreduce:
 
   case 63:
 
-/* Line 1455 of yacc.c  */
-#line 530 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 531 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3234,8 +3248,8 @@ yyreduce:
 
   case 64:
 
-/* Line 1455 of yacc.c  */
-#line 536 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 537 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3245,8 +3259,8 @@ yyreduce:
 
   case 66:
 
-/* Line 1455 of yacc.c  */
-#line 546 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 547 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3256,8 +3270,8 @@ yyreduce:
 
   case 67:
 
-/* Line 1455 of yacc.c  */
-#line 552 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 553 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3267,8 +3281,8 @@ yyreduce:
 
   case 69:
 
-/* Line 1455 of yacc.c  */
-#line 562 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 563 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3278,8 +3292,8 @@ yyreduce:
 
   case 71:
 
-/* Line 1455 of yacc.c  */
-#line 572 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 573 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3289,8 +3303,8 @@ yyreduce:
 
   case 73:
 
-/* Line 1455 of yacc.c  */
-#line 582 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 583 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3300,8 +3314,8 @@ yyreduce:
 
   case 75:
 
-/* Line 1455 of yacc.c  */
-#line 592 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 593 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3311,8 +3325,8 @@ yyreduce:
 
   case 77:
 
-/* Line 1455 of yacc.c  */
-#line 602 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 603 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3322,8 +3336,8 @@ yyreduce:
 
   case 79:
 
-/* Line 1455 of yacc.c  */
-#line 612 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 613 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3333,8 +3347,8 @@ yyreduce:
 
   case 81:
 
-/* Line 1455 of yacc.c  */
-#line 622 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 623 "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));
@@ -3344,8 +3358,8 @@ yyreduce:
 
   case 83:
 
-/* Line 1455 of yacc.c  */
-#line 632 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 633 "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);
@@ -3355,85 +3369,85 @@ yyreduce:
 
   case 84:
 
-/* Line 1455 of yacc.c  */
-#line 640 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 641 "glsl_parser.ypp"
     { (yyval.n) = ast_assign; ;}
     break;
 
   case 85:
 
-/* Line 1455 of yacc.c  */
-#line 641 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 642 "glsl_parser.ypp"
     { (yyval.n) = ast_mul_assign; ;}
     break;
 
   case 86:
 
-/* Line 1455 of yacc.c  */
-#line 642 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 643 "glsl_parser.ypp"
     { (yyval.n) = ast_div_assign; ;}
     break;
 
   case 87:
 
-/* Line 1455 of yacc.c  */
-#line 643 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 644 "glsl_parser.ypp"
     { (yyval.n) = ast_mod_assign; ;}
     break;
 
   case 88:
 
-/* Line 1455 of yacc.c  */
-#line 644 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 645 "glsl_parser.ypp"
     { (yyval.n) = ast_add_assign; ;}
     break;
 
   case 89:
 
-/* Line 1455 of yacc.c  */
-#line 645 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 646 "glsl_parser.ypp"
     { (yyval.n) = ast_sub_assign; ;}
     break;
 
   case 90:
 
-/* Line 1455 of yacc.c  */
-#line 646 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 647 "glsl_parser.ypp"
     { (yyval.n) = ast_ls_assign; ;}
     break;
 
   case 91:
 
-/* Line 1455 of yacc.c  */
-#line 647 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 648 "glsl_parser.ypp"
     { (yyval.n) = ast_rs_assign; ;}
     break;
 
   case 92:
 
-/* Line 1455 of yacc.c  */
-#line 648 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 649 "glsl_parser.ypp"
     { (yyval.n) = ast_and_assign; ;}
     break;
 
   case 93:
 
-/* Line 1455 of yacc.c  */
-#line 649 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 650 "glsl_parser.ypp"
     { (yyval.n) = ast_xor_assign; ;}
     break;
 
   case 94:
 
-/* Line 1455 of yacc.c  */
-#line 650 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 651 "glsl_parser.ypp"
     { (yyval.n) = ast_or_assign; ;}
     break;
 
   case 95:
 
-/* Line 1455 of yacc.c  */
-#line 655 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 656 "glsl_parser.ypp"
     {
           (yyval.expression) = (yyvsp[(1) - (1)].expression);
        ;}
@@ -3441,8 +3455,8 @@ yyreduce:
 
   case 96:
 
-/* Line 1455 of yacc.c  */
-#line 659 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 660 "glsl_parser.ypp"
     {
           void *ctx = state;
           if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
@@ -3459,8 +3473,8 @@ yyreduce:
 
   case 98:
 
-/* Line 1455 of yacc.c  */
-#line 679 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 680 "glsl_parser.ypp"
     {
           (yyval.node) = (yyvsp[(1) - (2)].function);
        ;}
@@ -3468,8 +3482,8 @@ yyreduce:
 
   case 99:
 
-/* Line 1455 of yacc.c  */
-#line 683 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 684 "glsl_parser.ypp"
     {
           (yyval.node) = (yyvsp[(1) - (2)].declarator_list);
        ;}
@@ -3477,8 +3491,8 @@ yyreduce:
 
   case 100:
 
-/* Line 1455 of yacc.c  */
-#line 687 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 688 "glsl_parser.ypp"
     {
           if (((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_float)
               && ((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_int)) {
@@ -3493,8 +3507,8 @@ yyreduce:
 
   case 104:
 
-/* Line 1455 of yacc.c  */
-#line 710 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 711 "glsl_parser.ypp"
     {
           (yyval.function) = (yyvsp[(1) - (2)].function);
           (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link);
@@ -3503,8 +3517,8 @@ yyreduce:
 
   case 105:
 
-/* Line 1455 of yacc.c  */
-#line 715 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 716 "glsl_parser.ypp"
     {
           (yyval.function) = (yyvsp[(1) - (3)].function);
           (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link);
@@ -3513,8 +3527,8 @@ yyreduce:
 
   case 106:
 
-/* Line 1455 of yacc.c  */
-#line 723 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 724 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.function) = new(ctx) ast_function();
@@ -3526,8 +3540,8 @@ yyreduce:
 
   case 107:
 
-/* Line 1455 of yacc.c  */
-#line 734 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 735 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3541,8 +3555,8 @@ yyreduce:
 
   case 108:
 
-/* Line 1455 of yacc.c  */
-#line 744 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 745 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3558,8 +3572,8 @@ yyreduce:
 
   case 109:
 
-/* Line 1455 of yacc.c  */
-#line 759 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 760 "glsl_parser.ypp"
     {
           (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
 
@@ -3570,8 +3584,8 @@ yyreduce:
 
   case 110:
 
-/* Line 1455 of yacc.c  */
-#line 766 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 767 "glsl_parser.ypp"
     {
           (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);
           (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier);
@@ -3580,8 +3594,8 @@ yyreduce:
 
   case 111:
 
-/* Line 1455 of yacc.c  */
-#line 771 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 772 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
@@ -3596,8 +3610,8 @@ yyreduce:
 
   case 112:
 
-/* Line 1455 of yacc.c  */
-#line 782 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 783 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
@@ -3610,8 +3624,8 @@ yyreduce:
 
   case 113:
 
-/* Line 1455 of yacc.c  */
-#line 794 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 795 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        ;}
@@ -3619,8 +3633,8 @@ yyreduce:
 
   case 114:
 
-/* Line 1455 of yacc.c  */
-#line 798 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 799 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.in = 1;
@@ -3629,8 +3643,8 @@ yyreduce:
 
   case 115:
 
-/* Line 1455 of yacc.c  */
-#line 803 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 804 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.out = 1;
@@ -3639,8 +3653,8 @@ yyreduce:
 
   case 116:
 
-/* Line 1455 of yacc.c  */
-#line 808 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 809 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.in = 1;
@@ -3650,8 +3664,8 @@ yyreduce:
 
   case 119:
 
-/* Line 1455 of yacc.c  */
-#line 822 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 823 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL);
@@ -3664,8 +3678,8 @@ yyreduce:
 
   case 120:
 
-/* Line 1455 of yacc.c  */
-#line 831 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 832 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL);
@@ -3678,8 +3692,8 @@ yyreduce:
 
   case 121:
 
-/* Line 1455 of yacc.c  */
-#line 840 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 841 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL);
@@ -3692,8 +3706,8 @@ yyreduce:
 
   case 122:
 
-/* Line 1455 of yacc.c  */
-#line 849 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 850 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression));
@@ -3706,8 +3720,8 @@ yyreduce:
 
   case 123:
 
-/* Line 1455 of yacc.c  */
-#line 858 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 859 "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));
@@ -3720,8 +3734,8 @@ yyreduce:
 
   case 124:
 
-/* Line 1455 of yacc.c  */
-#line 867 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 868 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression));
@@ -3734,8 +3748,8 @@ yyreduce:
 
   case 125:
 
-/* Line 1455 of yacc.c  */
-#line 880 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 881 "glsl_parser.ypp"
     {
           void *ctx = state;
           if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) {
@@ -3750,8 +3764,8 @@ yyreduce:
 
   case 126:
 
-/* Line 1455 of yacc.c  */
-#line 891 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 892 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
@@ -3764,8 +3778,8 @@ yyreduce:
 
   case 127:
 
-/* Line 1455 of yacc.c  */
-#line 900 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 901 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL);
@@ -3778,8 +3792,8 @@ yyreduce:
 
   case 128:
 
-/* Line 1455 of yacc.c  */
-#line 909 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 910 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL);
@@ -3792,8 +3806,8 @@ yyreduce:
 
   case 129:
 
-/* Line 1455 of yacc.c  */
-#line 918 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 919 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression));
@@ -3806,8 +3820,8 @@ yyreduce:
 
   case 130:
 
-/* Line 1455 of yacc.c  */
-#line 927 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 928 "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));
@@ -3820,8 +3834,8 @@ yyreduce:
 
   case 131:
 
-/* Line 1455 of yacc.c  */
-#line 936 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 937 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
@@ -3834,8 +3848,8 @@ yyreduce:
 
   case 132:
 
-/* Line 1455 of yacc.c  */
-#line 945 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 946 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
@@ -3850,8 +3864,8 @@ yyreduce:
 
   case 133:
 
-/* Line 1455 of yacc.c  */
-#line 959 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 960 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
@@ -3862,8 +3876,8 @@ yyreduce:
 
   case 134:
 
-/* Line 1455 of yacc.c  */
-#line 966 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 967 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
@@ -3875,8 +3889,8 @@ yyreduce:
 
   case 135:
 
-/* Line 1455 of yacc.c  */
-#line 977 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 978 "glsl_parser.ypp"
     {
          (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
        ;}
@@ -3884,8 +3898,8 @@ yyreduce:
 
   case 137:
 
-/* Line 1455 of yacc.c  */
-#line 985 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 986 "glsl_parser.ypp"
     {
           if (((yyvsp[(1) - (3)].type_qualifier).flags.i & (yyvsp[(3) - (3)].type_qualifier).flags.i) != 0) {
              _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
@@ -3905,8 +3919,8 @@ yyreduce:
 
   case 138:
 
-/* Line 1455 of yacc.c  */
-#line 1004 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1005 "glsl_parser.ypp"
     {
           bool got_one = false;
 
@@ -3939,8 +3953,8 @@ yyreduce:
 
   case 139:
 
-/* Line 1455 of yacc.c  */
-#line 1033 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1034 "glsl_parser.ypp"
     {
           bool got_one = false;
 
@@ -3982,8 +3996,8 @@ yyreduce:
 
   case 140:
 
-/* Line 1455 of yacc.c  */
-#line 1074 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1075 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.smooth = 1;
@@ -3992,8 +4006,8 @@ yyreduce:
 
   case 141:
 
-/* Line 1455 of yacc.c  */
-#line 1079 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1080 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.flat = 1;
@@ -4002,8 +4016,8 @@ yyreduce:
 
   case 142:
 
-/* Line 1455 of yacc.c  */
-#line 1084 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1085 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.noperspective = 1;
@@ -4012,8 +4026,8 @@ yyreduce:
 
   case 143:
 
-/* Line 1455 of yacc.c  */
-#line 1092 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1093 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.constant = 1;
@@ -4022,8 +4036,8 @@ yyreduce:
 
   case 146:
 
-/* Line 1455 of yacc.c  */
-#line 1102 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1103 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
           (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
@@ -4032,8 +4046,8 @@ yyreduce:
 
   case 148:
 
-/* Line 1455 of yacc.c  */
-#line 1108 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1109 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
           (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
@@ -4042,8 +4056,8 @@ yyreduce:
 
   case 149:
 
-/* Line 1455 of yacc.c  */
-#line 1113 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1114 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
           (yyval.type_qualifier).flags.q.invariant = 1;
@@ -4052,8 +4066,8 @@ yyreduce:
 
   case 150:
 
-/* Line 1455 of yacc.c  */
-#line 1118 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1119 "glsl_parser.ypp"
     {
           (yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier);
           (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).flags.i;
@@ -4063,8 +4077,8 @@ yyreduce:
 
   case 151:
 
-/* Line 1455 of yacc.c  */
-#line 1124 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1125 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.invariant = 1;
@@ -4073,8 +4087,8 @@ yyreduce:
 
   case 152:
 
-/* Line 1455 of yacc.c  */
-#line 1132 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1133 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.constant = 1;
@@ -4083,8 +4097,8 @@ yyreduce:
 
   case 153:
 
-/* Line 1455 of yacc.c  */
-#line 1137 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1138 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.attribute = 1;
@@ -4093,8 +4107,8 @@ yyreduce:
 
   case 154:
 
-/* Line 1455 of yacc.c  */
-#line 1142 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1143 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.varying = 1;
@@ -4103,8 +4117,8 @@ yyreduce:
 
   case 155:
 
-/* Line 1455 of yacc.c  */
-#line 1147 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1148 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.centroid = 1;
@@ -4114,8 +4128,8 @@ yyreduce:
 
   case 156:
 
-/* Line 1455 of yacc.c  */
-#line 1153 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1154 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.in = 1;
@@ -4124,8 +4138,8 @@ yyreduce:
 
   case 157:
 
-/* Line 1455 of yacc.c  */
-#line 1158 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1159 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.out = 1;
@@ -4134,8 +4148,8 @@ yyreduce:
 
   case 158:
 
-/* Line 1455 of yacc.c  */
-#line 1163 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1164 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.in = 1;
@@ -4144,8 +4158,8 @@ yyreduce:
 
   case 159:
 
-/* Line 1455 of yacc.c  */
-#line 1168 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1169 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.out = 1;
@@ -4154,8 +4168,8 @@ yyreduce:
 
   case 160:
 
-/* Line 1455 of yacc.c  */
-#line 1173 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1174 "glsl_parser.ypp"
     {
           memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
           (yyval.type_qualifier).flags.q.uniform = 1;
@@ -4164,8 +4178,8 @@ yyreduce:
 
   case 162:
 
-/* Line 1455 of yacc.c  */
-#line 1182 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1183 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
           (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
@@ -4174,8 +4188,8 @@ yyreduce:
 
   case 164:
 
-/* Line 1455 of yacc.c  */
-#line 1191 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1192 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
           (yyval.type_specifier)->is_array = true;
@@ -4185,8 +4199,8 @@ yyreduce:
 
   case 165:
 
-/* Line 1455 of yacc.c  */
-#line 1197 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1198 "glsl_parser.ypp"
     {
           (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
           (yyval.type_specifier)->is_array = true;
@@ -4196,8 +4210,8 @@ yyreduce:
 
   case 166:
 
-/* Line 1455 of yacc.c  */
-#line 1206 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1207 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
@@ -4207,8 +4221,8 @@ yyreduce:
 
   case 167:
 
-/* Line 1455 of yacc.c  */
-#line 1212 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1213 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
@@ -4218,8 +4232,8 @@ yyreduce:
 
   case 168:
 
-/* Line 1455 of yacc.c  */
-#line 1218 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1219 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
@@ -4229,365 +4243,365 @@ yyreduce:
 
   case 169:
 
-/* Line 1455 of yacc.c  */
-#line 1226 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1227 "glsl_parser.ypp"
     { (yyval.n) = ast_void; ;}
     break;
 
   case 170:
 
-/* Line 1455 of yacc.c  */
-#line 1227 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1228 "glsl_parser.ypp"
     { (yyval.n) = ast_float; ;}
     break;
 
   case 171:
 
-/* Line 1455 of yacc.c  */
-#line 1228 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1229 "glsl_parser.ypp"
     { (yyval.n) = ast_int; ;}
     break;
 
   case 172:
 
-/* Line 1455 of yacc.c  */
-#line 1229 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1230 "glsl_parser.ypp"
     { (yyval.n) = ast_uint; ;}
     break;
 
   case 173:
 
-/* Line 1455 of yacc.c  */
-#line 1230 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1231 "glsl_parser.ypp"
     { (yyval.n) = ast_bool; ;}
     break;
 
   case 174:
 
-/* Line 1455 of yacc.c  */
-#line 1231 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1232 "glsl_parser.ypp"
     { (yyval.n) = ast_vec2; ;}
     break;
 
   case 175:
 
-/* Line 1455 of yacc.c  */
-#line 1232 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1233 "glsl_parser.ypp"
     { (yyval.n) = ast_vec3; ;}
     break;
 
   case 176:
 
-/* Line 1455 of yacc.c  */
-#line 1233 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1234 "glsl_parser.ypp"
     { (yyval.n) = ast_vec4; ;}
     break;
 
   case 177:
 
-/* Line 1455 of yacc.c  */
-#line 1234 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1235 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec2; ;}
     break;
 
   case 178:
 
-/* Line 1455 of yacc.c  */
-#line 1235 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1236 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec3; ;}
     break;
 
   case 179:
 
-/* Line 1455 of yacc.c  */
-#line 1236 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1237 "glsl_parser.ypp"
     { (yyval.n) = ast_bvec4; ;}
     break;
 
   case 180:
 
-/* Line 1455 of yacc.c  */
-#line 1237 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1238 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec2; ;}
     break;
 
   case 181:
 
-/* Line 1455 of yacc.c  */
-#line 1238 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1239 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec3; ;}
     break;
 
   case 182:
 
-/* Line 1455 of yacc.c  */
-#line 1239 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1240 "glsl_parser.ypp"
     { (yyval.n) = ast_ivec4; ;}
     break;
 
   case 183:
 
-/* Line 1455 of yacc.c  */
-#line 1240 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1241 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec2; ;}
     break;
 
   case 184:
 
-/* Line 1455 of yacc.c  */
-#line 1241 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1242 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec3; ;}
     break;
 
   case 185:
 
-/* Line 1455 of yacc.c  */
-#line 1242 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1243 "glsl_parser.ypp"
     { (yyval.n) = ast_uvec4; ;}
     break;
 
   case 186:
 
-/* Line 1455 of yacc.c  */
-#line 1243 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1244 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2; ;}
     break;
 
   case 187:
 
-/* Line 1455 of yacc.c  */
-#line 1244 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1245 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2x3; ;}
     break;
 
   case 188:
 
-/* Line 1455 of yacc.c  */
-#line 1245 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1246 "glsl_parser.ypp"
     { (yyval.n) = ast_mat2x4; ;}
     break;
 
   case 189:
 
-/* Line 1455 of yacc.c  */
-#line 1246 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1247 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3x2; ;}
     break;
 
   case 190:
 
-/* Line 1455 of yacc.c  */
-#line 1247 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1248 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3; ;}
     break;
 
   case 191:
 
-/* Line 1455 of yacc.c  */
-#line 1248 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1249 "glsl_parser.ypp"
     { (yyval.n) = ast_mat3x4; ;}
     break;
 
   case 192:
 
-/* Line 1455 of yacc.c  */
-#line 1249 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1250 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4x2; ;}
     break;
 
   case 193:
 
-/* Line 1455 of yacc.c  */
-#line 1250 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1251 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4x3; ;}
     break;
 
   case 194:
 
-/* Line 1455 of yacc.c  */
-#line 1251 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1252 "glsl_parser.ypp"
     { (yyval.n) = ast_mat4; ;}
     break;
 
   case 195:
 
-/* Line 1455 of yacc.c  */
-#line 1252 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1253 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1d; ;}
     break;
 
   case 196:
 
-/* Line 1455 of yacc.c  */
-#line 1253 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1254 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2d; ;}
     break;
 
   case 197:
 
-/* Line 1455 of yacc.c  */
-#line 1254 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1255 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2drect; ;}
     break;
 
   case 198:
 
-/* Line 1455 of yacc.c  */
-#line 1255 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1256 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler3d; ;}
     break;
 
   case 199:
 
-/* Line 1455 of yacc.c  */
-#line 1256 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1257 "glsl_parser.ypp"
     { (yyval.n) = ast_samplercube; ;}
     break;
 
   case 200:
 
-/* Line 1455 of yacc.c  */
-#line 1257 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1258 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1dshadow; ;}
     break;
 
   case 201:
 
-/* Line 1455 of yacc.c  */
-#line 1258 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1259 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2dshadow; ;}
     break;
 
   case 202:
 
-/* Line 1455 of yacc.c  */
-#line 1259 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1260 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2drectshadow; ;}
     break;
 
   case 203:
 
-/* Line 1455 of yacc.c  */
-#line 1260 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1261 "glsl_parser.ypp"
     { (yyval.n) = ast_samplercubeshadow; ;}
     break;
 
   case 204:
 
-/* Line 1455 of yacc.c  */
-#line 1261 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1262 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1darray; ;}
     break;
 
   case 205:
 
-/* Line 1455 of yacc.c  */
-#line 1262 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1263 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2darray; ;}
     break;
 
   case 206:
 
-/* Line 1455 of yacc.c  */
-#line 1263 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1264 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler1darrayshadow; ;}
     break;
 
   case 207:
 
-/* Line 1455 of yacc.c  */
-#line 1264 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1265 "glsl_parser.ypp"
     { (yyval.n) = ast_sampler2darrayshadow; ;}
     break;
 
   case 208:
 
-/* Line 1455 of yacc.c  */
-#line 1265 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1266 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler1d; ;}
     break;
 
   case 209:
 
-/* Line 1455 of yacc.c  */
-#line 1266 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1267 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler2d; ;}
     break;
 
   case 210:
 
-/* Line 1455 of yacc.c  */
-#line 1267 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1268 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler3d; ;}
     break;
 
   case 211:
 
-/* Line 1455 of yacc.c  */
-#line 1268 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1269 "glsl_parser.ypp"
     { (yyval.n) = ast_isamplercube; ;}
     break;
 
   case 212:
 
-/* Line 1455 of yacc.c  */
-#line 1269 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1270 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler1darray; ;}
     break;
 
   case 213:
 
-/* Line 1455 of yacc.c  */
-#line 1270 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1271 "glsl_parser.ypp"
     { (yyval.n) = ast_isampler2darray; ;}
     break;
 
   case 214:
 
-/* Line 1455 of yacc.c  */
-#line 1271 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1272 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler1d; ;}
     break;
 
   case 215:
 
-/* Line 1455 of yacc.c  */
-#line 1272 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1273 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler2d; ;}
     break;
 
   case 216:
 
-/* Line 1455 of yacc.c  */
-#line 1273 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1274 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler3d; ;}
     break;
 
   case 217:
 
-/* Line 1455 of yacc.c  */
-#line 1274 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1275 "glsl_parser.ypp"
     { (yyval.n) = ast_usamplercube; ;}
     break;
 
   case 218:
 
-/* Line 1455 of yacc.c  */
-#line 1275 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1276 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler1darray; ;}
     break;
 
   case 219:
 
-/* Line 1455 of yacc.c  */
-#line 1276 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1277 "glsl_parser.ypp"
     { (yyval.n) = ast_usampler2darray; ;}
     break;
 
   case 220:
 
-/* Line 1455 of yacc.c  */
-#line 1280 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1281 "glsl_parser.ypp"
     {
                     if (!state->es_shader && state->language_version < 130)
                        _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4603,8 +4617,8 @@ yyreduce:
 
   case 221:
 
-/* Line 1455 of yacc.c  */
-#line 1291 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1292 "glsl_parser.ypp"
     {
                     if (!state->es_shader && state->language_version < 130)
                        _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4620,8 +4634,8 @@ yyreduce:
 
   case 222:
 
-/* Line 1455 of yacc.c  */
-#line 1302 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1303 "glsl_parser.ypp"
     {
                     if (!state->es_shader && state->language_version < 130)
                        _mesa_glsl_error(& (yylsp[(1) - (1)]), state,
@@ -4637,8 +4651,8 @@ yyreduce:
 
   case 223:
 
-/* Line 1455 of yacc.c  */
-#line 1317 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1318 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
@@ -4648,8 +4662,8 @@ yyreduce:
 
   case 224:
 
-/* Line 1455 of yacc.c  */
-#line 1323 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1324 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
@@ -4659,8 +4673,8 @@ yyreduce:
 
   case 225:
 
-/* Line 1455 of yacc.c  */
-#line 1332 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1333 "glsl_parser.ypp"
     {
           (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list);
           (yyvsp[(1) - (1)].declarator_list)->link.self_link();
@@ -4669,8 +4683,8 @@ yyreduce:
 
   case 226:
 
-/* Line 1455 of yacc.c  */
-#line 1337 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1338 "glsl_parser.ypp"
     {
           (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node);
           (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
@@ -4679,8 +4693,8 @@ yyreduce:
 
   case 227:
 
-/* Line 1455 of yacc.c  */
-#line 1345 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1346 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
@@ -4696,8 +4710,8 @@ yyreduce:
 
   case 228:
 
-/* Line 1455 of yacc.c  */
-#line 1360 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1361 "glsl_parser.ypp"
     {
           (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
           (yyvsp[(1) - (1)].declaration)->link.self_link();
@@ -4706,8 +4720,8 @@ yyreduce:
 
   case 229:
 
-/* Line 1455 of yacc.c  */
-#line 1365 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1366 "glsl_parser.ypp"
     {
           (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
           (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
@@ -4716,8 +4730,8 @@ yyreduce:
 
   case 230:
 
-/* Line 1455 of yacc.c  */
-#line 1373 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1374 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
@@ -4727,8 +4741,8 @@ yyreduce:
 
   case 231:
 
-/* Line 1455 of yacc.c  */
-#line 1379 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1380 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
@@ -4738,29 +4752,29 @@ yyreduce:
 
   case 234:
 
-/* Line 1455 of yacc.c  */
-#line 1397 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1398 "glsl_parser.ypp"
     { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
     break;
 
   case 239:
 
-/* Line 1455 of yacc.c  */
-#line 1405 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1406 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
   case 240:
 
-/* Line 1455 of yacc.c  */
-#line 1406 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1407 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
   case 243:
 
-/* Line 1455 of yacc.c  */
-#line 1413 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1414 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
@@ -4770,8 +4784,8 @@ yyreduce:
 
   case 244:
 
-/* Line 1455 of yacc.c  */
-#line 1419 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1420 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node));
@@ -4781,15 +4795,15 @@ yyreduce:
 
   case 245:
 
-/* Line 1455 of yacc.c  */
-#line 1427 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1428 "glsl_parser.ypp"
     { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
     break;
 
   case 247:
 
-/* Line 1455 of yacc.c  */
-#line 1433 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1434 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
@@ -4799,8 +4813,8 @@ yyreduce:
 
   case 248:
 
-/* Line 1455 of yacc.c  */
-#line 1439 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1440 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
@@ -4810,8 +4824,8 @@ yyreduce:
 
   case 249:
 
-/* Line 1455 of yacc.c  */
-#line 1448 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1449 "glsl_parser.ypp"
     {
           if ((yyvsp[(1) - (1)].node) == NULL) {
              _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
@@ -4825,8 +4839,8 @@ yyreduce:
 
   case 250:
 
-/* Line 1455 of yacc.c  */
-#line 1458 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1459 "glsl_parser.ypp"
     {
           if ((yyvsp[(2) - (2)].node) == NULL) {
              _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
@@ -4839,8 +4853,8 @@ yyreduce:
 
   case 251:
 
-/* Line 1455 of yacc.c  */
-#line 1470 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1471 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_expression_statement(NULL);
@@ -4850,8 +4864,8 @@ yyreduce:
 
   case 252:
 
-/* Line 1455 of yacc.c  */
-#line 1476 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1477 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
@@ -4861,8 +4875,8 @@ yyreduce:
 
   case 253:
 
-/* Line 1455 of yacc.c  */
-#line 1485 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1486 "glsl_parser.ypp"
     {
           (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement,
                                                   (yyvsp[(5) - (5)].selection_rest_statement).else_statement);
@@ -4872,8 +4886,8 @@ yyreduce:
 
   case 254:
 
-/* Line 1455 of yacc.c  */
-#line 1494 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1495 "glsl_parser.ypp"
     {
           (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node);
           (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node);
@@ -4882,8 +4896,8 @@ yyreduce:
 
   case 255:
 
-/* Line 1455 of yacc.c  */
-#line 1499 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1500 "glsl_parser.ypp"
     {
           (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node);
           (yyval.selection_rest_statement).else_statement = NULL;
@@ -4892,8 +4906,8 @@ yyreduce:
 
   case 256:
 
-/* Line 1455 of yacc.c  */
-#line 1507 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1508 "glsl_parser.ypp"
     {
           (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
        ;}
@@ -4901,8 +4915,8 @@ yyreduce:
 
   case 257:
 
-/* Line 1455 of yacc.c  */
-#line 1511 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1512 "glsl_parser.ypp"
     {
           void *ctx = state;
           ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
@@ -4917,8 +4931,8 @@ yyreduce:
 
   case 261:
 
-/* Line 1455 of yacc.c  */
-#line 1534 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1535 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
@@ -4929,8 +4943,8 @@ yyreduce:
 
   case 262:
 
-/* Line 1455 of yacc.c  */
-#line 1541 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1542 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
@@ -4941,8 +4955,8 @@ yyreduce:
 
   case 263:
 
-/* Line 1455 of yacc.c  */
-#line 1548 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1549 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
@@ -4953,8 +4967,8 @@ yyreduce:
 
   case 267:
 
-/* Line 1455 of yacc.c  */
-#line 1564 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1565 "glsl_parser.ypp"
     {
           (yyval.node) = NULL;
        ;}
@@ -4962,8 +4976,8 @@ yyreduce:
 
   case 268:
 
-/* Line 1455 of yacc.c  */
-#line 1571 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1572 "glsl_parser.ypp"
     {
           (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
           (yyval.for_rest_statement).rest = NULL;
@@ -4972,8 +4986,8 @@ yyreduce:
 
   case 269:
 
-/* Line 1455 of yacc.c  */
-#line 1576 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1577 "glsl_parser.ypp"
     {
           (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
           (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
@@ -4982,8 +4996,8 @@ yyreduce:
 
   case 270:
 
-/* Line 1455 of yacc.c  */
-#line 1585 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1586 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
@@ -4993,8 +5007,8 @@ yyreduce:
 
   case 271:
 
-/* Line 1455 of yacc.c  */
-#line 1591 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1592 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
@@ -5004,8 +5018,8 @@ yyreduce:
 
   case 272:
 
-/* Line 1455 of yacc.c  */
-#line 1597 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1598 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
@@ -5015,8 +5029,8 @@ yyreduce:
 
   case 273:
 
-/* Line 1455 of yacc.c  */
-#line 1603 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1604 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
@@ -5026,8 +5040,8 @@ yyreduce:
 
   case 274:
 
-/* Line 1455 of yacc.c  */
-#line 1609 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1610 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
@@ -5037,29 +5051,29 @@ yyreduce:
 
   case 275:
 
-/* Line 1455 of yacc.c  */
-#line 1617 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1618 "glsl_parser.ypp"
     { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
     break;
 
   case 276:
 
-/* Line 1455 of yacc.c  */
-#line 1618 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1619 "glsl_parser.ypp"
     { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
     break;
 
   case 277:
 
-/* Line 1455 of yacc.c  */
-#line 1619 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1620 "glsl_parser.ypp"
     { (yyval.node) = NULL; ;}
     break;
 
   case 278:
 
-/* Line 1455 of yacc.c  */
-#line 1624 "glsl_parser.ypp"
+/* Line 1464 of yacc.c  */
+#line 1625 "glsl_parser.ypp"
     {
           void *ctx = state;
           (yyval.function_definition) = new(ctx) ast_function_definition();
@@ -5071,8 +5085,8 @@ yyreduce:
 
 
 
-/* Line 1455 of yacc.c  */
-#line 5076 "glsl_parser.cpp"
+/* Line 1464 of yacc.c  */
+#line 5090 "glsl_parser.cpp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5144,7 +5158,7 @@ yyerrlab:
 #endif
     }
 
-  yyerror_range[0] = yylloc;
+  yyerror_range[1] = yylloc;
 
   if (yyerrstatus == 3)
     {
@@ -5181,7 +5195,7 @@ yyerrorlab:
   if (/*CONSTCOND*/ 0)
      goto yyerrorlab;
 
-  yyerror_range[0] = yylsp[1-yylen];
+  yyerror_range[1] = yylsp[1-yylen];
   /* Do not reclaim the symbols of the rule which action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
@@ -5215,7 +5229,7 @@ yyerrlab1:
       if (yyssp == yyss)
        YYABORT;
 
-      yyerror_range[0] = *yylsp;
+      yyerror_range[1] = *yylsp;
       yydestruct ("Error: popping",
                  yystos[yystate], yyvsp, yylsp, state);
       YYPOPSTACK (1);
@@ -5225,10 +5239,10 @@ yyerrlab1:
 
   *++yyvsp = yylval;
 
-  yyerror_range[1] = yylloc;
+  yyerror_range[2] = yylloc;
   /* Using YYLLOC is tempting, but would change the location of
      the lookahead.  YYLOC is available though.  */
-  YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
+  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
   *++yylsp = yyloc;
 
   /* Shift the error token.  */
index 9bb6ae6299170e204e8f2671e79b68a1aea17910..83aa56f7cbeb2a889accb6cbf4b410b3bc81c0d2 100644 (file)
@@ -1,10 +1,9 @@
-
-/* A Bison parser, made by GNU Bison 2.4.1.  */
+/* A Bison parser, made by GNU Bison 2.4.3.  */
 
 /* Skeleton interface for Bison's Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+   2009, 2010 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
      IMAGEBUFFER = 442,
      IIMAGEBUFFER = 443,
      UIMAGEBUFFER = 444,
-     ROW_MAJOR = 445
+     IMAGE1DARRAYSHADOW = 445,
+     IMAGE2DARRAYSHADOW = 446,
+     ROW_MAJOR = 447
    };
 #endif
 
 typedef union YYSTYPE
 {
 
-/* Line 1676 of yacc.c  */
+/* Line 1685 of yacc.c  */
 #line 52 "glsl_parser.ypp"
 
    int n;
@@ -269,8 +270,8 @@ typedef union YYSTYPE
 
 
 
-/* Line 1676 of yacc.c  */
-#line 274 "glsl_parser.h"
+/* Line 1685 of yacc.c  */
+#line 275 "glsl_parser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */